openapi: 3.1.0
info:
title: Fordefi Address Book Organizations API
version: 0.2.0
description: These endpoints allow you to list the contacts in your address book.
To add/remove contacts, visit the Fordefi web console. See the user guide for more info.
servers:
- url: https://api.fordefi.com/
description: Production
security:
- bearerAuth: []
tags:
- name: Organizations
paths:
/api/v1/organizations/import-keys:
post:
tags:
- Organizations
summary: Import Keys
description: Imports keys for an organization.
operationId: import_keys_api_v1_organizations_import_keys_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/StartImportKeysRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/StartImportKeysResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
'409':
description: Already Exists
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceError'
/api/v1/organizations/abort-import-keys:
post:
tags:
- Organizations
summary: Abort Import Keys
description: Aborts the import keys process for an organization.
operationId: abort_import_keys_api_v1_organizations_abort_import_keys_post
responses:
'204':
description: Successful Response
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
/api/v1/organizations/import-keys-status:
get:
tags:
- Organizations
summary: Get Import Keys Status
description: Gets the import keys status for an organization.
operationId: get_import_keys_status_api_v1_organizations_import_keys_status_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/GetImportKeysStatusResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
/api/v1/organizations/list-keys:
get:
tags:
- Organizations
summary: List Keys
description: Lists the imported keys for an organization.
operationId: list_keys_api_v1_organizations_list_keys_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ListKeysResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
components:
schemas:
PreconditionFailedError:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
type: string
title: Detail
description: Detailed error message.
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
system_error_code:
title: System Error Code
description: An additional system error code in Fordefi.
type: string
type: object
required:
- title
- detail
title: PreconditionFailedError
GetImportKeysStatusResponse:
properties:
state:
$ref: '#/components/schemas/ImportKeysStatus'
description: The state of the import keys request.
type: object
required:
- state
title: GetImportKeysStatusResponse
ResourceError:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
type: string
title: Detail
description: Detailed error message.
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
resource:
description: The type of resource.
$ref: '#/components/schemas/Resource'
type: object
required:
- title
- detail
title: ResourceError
StandaloneImportPackage:
properties:
type:
type: string
const: standalone
title: Type
key_name:
type: string
title: Key Name
description: The name of the key to import.
backup_zip_content:
type: string
title: Backup Zip Content
description: The base64 encoded content of the Fireblocks backup zip file.
example: SGVsbG8=
type: object
required:
- type
- key_name
- backup_zip_content
title: StandaloneImportPackage
Resource:
type: string
enum:
- user
- user_change_proposals
- user_group
- user_group_change_proposal
- vault
- vault_address
- vault_group
- address_group
- transaction
- batch_transaction
- path
- keyset
- auth_token
- access_token
- asset
- asset_info
- vault_derivation_path
- blockchain
- export
- quote
- import_keys_request
- vault_address_account
- exchange_asset_mapping
- dapp_group
- safe_address
- audit_log
title: Resource
ValidationError:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
items:
$ref: '#/components/schemas/ValidationErrorDetail'
type: array
title: Detail
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
type: object
required:
- title
- detail
title: ValidationError
FireblocksImportPackage:
properties:
type:
type: string
const: fireblocks
title: Type
key_name:
type: string
title: Key Name
description: The name of the key to import.
backup_zip_content:
type: string
title: Backup Zip Content
description: The base64 encoded content of the Fireblocks backup zip file.
example: SGVsbG8=
encrypted_rsa_pem:
title: Encrypted Rsa Pem
description: Encrypted RSA private key used to encrypt the cosigner shares in PEM format.The encryption is done using `openssl cms -encrypt` command using the enclave's public certificate.If not provided, the default RSA key will be used.For more information, see https://docs.fordefi.com/user-guide/import-keys-fireblocks
type: string
example: SGVsbG8=
rsa_pem_password:
title: Rsa Pem Password
description: The password for RSA private key.
type: string
type: object
required:
- type
- key_name
- backup_zip_content
title: FireblocksImportPackage
OrganizationMasterKey:
properties:
key_id:
type: string
format: uuid
title: Key Id
description: The ID of the imported key.
key_name:
type: string
title: Key Name
description: The name of the imported key.
key_type:
$ref: '#/components/schemas/KeyType'
description: The type of the imported key.
key_origin:
$ref: '#/components/schemas/KeyOriginType'
description: The origin of the key.
xpub:
type: string
title: Xpub
description: The xpub encoding of the key. For more details, see https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#serialization-format
public_key_compressed:
type: string
title: Public Key Compressed
description: 'The public key of the vault in its compressed form: