Fireblocks Genie (Beta) API

The Genie (Beta) API from Fireblocks — 2 operation(s) for genie (beta).

Operations 2

POST /genie/sessions Create a Genie session #
POST /genie/sessions/{sessionId}/messages Send a message to a Genie session #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/fireblocks:fireblocks-genie-beta-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fireblocks-genie-beta-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fireblocks Genie (Beta) 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

    - Visit our developer docs: Fireblocks DevPortal'
  version: 1.6.2
  contact:
    email: developers@fireblocks.com
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
tags:
- name: Genie (Beta)
paths:
  /genie/sessions:
    post:
      summary: Create a Genie session
      description: 'Starts a new conversation with Genie, the Fireblocks AI assistant. Returns a `sessionId` — pass it when sending messages, and reuse it across calls to keep one continuous conversation.


        **Note:** This endpoint is currently in beta and might be subject to changes.'
      tags:
      - Genie (Beta)
      x-rate-limit-category: write
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      responses:
        '200':
          description: Session created
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenieCreateSessionResponse'
        default:
          $ref: '#/components/responses/Error'
      operationId: createGenieSession
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<GenieCreateSessionResponse>> = fireblocks.genieBeta.createGenieSession(genieBetaApiCreateGenieSessionRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<GenieCreateSessionResponse>> response = fireblocks.genieBeta().createGenieSession(idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.genie_beta.create_genie_session(idempotency_key);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<GenieCreateSessionResponse>> = fireblocks.genieBeta.createGenieSession(genieBetaApiCreateGenieSessionRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<GenieCreateSessionResponse>> response = fireblocks.genieBeta().createGenieSession(idempotencyKey);
      - lang: Python
        source: response = fireblocks.genie_beta.create_genie_session(idempotency_key);
  /genie/sessions/{sessionId}/messages:
    post:
      summary: Send a message to a Genie session
      description: 'Sends a question to Genie and returns a single answer. Reuse the `sessionId` from the original session on follow-up messages to continue the conversation with prior context.


        **Note:** This endpoint is currently in beta and might be subject to changes.'
      tags:
      - Genie (Beta)
      x-rate-limit-category: write
      parameters:
      - in: path
        name: sessionId
        required: true
        schema:
          type: string
          example: 7c1b2e1c-1c2a-4f3a-9c2d-2e0a8a1f8e1a
        description: The Genie session ID returned from `POST /genie/sessions`.
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenieSendMessageRequest'
      responses:
        '200':
          description: Genie response
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenieChatMessage'
        default:
          $ref: '#/components/responses/Error'
      operationId: sendGenieMessage
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<GenieSendMessageResponse>> = fireblocks.genieBeta.sendGenieMessage(genieBetaApiSendGenieMessageRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<GenieSendMessageResponse>> response = fireblocks.genieBeta().sendGenieMessage(genieSendMessageRequest, sessionId, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.genie_beta.send_genie_message(genie_send_message_request, session_id, idempotency_key);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<GenieSendMessageResponse>> = fireblocks.genieBeta.sendGenieMessage(genieBetaApiSendGenieMessageRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<GenieSendMessageResponse>> response = fireblocks.genieBeta().sendGenieMessage(genieSendMessageRequest, sessionId, idempotencyKey);
      - lang: Python
        source: response = fireblocks.genie_beta.send_genie_message(genie_send_message_request, session_id, idempotency_key);
components:
  schemas:
    GenieChatMessage:
      type: object
      required:
      - id
      - sessionId
      - role
      - content
      properties:
        id:
          type: string
          description: The unique identifier of the message.
          example: 0a237534-399f-4487-a869-72567b71511a
        sessionId:
          type: string
          description: The Genie session this message belongs to.
          example: 7c1b2e1c-1c2a-4f3a-9c2d-2e0a8a1f8e1a
        role:
          type: string
          description: Who produced the message — `USER` for the customer-supplied query, `ASSISTANT` for the Genie response.
          example: ASSISTANT
        content:
          type: string
          description: The natural-language body of the message.
          example: The latest balance on the BTC vault is 0.4231 BTC.
        createdAt:
          type: integer
          format: int64
          description: Message creation timestamp in epoch milliseconds.
          example: 1735603200000
    GenieSendMessageRequest:
      type: object
      required:
      - content
      properties:
        content:
          type: string
          description: The natural-language question or instruction to send to Genie.
          example: What is the latest balance on my BTC vault?
    ErrorSchema:
      type: object
      properties:
        message:
          type: string
        code:
          type: number
    GenieCreateSessionResponse:
      type: object
      required:
      - id
      properties:
        id:
          type: string
          description: The unique identifier of the newly created Genie session. Use this when sending messages in the conversation.
          example: 7c1b2e1c-1c2a-4f3a-9c2d-2e0a8a1f8e1a
        createdAt:
          type: integer
          format: int64
          description: Session creation timestamp in epoch milliseconds.
          example: 1735603200000
        title:
          type: string
          description: Session title. May be empty until the first message has been processed.
          example: Vault balance overview
  responses:
    Error:
      description: Error Response
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorSchema'
  parameters:
    X-Idempotency-Key:
      name: Idempotency-Key
      in: header
      description: A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
      required: false
      schema:
        type: string
  headers:
    X-Request-ID:
      schema:
        type: string
      description: Unique ID correlated to the API request. Please provide it in any support ticket you create or on Github issues related to Fireblocks SDKs
  securitySchemes:
    bearerTokenAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
x-readme:
  explorer-enabled: false
  samples-languages:
  - curl
  - javascript
  - python
x-provenance:
  method: harvested
  publisher: Fireblocks
  source: https://swagger.fireblocks.com/openapi.yaml
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)