Kraken Subaccounts API

Subaccount creation and inter-account transfers

OpenAPI Specification

kraken-subaccounts-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Kraken Futures REST Account Subaccounts API
  version: 3.0.0
  description: OpenAPI description of the Kraken Futures (formerly Crypto Facilities) REST API v3. Covers trading (send/edit/cancel orders, batch), market data (instruments, tickers, orderbook, history), account data (accounts, open positions, open orders, fills), transfers, account history, and charts. Generated by the API Evangelist pipeline from docs.kraken.com/api/docs/futures-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://futures.kraken.com/derivatives/api/v3
  description: Kraken Futures production REST endpoint
- url: https://demo-futures.kraken.com/derivatives/api/v3
  description: Kraken Futures demo / sandbox endpoint
- url: https://colo-london.vip.futures.kraken.com/derivatives/api/v3
  description: Kraken Futures 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:
    CreateSubaccountResponse:
      allOf:
      - $ref: '#/components/schemas/BaseEnvelope'
      - type: object
        properties:
          result:
            type: boolean
            example: true
    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
    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
    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'
  securitySchemes:
    futures_signature:
      type: apiKey
      in: header
      name: APIKey
      description: 'Kraken Futures signs requests with two headers: `APIKey` (public key) and `Authent` (base64 HMAC-SHA512 over `postData + nonce + endpointPath` using the SHA-256 hash of those values, then HMAC-SHA512 keyed by the base64-decoded secret). A `Nonce` header carries the incrementing nonce.'