Hibachi Capital API

Authenticated capital movement: balance, deposit info, withdraw, transfer

Operations 5

GET /capital/balance /capital/balance #
GET /capital/history /capital/history #
POST /capital/withdraw /capital/withdraw #
POST /capital/transfer /capital/transfer #
GET /capital/deposit-info /capital/deposit-info #

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/hibachi-capital-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

hibachi-capital-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Hibachi Capital API
  version: 1.0.0
  description: REST API for the Hibachi stablecoin-native perpetual futures and FX exchange. Provides public market data plus authenticated account, trading, and capital (deposit/withdraw/transfer) operations. Most endpoints require an API key in the Authorization header; order, withdrawal, and transfer operations additionally require a cryptographic signature (ECDSA for trustless accounts, HMAC for exchange-managed accounts). Converted faithfully from Hibachi's published public Postman collection.
  contact:
    name: Hibachi
    url: https://docs.hibachi.xyz/
  x-apievangelist-source: https://api-doc.hibachi.xyz/
servers:
- url: https://api.hibachi.xyz
  description: Account, trading and capital API (production)
- url: https://data-api.hibachi.xyz
  description: Market data API (production)
tags:
- name: Capital
  description: 'Authenticated capital movement: balance, deposit info, withdraw, transfer'
paths:
  /capital/balance:
    get:
      operationId: getCapitalBalance
      summary: /capital/balance
      tags:
      - Capital
      description: 'Usage Get the balance of your account. The returned balance is your net equity which includes unrealized PnL. Required Request Parameter: accountId: The account ID can be found on the UI details page of each API Key. Your Account ID will not be generated until your first deposit'
      parameters:
      - name: accountId
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
              example:
                balance: '1998766.543274'
        '400':
          description: Bad request
        '401':
          description: Unauthorized - missing or invalid API key
      security:
      - ApiKeyAuth: []
  /capital/history:
    get:
      operationId: getCapitalHistory
      summary: /capital/history
      tags:
      - Capital
      description: 'Usage Get the deposit and withdraw history of your account. It will return most recent up to 100 deposit and 100 withdraw. Required Request Parameter: accountId : The account ID can be found on the UI details page of each API Key. Your Account ID will not be generated until your first deposit; this ID is required for a lot of endpoints'
      parameters:
      - name: accountId
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
              example:
                transactions:
                - assetId: 1
                  blockNumber: 0
                  id: 10
                  quantity: '20.000000'
                  status: completed
                  timestamp: 1728510232
                  transactionHash: '0x0000000000000000000000000000000000000000000000000000000000000000'
                  transactionType: deposit
                - assetId: 1
                  id: 3
                  quantity: '3.061224'
                  status: completed
                  timestamp: 1728510702
                  transactionType: withdrawal
                  withdrawalAddress: '0x0000000000000000000000000000000000000000'
                - assetId: 1
                  id: 13
                  quantity: '11.997367'
                  srcAccountId: 134
                  srcAddress: '0x0000000000000000000000000000000000000000'
                  status: completed
                  timestamp: 1728510867
                  transactionType: transfer-in
                - assetId: 1
                  id: 7
                  quantity: '10.000000'
                  receivingAccountId: 134
                  receivingAddress: '0x0000000000000000000000000000000000000000'
                  status: completed
                  timestamp: 1728510375
                  transactionType: transfer-out
        '400':
          description: Bad request
        '401':
          description: Unauthorized - missing or invalid API key
      security:
      - ApiKeyAuth: []
  /capital/withdraw:
    post:
      operationId: submitWithdraw
      summary: /capital/withdraw
      tags:
      - Capital
      description: 'Usage Submit a withdraw request. Signing Use below field to sign the message and pass it in to signature field (65 bytes). Refer to the Signing section for more context assetId (4 bytes) quantity (8 bytes): should be no more than maximalWithdraw returned by /trade/account/info endpoint, otherwise it will be rejected. maxFees (8 bytes): should be at least returned by /market/exchange-info endpoint, otherwise it will be rejected. withdrawalAddress (20 bytes) Request Body Payload Required Fields accountId coin withdrawAddress quantity signature NOTE : Self Claim Option for trustless account: You can replace withdrawalAddress with selfWithdrawal , but you will need to follow our ABI to make direct contract interaction for claim the withdraw. Currently, the only coin we support is USDT .'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
            example:
              accountId: 140
              coin: USDT
              withdrawAddress: '0000000000000000000000000000000000000000'
              network: arbitrum
              quantity: '2.0113592'
              maxFees: '0.0113592'
              signature: '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
              example: {}
        '400':
          description: Bad request
        '401':
          description: Unauthorized - missing or invalid API key
      security:
      - ApiKeyAuth: []
  /capital/transfer:
    post:
      operationId: submitTransfer
      summary: /capital/transfer
      tags:
      - Capital
      description: Usage Submit a withdraw request. Signing Use below field to sign the message and pass it in to signature field (65 bytes). Refer to the Signing section for more context nonce (8 bytes) assetId (4 bytes) quantity (8 bytes) dstPublicKey (20 bytes) maxFeesPercent (8 bytes), should be at least returned value at /market/exchange-info endpoint, otherwise, it will be rejected. Required Request Body accountId coin fees nonce quantity receivingAddress signature Currently, the only coin we support is USDT .
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
            example:
              accountId: 140
              coin: USDT
              fees: '0'
              nonce: 1728515344533
              quantity: '1'
              dstPublicKey: '00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
              signature: '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
              example: {}
        '400':
          description: Bad request
        '401':
          description: Unauthorized - missing or invalid API key
      security:
      - ApiKeyAuth: []
  /capital/deposit-info:
    get:
      operationId: getDepositInfo
      summary: /capital/deposit-info
      tags:
      - Capital
      description: 'Usage Get deposit address for a given account. Sending funds to this address allows for Required Request Parameter: ** publicKey: **The public key of the account'
      parameters:
      - name: accountId
        in: query
        required: true
        schema:
          type: string
      - name: publicKey
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
              example:
                depositAddressEvm: '0x0000000000000000000000000000000000000000'
        '400':
          description: Bad request
        '401':
          description: Unauthorized - missing or invalid API key
      security:
      - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: API key identifying the account. Required for all endpoints except public /market and /exchange endpoints. This key does NOT sign requests; order/withdraw/transfer payloads must also carry a signature generated with your ECDSA private key (trustless accounts) or HMAC secret (exchange-managed accounts).