Kraken Earn API

Staking and yield allocation endpoints

Operations 6

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /0/private/Earn/Allocate Put funds into an Earn strategy · Kraken Allocate Earn Funds #
Ask an LLM
“How do I start earning rewards by staking an asset?”
“Can I allocate a specific amount to an Earn strategy?”
Tell an agent
Allocate {amount} to Earn strategy {strategy_id}.
Stake {amount} in strategy {strategy_id}.
POST /0/private/Earn/Deallocate Withdraw funds from an Earn strategy · Kraken Deallocate Earn Funds #
Ask an LLM
“How do I unstake funds from an Earn strategy?”
“When do deallocated funds come back to my trading balance?”
Tell an agent
Deallocate {amount} from Earn strategy {strategy_id}.
Unstake {amount} from strategy {strategy_id} back to my balance.
POST /0/private/Earn/AllocateStatus Check status of a pending Earn allocation · Kraken Get Earn Allocate Status #
Ask an LLM
“Has my last Earn allocation finished processing?”
“Is my staking request still pending?”
Tell an agent
Check whether my last allocation to strategy {strategy_id} is still in progress.
Get the allocation status for Earn strategy {strategy_id}.
POST /0/private/Earn/DeallocateStatus Check status of a pending Earn deallocation · Kraken Get Earn Deallocate Status #
Ask an LLM
“Has my unstaking request completed yet?”
“Is my last deallocation from an Earn strategy still pending?”
Tell an agent
Check whether my last deallocation from strategy {strategy_id} has completed.
Get the deallocation status for Earn strategy {strategy_id}.
POST /0/private/Earn/Strategies Browse available Earn strategies · Kraken List Earn Strategies #
Ask an LLM
“Which staking and Earn options can I use, and what APRs do they offer?”
“Can I see only Earn strategies for one asset or lock type?”
Tell an agent
List the Earn strategies available to me.
Show Earn strategies for {asset}.
POST /0/private/Earn/Allocations View my current Earn allocations and rewards · Kraken List Earn Allocations #
Ask an LLM
“How much do I currently have staked and what rewards have I earned?”
“Which Earn strategies am I allocated to right now?”
Tell an agent
Show my current Earn allocations and rewards.
List my Earn allocations using two-factor code {otp}.

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-earn-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-earn-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Kraken Spot REST Earn 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: Earn
  description: Staking and yield allocation endpoints
paths:
  /0/private/Earn/Allocate:
    post:
      operationId: allocateEarnFunds
      summary: Kraken Allocate Earn Funds
      description: Allocates the requested amount of an asset to a Kraken Earn strategy.
      tags:
      - Earn
      security:
      - kraken_signature: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EarnAllocateRequest'
            examples:
              allocateEarnFundsRequestExample:
                summary: Default allocateEarnFunds request
                x-microcks-default: true
                value:
                  nonce: 1717000000000
                  otp: '123456'
                  amount: '0.01'
                  strategy_id: OQCLML-BW3P3-BUCMWZ
      responses:
        '200':
          description: Allocation accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EarnSimpleResponse'
              examples:
                allocateEarnFunds200Example:
                  summary: Default allocateEarnFunds 200 response
                  x-microcks-default: true
                  value:
                    error: []
                    result: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /0/private/Earn/Deallocate:
    post:
      operationId: deallocateEarnFunds
      summary: Kraken Deallocate Earn Funds
      description: Removes the requested amount from an Earn strategy and returns funds to the trading balance once bonding/unbonding completes.
      tags:
      - Earn
      security:
      - kraken_signature: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EarnAllocateRequest'
            examples:
              deallocateEarnFundsRequestExample:
                summary: Default deallocateEarnFunds request
                x-microcks-default: true
                value:
                  nonce: 1717000000000
                  otp: '123456'
                  amount: '0.01'
                  strategy_id: OQCLML-BW3P3-BUCMWZ
      responses:
        '200':
          description: Deallocation accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EarnSimpleResponse'
              examples:
                deallocateEarnFunds200Example:
                  summary: Default deallocateEarnFunds 200 response
                  x-microcks-default: true
                  value:
                    error: []
                    result: true
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /0/private/Earn/AllocateStatus:
    post:
      operationId: getEarnAllocateStatus
      summary: Kraken Get Earn Allocate Status
      description: Returns the in-flight status of the last Allocate call for a strategy.
      tags:
      - Earn
      security:
      - kraken_signature: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EarnStrategyScopedRequest'
            examples:
              getEarnAllocateStatusRequestExample:
                summary: Default getEarnAllocateStatus request
                x-microcks-default: true
                value:
                  nonce: 1717000000000
                  otp: '123456'
                  strategy_id: OQCLML-BW3P3-BUCMWZ
      responses:
        '200':
          description: Allocate status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EarnStatusResponse'
              examples:
                getEarnAllocateStatus200Example:
                  summary: Default getEarnAllocateStatus 200 response
                  x-microcks-default: true
                  value:
                    error: []
                    result: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /0/private/Earn/DeallocateStatus:
    post:
      operationId: getEarnDeallocateStatus
      summary: Kraken Get Earn Deallocate Status
      description: Returns the in-flight status of the last Deallocate call for a strategy.
      tags:
      - Earn
      security:
      - kraken_signature: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EarnStrategyScopedRequest'
            examples:
              getEarnDeallocateStatusRequestExample:
                summary: Default getEarnDeallocateStatus request
                x-microcks-default: true
                value:
                  nonce: 1717000000000
                  otp: '123456'
                  strategy_id: OQCLML-BW3P3-BUCMWZ
      responses:
        '200':
          description: Deallocate status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EarnStatusResponse'
              examples:
                getEarnDeallocateStatus200Example:
                  summary: Default getEarnDeallocateStatus 200 response
                  x-microcks-default: true
                  value:
                    error: []
                    result: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /0/private/Earn/Strategies:
    post:
      operationId: listEarnStrategies
      summary: Kraken List Earn Strategies
      description: Returns the catalog of Earn strategies available to the account (lockup periods, APR ranges, asset).
      tags:
      - Earn
      security:
      - kraken_signature: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/EarnStrategiesRequest'
            examples:
              listEarnStrategiesRequestExample:
                summary: Default listEarnStrategies request
                x-microcks-default: true
                value:
                  nonce: 1717000000000
                  otp: '123456'
                  asset: XBT
                  limit: 1
                  lock_type: []
                  cursor: string
                  ascending: true
      responses:
        '200':
          description: Strategy catalog
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EarnStrategiesResponse'
              examples:
                listEarnStrategies200Example:
                  summary: Default listEarnStrategies 200 response
                  x-microcks-default: true
                  value:
                    error: []
                    result: {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /0/private/Earn/Allocations:
    post:
      operationId: listEarnAllocations
      summary: Kraken List Earn Allocations
      description: Returns the current Earn allocations for the account, including bonded, allocated, and rewards balances.
      tags:
      - Earn
      security:
      - kraken_signature: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/NoncedRequest'
            examples:
              listEarnAllocationsRequestExample:
                summary: Default listEarnAllocations request
                x-microcks-default: true
                value:
                  nonce: 1717000000000
                  otp: '123456'
      responses:
        '200':
          description: Allocations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EarnAllocationsResponse'
              examples:
                listEarnAllocations200Example:
                  summary: Default listEarnAllocations 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'
    EarnStatusResponse:
      allOf:
      - $ref: '#/components/schemas/BaseEnvelope'
      - type: object
        properties:
          result:
            type: object
            properties:
              pending:
                type: boolean
                example: true
            example: {}
    EarnStrategiesRequest:
      allOf:
      - $ref: '#/components/schemas/NoncedRequest'
      - type: object
        properties:
          asset:
            type: string
            example: XBT
          limit:
            type: integer
            example: 1
          lock_type:
            type: array
            items:
              type: string
              enum:
              - bonded
              - flex
              - timed
              - instant
            example: []
          cursor:
            type: string
            example: string
          ascending:
            type: boolean
            example: true
    EarnStrategiesResponse:
      allOf:
      - $ref: '#/components/schemas/BaseEnvelope'
      - type: object
        properties:
          result:
            type: object
            properties:
              items:
                type: array
                items:
                  $ref: '#/components/schemas/EarnStrategy'
                example: []
              next_cursor:
                type: string
                example: string
            example: {}
    EarnStrategy:
      type: object
      properties:
        id:
          type: string
          example: OQCLML-BW3P3-BUCMWZ
        asset:
          type: string
          example: XBT
        lock_type:
          type: object
          properties:
            type:
              type: string
              example: buy
            bonding_period:
              type: integer
              example: 1
            unbonding_period:
              type: integer
              example: 1
            payout_frequency:
              type: integer
              example: 1
          example: {}
        apr_estimate:
          type: object
          properties:
            low:
              type: string
              example: string
            high:
              type: string
              example: string
          example: {}
        user_min_allocation:
          type: string
          example: string
        user_cap:
          type: string
          example: string
        allocation_fee:
          type: string
          example: string
        deallocation_fee:
          type: string
          example: string
        auto_compound:
          type: object
          properties:
            type:
              type: string
              example: buy
            default:
              type: boolean
              example: true
          example: {}
        yield_source:
          type: object
          properties:
            type:
              type: string
              example: buy
          example: {}
        can_allocate:
          type: boolean
          example: true
        can_deallocate:
          type: boolean
          example: true
    EarnStrategyScopedRequest:
      allOf:
      - $ref: '#/components/schemas/NoncedRequest'
      - type: object
        required:
        - strategy_id
        properties:
          strategy_id:
            type: string
            example: OQCLML-BW3P3-BUCMWZ
    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
    EarnAllocationsResponse:
      allOf:
      - $ref: '#/components/schemas/BaseEnvelope'
      - type: object
        properties:
          result:
            type: object
            properties:
              converted_asset:
                type: string
                example: XBT
              total_allocated:
                type: string
                example: string
              total_rewarded:
                type: string
                example: string
              items:
                type: array
                items:
                  type: object
                  properties:
                    strategy_id:
                      type: string
                      example: OQCLML-BW3P3-BUCMWZ
                    native_asset:
                      type: string
                      example: XBT
                    amount_allocated:
                      type: object
                      properties:
                        bonding:
                          type: object
                          example: {}
                        unbonding:
                          type: object
                          example: {}
                        allocated:
                          type: object
                          example: {}
                        total:
                          type: object
                          properties:
                            native:
                              type: string
                              example: string
                            converted:
                              type: string
                              example: string
                          example: {}
                      example: {}
                    total_rewarded:
                      type: object
                      properties:
                        native:
                          type: string
                          example: string
                        converted:
                          type: string
                          example: string
                      example: {}
                example: []
            example: {}
    EarnSimpleResponse:
      allOf:
      - $ref: '#/components/schemas/BaseEnvelope'
      - type: object
        properties:
          result:
            type: boolean
            example: true
    EarnAllocateRequest:
      allOf:
      - $ref: '#/components/schemas/NoncedRequest'
      - type: object
        required:
        - amount
        - strategy_id
        properties:
          amount:
            type: string
            example: '0.01'
          strategy_id:
            type: string
            example: OQCLML-BW3P3-BUCMWZ
  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.'