Fireblocks Workspace Management API

Manage everything inside a Fireblocks workspace — API users, console users, user groups, audit logs, cosigners, signing keys, KeyLink external-key management, workspace freeze/unfreeze, and Admin Quorum administrative approvals.

OpenAPI Specification

fireblocks-workspace-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Fireblocks Workspace Management API
  description: 'Fireblocks provides a suite of applications to manage digital asset operations and a complete development
    platform to build your business on the blockchain.


    - Visit our website for more information: [Fireblocks Website](https://fireblocks.com)

    - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)

    '
  version: 1.8.0
  contact:
    email: [email protected]
servers:
- url: https://api.fireblocks.io/v1
  description: Fireblocks Production Environment Base URL
- url: https://sandbox-api.fireblocks.io/v1
  description: Fireblocks Sandbox Environment Base URL
security: []
paths:
  /workspace/freeze:
    post:
      x-internal: true
      operationId: freezeWorkspace
      summary: Freeze
      description: "Freezes a Workspace so that ALL operations by ANY user are blocked.\nYou should only perform this action\
        \ when the workspace faces imminent risk, such as when you have a security breach.\nTo unfreeze a workspace, the workspace\
        \ Owner must submit a request to Fireblocks Support.\n**NOTE:** \n- This operation can only be performed by the workspace\
        \ Admins - Your workspace continues to receive incoming transfers during this time.\n</br>Endpoint Permission: Admin,\
        \ Non-Signing Admin."
      tags:
      - Workspace Management
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      responses:
        '204':
          description: Indicates that the workspace is now frozen
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        default:
          $ref: '#/components/responses/Error'
      x-codeSamples:
      - lang: python
        label: Python
        source: vault_accounts = fireblocks.get_vault_accounts()
      - lang: javascript
        label: Javascript
        source: const vaultAccounts = await fireblocks.getVaultAccounts();
  /key_link/signing_keys:
    post:
      operationId: createSigningKey
      summary: Add a new signing key
      description: 'Adds a new signing key to the workspace. The added key will be linked to the specific Fireblocks agent
        user ID. The same user will receive the proof of ownership message to be signed, and upon successful proof, the key
        will become enabled.

        Please note that this endpoint is available only for Key Link enabled workspaces.

        </br>Endpoint Permission: Admin and Non-Signing Admin.'
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSigningKeyDto'
      responses:
        '201':
          description: Newly created signing key
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SigningKeyDto'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Key Link
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<SigningKeyDto>> = fireblocks.keyLinkBeta.createSigningKey(keyLinkBetaApiCreateSigningKeyRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<SigningKeyDto>> response = fireblocks.keyLinkBeta().createSigningKey(createSigningKeyDto,
            idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.key_link_beta.create_signing_key(create_signing_key_dto, idempotency_key);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<SigningKeyDto>> = fireblocks.keyLinkBeta.createSigningKey(keyLinkBetaApiCreateSigningKeyRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<SigningKeyDto>> response = fireblocks.keyLinkBeta().createSigningKey(createSigningKeyDto,
          idempotencyKey);
      - lang: Python
        source: response = fireblocks.key_link_beta.create_signing_key(create_signing_key_dto, idempotency_key);
    get:
      operationId: getSigningKeysList
      summary: Get list of signing keys
      description: 'Returns the list of signing keys in the workspace

        Please note that this endpoint is available only for Key Link enabled workspaces.

        </br>Endpoint Permission: Admin and Non-Signing Admin.'
      parameters:
      - name: pageCursor
        required: false
        in: query
        description: Cursor to the next page
        example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==
        schema:
          type: string
      - name: pageSize
        required: false
        in: query
        description: Amount of results to return in the next page
        schema:
          minimum: 1
          maximum: 50
          default: 10
          type: number
      - name: sortBy
        required: false
        in: query
        description: Field(s) to use for sorting
        schema:
          default: createdAt
          enum:
          - createdAt
          type: string
      - name: order
        required: false
        in: query
        description: Is the order ascending or descending
        schema:
          default: ASC
          enum:
          - ASC
          - DESC
          type: string
      - name: vaultAccountId
        required: false
        in: query
        description: Return keys assigned to a specific vault
        example: 4
        schema:
          type: number
      - name: agentUserId
        required: false
        in: query
        description: Return keys associated with a specific agent user
        example: 12fed207-5bdf-4a0c-ab12-fcd2627f75d1
        schema:
          type: string
      - name: algorithm
        required: false
        in: query
        description: Return only keys with a specific algorithm
        example: ECDSA_SECP256K1
        schema:
          enum:
          - ECDSA_SECP256K1
          - EDDSA_ED25519
          type: string
      - name: enabled
        required: false
        in: query
        description: Return keys that have been proof of ownership
        schema:
          type: boolean
      - name: available
        required: false
        in: query
        description: Return keys that are proof of ownership but not assigned. Available filter can be used only when vaultAccountId
          and enabled filters are not set
        schema:
          type: boolean
      responses:
        '200':
          description: List of signing keys and a data that allows requesting the next page if applicable
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSigningKeyResponseDto'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Key Link
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<GetSigningKeyResponseDto>> = fireblocks.keyLinkBeta.getSigningKeysList(keyLinkBetaApiGetSigningKeysListRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<GetSigningKeyResponseDto>> response = fireblocks.keyLinkBeta().getSigningKeysList(pageCursor,
            pageSize, sortBy, order, vaultAccountId, agentUserId, algorithm, enabled, available);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.key_link_beta.get_signing_keys_list(page_cursor, page_size, sort_by, order, vault_account_id,
            agent_user_id, algorithm, enabled, available);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<GetSigningKeyResponseDto>> = fireblocks.keyLinkBeta.getSigningKeysList(keyLinkBetaApiGetSigningKeysListRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<GetSigningKeyResponseDto>> response = fireblocks.keyLinkBeta().getSigningKeysList(pageCursor,
          pageSize, sortBy, order, vaultAccountId, agentUserId, algorithm, enabled, available);
      - lang: Python
        source: response = fireblocks.key_link_beta.get_signing_keys_list(page_cursor, page_size, sort_by, order, vault_account_id,
          agent_user_id, algorithm, enabled, available);
  /key_link/signing_keys/{keyId}:
    get:
      operationId: getSigningKey
      summary: Get a signing key by `keyId`
      description: 'Returns a signing key if it exists, identified by the specified Fireblocks provided `keyId`.

        Please note that this endpoint is available only for Key Link enabled workspaces.

        </br>Endpoint Permission: Admin and Non-Signing Admin.'
      parameters:
      - name: keyId
        required: true
        in: path
        description: The unique identifier for the signing key provided by Fireblocks
        schema:
          type: string
          example: 46a92767-5f93-4a46-9eed-f012196bb4fc
      responses:
        '200':
          description: Requested signing key data
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SigningKeyDto'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Key Link
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<SigningKeyDto>> = fireblocks.keyLinkBeta.getSigningKey(keyLinkBetaApiGetSigningKeyRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<SigningKeyDto>> response = fireblocks.keyLinkBeta().getSigningKey(keyId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.key_link_beta.get_signing_key(key_id);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<SigningKeyDto>> = fireblocks.keyLinkBeta.getSigningKey(keyLinkBetaApiGetSigningKeyRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<SigningKeyDto>> response = fireblocks.keyLinkBeta().getSigningKey(keyId);
      - lang: Python
        source: response = fireblocks.key_link_beta.get_signing_key(key_id);
    patch:
      operationId: updateSigningKey
      summary: Modify the signing keyId
      description: 'Allows assigning the signing key to a vault account, if it hasn''t been assigned to any other vault accounts
        yet.

        Please note that this endpoint is available only for Key Link enabled workspaces.

        </br>Endpoint Permission: Admin and Non-Signing Admin.'
      parameters:
      - name: keyId
        required: true
        in: path
        description: The unique identifier for the signing key provided by Fireblocks
        schema:
          type: string
          example: 46a92767-5f93-4a46-9eed-f012196bb4fc
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModifySigningKeyDto'
      responses:
        '200':
          description: Modified signing key data
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SigningKeyDto'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Key Link
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<SigningKeyDto>> = fireblocks.keyLinkBeta.updateSigningKey(keyLinkBetaApiUpdateSigningKeyRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<SigningKeyDto>> response = fireblocks.keyLinkBeta().updateSigningKey(modifySigningKeyDto,
            keyId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.key_link_beta.update_signing_key(modify_signing_key_dto, key_id);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<SigningKeyDto>> = fireblocks.keyLinkBeta.updateSigningKey(keyLinkBetaApiUpdateSigningKeyRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<SigningKeyDto>> response = fireblocks.keyLinkBeta().updateSigningKey(modifySigningKeyDto,
          keyId);
      - lang: Python
        source: response = fireblocks.key_link_beta.update_signing_key(modify_signing_key_dto, key_id);
  /key_link/signing_keys/{keyId}/agent_user_id:
    patch:
      operationId: setAgentId
      summary: Set agent user id
      description: 'Can modify existing signing key id if the key is not enabled. The change done in background and will be
        visible once applied. If key is already enabled (after proof of ownership) the user cannot be changed.

        Please note that this endpoint is available only for Key Link enabled workspaces.

        </br>Endpoint Permission: Admin and Non-Signing Admin.'
      parameters:
      - name: keyId
        required: true
        in: path
        description: The unique identifier for the signing key provided by Fireblocks
        schema:
          type: string
          example: 46a92767-5f93-4a46-9eed-f012196bb4fc
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModifySigningKeyAgentIdDto'
      responses:
        '204':
          description: Agent user id modification process has started in background.
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Key Link
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<void>> = fireblocks.keyLinkBeta.setAgentId(keyLinkBetaApiSetAgentIdRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<Void>> response = fireblocks.keyLinkBeta().setAgentId(modifySigningKeyAgentIdDto,
            keyId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.key_link_beta.set_agent_id(modify_signing_key_agent_id_dto, key_id);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<void>> = fireblocks.keyLinkBeta.setAgentId(keyLinkBetaApiSetAgentIdRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<Void>> response = fireblocks.keyLinkBeta().setAgentId(modifySigningKeyAgentIdDto,
          keyId);
      - lang: Python
        source: response = fireblocks.key_link_beta.set_agent_id(modify_signing_key_agent_id_dto, key_id);
  /key_link/validation_keys:
    post:
      operationId: createValidationKey
      summary: Add a new validation key
      description: 'Adds a new validation key used to validate signing keys. The new validation key will undergo an approval
        process by the workspace quorum.

        Please note that this endpoint is available only for Key Link enabled workspaces.

        </br>Endpoint Permission: Admin and Non-Signing Admin.'
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateValidationKeyDto'
      responses:
        '201':
          description: The validation key that was added and is pending approval.
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateValidationKeyResponseDto'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Key Link
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<CreateValidationKeyResponseDto>> = fireblocks.keyLinkBeta.createValidationKey(keyLinkBetaApiCreateValidationKeyRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<CreateValidationKeyResponseDto>> response = fireblocks.keyLinkBeta().createValidationKey(createValidationKeyDto,
            idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.key_link_beta.create_validation_key(create_validation_key_dto, idempotency_key);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<CreateValidationKeyResponseDto>> = fireblocks.keyLinkBeta.createValidationKey(keyLinkBetaApiCreateValidationKeyRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<CreateValidationKeyResponseDto>> response = fireblocks.keyLinkBeta().createValidationKey(createValidationKeyDto,
          idempotencyKey);
      - lang: Python
        source: response = fireblocks.key_link_beta.create_validation_key(create_validation_key_dto, idempotency_key);
    get:
      operationId: getValidationKeysList
      summary: Get list of registered validation keys
      description: 'Returns the list of validation keys in the workspace

        Please note that this endpoint is available only for Key Link enabled workspaces.

        </br>Endpoint Permission: Admin and Non-Signing Admin.'
      parameters:
      - name: pageCursor
        required: false
        in: query
        description: Cursor to the next page
        example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==
        schema:
          type: string
      - name: pageSize
        required: false
        in: query
        description: Amount of results to return in the next page
        schema:
          minimum: 1
          maximum: 50
          default: 10
          type: number
      - name: sortBy
        required: false
        in: query
        description: Field(s) to use for sorting
        schema:
          default: createdAt
          enum:
          - createdAt
          type: string
      - name: order
        required: false
        in: query
        description: Is the order ascending or descending
        schema:
          default: ASC
          enum:
          - ASC
          - DESC
          type: string
      responses:
        '200':
          description: Validation keys list along with data required to request the next page if applicable
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetValidationKeyResponseDto'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Key Link
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<GetValidationKeyResponseDto>> = fireblocks.keyLinkBeta.getValidationKeysList(keyLinkBetaApiGetValidationKeysListRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<GetValidationKeyResponseDto>> response = fireblocks.keyLinkBeta().getValidationKeysList(pageCursor,
            pageSize, sortBy, order);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.key_link_beta.get_validation_keys_list(page_cursor, page_size, sort_by, order);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<GetValidationKeyResponseDto>> = fireblocks.keyLinkBeta.getValidationKeysList(keyLinkBetaApiGetValidationKeysListRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<GetValidationKeyResponseDto>> response = fireblocks.keyLinkBeta().getValidationKeysList(pageCursor,
          pageSize, sortBy, order);
      - lang: Python
        source: response = fireblocks.key_link_beta.get_validation_keys_list(page_cursor, page_size, sort_by, order);
  /key_link/validation_keys/{keyId}:
    get:
      operationId: getValidationKey
      summary: Get a validation key by `keyId`
      description: 'Returns a validation key if it exists, identified by the specified `keyId`.

        Please note that this endpoint is available only for Key Link enabled workspaces.

        </br>Endpoint Permission: Admin and Non-Signing Admin.'
      parameters:
      - name: keyId
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: The requested validation key data
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationKeyDto'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Key Link
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<ValidationKeyDto>> = fireblocks.keyLinkBeta.getValidationKey(keyLinkBetaApiGetValidationKeyRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<ValidationKeyDto>> response = fireblocks.keyLinkBeta().getValidationKey(keyId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.key_link_beta.get_validation_key(key_id);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<ValidationKeyDto>> = fireblocks.keyLinkBeta.getValidationKey(keyLinkBetaApiGetValidationKeyRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<ValidationKeyDto>> response = fireblocks.keyLinkBeta().getValidationKey(keyId);
      - lang: Python
        source: response = fireblocks.key_link_beta.get_validation_key(key_id);
    patch:
      operationId: disableValidationKey
      summary: Disables a validation key
      description: 'Allows disabling validation key even if it has not expired yet. It is not allowed to enable the validation
        key back. Another key has to be used for future validations.

        Please note that this endpoint is available only for Key Link enabled workspaces.

        </br>Endpoint Permission: Admin and Non-Signing Admin.'
      parameters:
      - name: keyId
        required: true
        in: path
        description: The unique identifier for the validation key provided by Fireblocks
        schema:
          type: string
          example: 46a92767-5f93-4a46-9eed-f012196bb4fc
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModifyValidationKeyDto'
      responses:
        '200':
          description: Modified validation key data
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationKeyDto'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Key Link
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<ValidationKeyDto>> = fireblocks.keyLinkBeta.disableValidationKey(keyLinkBetaApiDisableValidationKeyRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<ValidationKeyDto>> response = fireblocks.keyLinkBeta().disableValidationKey(modifyValidationKeyDto,
            keyId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.key_link_beta.disable_validation_key(modify_validation_key_dto, key_id);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<ValidationKeyDto>> = fireblocks.keyLinkBeta.disableValidationKey(keyLinkBetaApiDisableValidationKeyRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<ValidationKeyDto>> response = fireblocks.keyLinkBeta().disableValidationKey(modifyValidationKeyDto,
          keyId);
      - lang: Python
        source: response = fireblocks.key_link_beta.disable_validation_key(modify_validation_key_dto, key_id);
  /keys/mpc/list:
    get:
      operationId: getMpcKeysList
      summary: Get list of mpc keys
      description: "Returns a list of MPC signing keys of the workspace. For each key, the list of players associated with\
        \ it is attached.\n**Note:** \nThis endpoint is currently in beta and might be subject to changes."
      parameters: []
      responses:
        '200':
          description: List of mpc keys
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMpcKeysResponse'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Keys (Beta)
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<GetMpcKeysResponse>> = fireblocks.keysBeta.getMpcKeysList();'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<GetMpcKeysResponse>> response = fireblocks.keysBeta().getMpcKeysList();
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.keys_beta.get_mpc_keys_list();
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<GetMpcKeysResponse>> = fireblocks.keysBeta.getMpcKeysList();'
      - lang: Java
        source: CompletableFuture<ApiResponse<GetMpcKeysResponse>> response = fireblocks.keysBeta().getMpcKeysList();
      - lang: Python
        source: response = fireblocks.keys_beta.get_mpc_keys_list();
  /keys/mpc/list/{userId}:
    get:
      operationId: getMpcKeysListByUser
      summary: Get list of mpc keys by `userId`
      description: 'Returns a list of MPC signing keys of a specific user. For each key, the list of players associated with
        it is attached.

        **Note:**

        This endpoint is currently in beta and might be subject to changes.'
      parameters:
      - name: userId
        required: true
        in: path
        description: The id for the user
        example: 46a92767-5f93-4a46-9eed-f012196bb4fc
        schema:
          type: string
      responses:
        '200':
          description: List of mpc keys
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMpcKeysResponse'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Keys (Beta)
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<GetMpcKeysResponse>> = fireblocks.keysBeta.getMpcKeysListByUser(keysBetaApiGetMpcKeysListByUserRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<GetMpcKeysResponse>> response = fireblocks.keysBeta().getMpcKeysListByUser(userId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.keys_beta.get_mpc_keys_list_by_user(user_id);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<GetMpcKeysResponse>> = fireblocks.keysBeta.getMpcKeysListByUser(keysBetaApiGetMpcKeysListByUserRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<GetMpcKeysResponse>> response = fireblocks.keysBeta().getMpcKeysListByUser(userId);
      - lang: Python
        source: response = fireblocks.keys_beta.get_mpc_keys_list_by_user(user_id);
  /management/user_groups:
    get:
      operationId: getUserGroups
      summary: List user groups
      description: 'Get all user groups in your workspace


        - Please note that this endpoint is available only for API keys with Admin/Non Signing Admin permissions.

        </br>Endpoint Permission: Admin, Non-Signing Admin.'
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<UserGroupsResponse>> = fireblocks.userGroupsBeta.getUserGroups();'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<List<UserGroupResponse>>> response = fireblocks.userGroupsBeta().getUserGroups();
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.user_groups_beta.get_user_groups();
          name: Fireblocks SDK Python example
      tags:
      - Workspace Management
      responses:
        '200':
          description: List of the user groups in your workspace
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserGroupsResponse'
        default:
          $ref: '#/components/responses/Error'
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<UserGroupsResponse>> = fireblocks.userGroupsBeta.getUserGroups();'
      - lang: Java
        source: CompletableFuture<ApiResponse<List<UserGroupResponse>>> response = fireblocks.userGroupsBeta().getUserGroups();
      - lang: Python
        source: response = fireblocks.user_groups_beta.get_user_groups();
    post:
      operationId: createUserGroup
      summary: Create user group
      description: 'Create a new user group. Users with the Viewer role cannot be added to groups.

        </br>Endpoint Permission: Admin, Non-Signing Admin.'
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<CreateUserGroupResponse>> = fireblocks.userGroupsBeta.createUserGroup(userGroupsBetaApiCreateUserGroupRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<CreateUserGroupResponse>> response = fireblocks.userGroupsBeta().createUserGroup(userGroupCreateRequest,
            idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.user_groups_beta.create_user_group(user_group_create_request, idempotency_key);
          name: Fireblocks SDK Python example
      tags:
      - Workspace Management
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserGroupCreateRequest'
      responses:
        '201':
          description: User group created and pending approval
          headers:
            X-Request-ID:
              $ref: '#/componen

# --- truncated at 32 KB (121 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fireblocks/refs/heads/main/openapi/fireblocks-workspace-api-openapi.yml