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: ' 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