Fordefi Organizations API
The Organizations API from Fordefi — 4 operation(s) for organizations.
The Organizations API from Fordefi — 4 operation(s) for organizations.
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.<br><br>To add/remove contacts, visit the Fordefi web console. See the <a href='https://docs.fordefi.com/user-guide/address-book'>user guide</a> 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: <ul> <li>For ECDSA and Schnorr keys, the public key is represented as 33 bytes (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1 standard](https://www.secg.org/SEC1-Ver-1.0.pdf). <li>For EdDSA, the public key is represented as a 32-byte value, as defined by [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032). </ul>'
example: SGVsbG8=
supports_derivation:
type: boolean
title: Supports Derivation
description: 'Whether the key supports BIP-32 derivation. Standalone private keys do not support derivation. '
type: object
required:
- key_id
- key_name
- key_type
- key_origin
- xpub
- public_key_compressed
- supports_derivation
title: OrganizationMasterKey
ImportKeysStatus:
type: string
enum:
- not_started
- in_progress
- completed
title: ImportKeysStatus
StartImportKeysRequest:
oneOf:
- $ref: '#/components/schemas/FireblocksImportPackage'
- $ref: '#/components/schemas/StandaloneImportPackage'
discriminator:
propertyName: type
mapping:
fireblocks: '#/components/schemas/FireblocksImportPackage'
standalone: '#/components/schemas/StandaloneImportPackage'
KeyType:
type: string
enum:
- ecdsa_secp256k1
- eddsa_ed25519
- ecdsa_stark
- schnorr_secp256k1
title: KeyType
KeyOriginType:
type: string
enum:
- native
- imported
title: KeyOriginType
RateLimitError:
properties: {}
type: object
title: RateLimitError
BaseError:
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
type: object
required:
- title
- detail
title: BaseError
ValidationErrorDetail:
properties:
loc:
items:
anyOf:
- type: integer
- type: string
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationErrorDetail
StartImportKeysResponse:
properties:
keys:
items:
$ref: '#/components/schemas/OrganizationMasterKey'
type: array
title: Keys
description: The list of imported keys.
type: object
required:
- keys
title: StartImportKeysResponse
ListKeysResponse:
properties:
keys:
items:
$ref: '#/components/schemas/OrganizationMasterKey'
type: array
title: Keys
description: The list of organization's active keys.
type: object
required:
- keys
title: ListKeysResponse
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT