Kraken Subaccounts API

Subaccount creation and inter-account transfers

Operations 2

POST /0/private/CreateSubaccount Kraken Create Subaccount #
POST /0/private/AccountTransfer Kraken Account Transfer #

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/kraken-subaccounts-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

kraken-subaccounts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Kraken Spot REST Subaccounts API
  version: 1.0.0
  description: OpenAPI description of Kraken's public Spot REST API. Covers public market data (server time, system status, asset info, ticker, OHLC, order book, recent trades, recent spreads) and the private surface (account data, trading, funding, subaccounts, Earn, WebSocket token). Generated by the API Evangelist pipeline from docs.kraken.com/api/docs/rest-api/.
  contact:
    name: Kraken API Support
    url: https://support.kraken.com/
  license:
    name: Kraken Terms of Service
    url: https://www.kraken.com/legal
  x-generated-from: documentation
  x-last-validated: '2026-05-30'
servers:
- url: https://api.kraken.com
  description: Kraken Spot REST production endpoint
- url: https://colo-london.vip-api.kraken.com
  description: Kraken Spot REST colocation endpoint (London VIP)
tags:
- name: Subaccounts
  description: Subaccount creation and inter-account transfers
paths:
  /0/private/CreateSubaccount:
    post:
      operationId: createSubaccount
      summary: Kraken Create Subaccount
      description: Creates a new subaccount under the master account (institutional / pro feature).
      tags:
      - Subaccounts
      security:
      - kraken_signature: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CreateSubaccountRequest'
            examples:
              createSubaccountRequestExample:
                summary: Default createSubaccount request
                x-microcks-default: true
                value:
                  nonce: 1717000000000
                  otp: '123456'
                  username: subaccount-01
                  email: trader@example.com
      responses:
        '200':
          description: Subaccount creation result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSubaccountResponse'
              examples:
                createSubaccount200Example:
                  summary: Default createSubaccount 200 response
                  x-microcks-default: true
                  value:
                    error: []
                    result: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /0/private/AccountTransfer:
    post:
      operationId: accountTransfer
      summary: Kraken Account Transfer
      description: Transfers an asset between the master account and a subaccount.
      tags:
      - Subaccounts
      security:
      - kraken_signature: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AccountTransferRequest'
            examples:
              accountTransferRequestExample:
                summary: Default accountTransfer request
                x-microcks-default: true
                value:
                  nonce: 1717000000000
                  otp: '123456'
                  asset: XBT
                  amount: '0.01'
                  from: string
                  to: string
      responses:
        '200':
          description: Transfer acknowledgement
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountTransferResponse'
              examples:
                accountTransfer200Example:
                  summary: Default accountTransfer 200 response
                  x-microcks-default: true
                  value:
                    error: []
                    result: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    NoncedRequest:
      type: object
      description: All private requests include an incrementing nonce. Optionally an OTP for two-factor-protected keys.
      required:
      - nonce
      properties:
        nonce:
          type: integer
          format: int64
          example: 1717000000000
        otp:
          type: string
          description: Two-factor password / OTP if the key is OTP-protected.
          example: '123456'
    AccountTransferResponse:
      allOf:
      - $ref: '#/components/schemas/BaseEnvelope'
      - type: object
        properties:
          result:
            type: object
            properties:
              transfer_id:
                type: string
                example: OQCLML-BW3P3-BUCMWZ
              status:
                type: string
                example: string
            example: {}
    CreateSubaccountRequest:
      allOf:
      - $ref: '#/components/schemas/NoncedRequest'
      - type: object
        required:
        - username
        - email
        properties:
          username:
            type: string
            example: subaccount-01
          email:
            type: string
            format: email
            example: trader@example.com
    AccountTransferRequest:
      allOf:
      - $ref: '#/components/schemas/NoncedRequest'
      - type: object
        required:
        - asset
        - amount
        - from
        - to
        properties:
          asset:
            type: string
            example: XBT
          amount:
            type: string
            example: '0.01'
          from:
            type: string
            description: Master account email or subaccount username.
            example: string
          to:
            type: string
            example: string
    BaseEnvelope:
      type: object
      properties:
        error:
          type: array
          items:
            type: string
          description: Array of error strings; empty on success.
          example: []
        result:
          description: Endpoint-specific result object.
          example: string
      required:
      - error
    CreateSubaccountResponse:
      allOf:
      - $ref: '#/components/schemas/BaseEnvelope'
      - type: object
        properties:
          result:
            type: boolean
            example: true
  securitySchemes:
    kraken_signature:
      type: apiKey
      in: header
      name: API-Key
      description: 'Kraken signs private REST requests with two headers: `API-Key` (your public API key) and `API-Sign` (HMAC-SHA512 of the URI path plus SHA256(nonce + POST body), keyed by the base64-decoded secret). All private endpoints must include an incrementing `nonce` in the POST body.'