Bitcompare Earn API

The earn API from Bitcompare — 2 operation(s) for earn.

Operations 2

GET /api/v1/rates/changes Rate change feed (observations) #
GET /api/v1/earn/products Canonical earn products & variants #

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/bitcompare-net:bitcompare-net-earn-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

bitcompare-net-earn-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bitcompare Earn API
  summary: Crypto yield data, coin metadata, prices, market stats, and stablecoin data.
  description: Public REST API powering Bitcompare and the Bitcompare MCP server. Live and historical crypto yield data across lending, staking, borrowing, and stablecoin products, plus coin metadata, aggregated prices, market stats, and stablecoin peg-stability. Every endpoint is also exposed as an MCP tool at https://api.bitcompare.net/mcp.
  version: 1.0.0
  contact:
    name: Bitcompare API support
    email: info@bitcompare.net
    url: https://docs.bitcompare.net
  license:
    name: Commercial
    url: https://bitcompare.net/terms-of-use
  termsOfService: https://bitcompare.net/terms-of-use
servers:
- url: https://api.bitcompare.net
  description: Production
security:
- {}
- BearerAuth: []
tags:
- name: earn
paths:
  /api/v1/rates/changes:
    get:
      tags:
      - earn
      operationId: get_rate_changes
      summary: Rate change feed (observations)
      description: 'The immutable rate-change log: every material yield move with full provenance (previous rate, raw value, multiplier, collection method, confidence, base/bonus split). Time-ascending pages via cursor. Unfiltered windows are capped at 31 days — filter by provider or symbol to walk deep history. Use for "what changed since X?" and audit trails.'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        time:
                          type: string
                        provider:
                          type: string
                        symbol:
                          type: string
                        category:
                          type: string
                          enum:
                          - lending
                          - borrowing
                          - staking
                        rate:
                          type: number
                        previousRate:
                          type:
                          - number
                          - 'null'
                        change:
                          type:
                          - number
                          - 'null'
                        collectionMethod:
                          type: string
                        confidence:
                          type:
                          - integer
                          - 'null'
                        baseRate:
                          type:
                          - number
                          - 'null'
                        bonusRate:
                          type:
                          - number
                          - 'null'
                      required:
                      - time
                      - provider
                      - symbol
                      - category
                      - rate
                      - previousRate
                      - change
                      - collectionMethod
                      - confidence
                      - baseRate
                      - bonusRate
                      additionalProperties: true
                  pagination:
                    type: object
                    properties:
                      nextCursor:
                        type:
                        - string
                        - 'null'
                      hasMore:
                        type: boolean
                      limit:
                        type: integer
                    required:
                    - nextCursor
                    - hasMore
                    - limit
                    additionalProperties: true
                required:
                - data
                - pagination
                additionalProperties: true
        '401':
          description: Missing or invalid API key
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: API key valid but plan lacks access to this endpoint
          $ref: '#/components/responses/Forbidden'
        '429':
          description: Plan rate limit exceeded
          $ref: '#/components/responses/RateLimited'
      parameters:
      - name: since
        in: query
        required: true
        description: ISO date/datetime lower bound (required), e.g. "2026-08-01"
        schema:
          type: string
          description: ISO date/datetime lower bound (required), e.g. "2026-08-01"
        example: '2026-08-01'
      - name: symbol
        in: query
        required: false
        description: Filter to one symbol, e.g. "USDC"
        schema:
          type: string
        example: USDC
      - name: category
        in: query
        required: false
        schema:
          type: string
          enum:
          - lending
          - borrowing
          - staking
        example: lending
      security:
      - BearerAuth: []
      x-mcp-annotations:
        readOnlyHint: true
        destructiveHint: false
        idempotentHint: true
        openWorldHint: true
  /api/v1/earn/products:
    get:
      tags:
      - earn
      operationId: list_earn_products
      summary: Canonical earn products & variants
      description: 'The canonical earn product graph: products (provider × asset × category) with their term variants — lockups, tiers, minimum deposits, payout schedules, withdrawal notice, TVL, promo flags — each carrying collection method, confidence (0-100 with bands), verification timestamps, and geo eligibility resolved from variant overrides or provider defaults. Use for "what are the actual terms behind this rate?"'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      products:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                            provider:
                              type: string
                            symbol:
                              type: string
                            category:
                              type: string
                              enum:
                              - lending
                              - borrowing
                              - staking
                            status:
                              type: string
                            variants:
                              type: array
                              items:
                                type: object
                                properties:
                                  variantKey:
                                    type: string
                                required:
                                - variantKey
                                additionalProperties: true
                          required:
                          - id
                          - provider
                          - symbol
                          - category
                          - status
                          additionalProperties: true
                      pagination:
                        type: object
                        properties:
                          total:
                            type: integer
                          limit:
                            type: integer
                          offset:
                            type: integer
                          hasMore:
                            type: boolean
                        required:
                        - total
                        - limit
                        - offset
                        - hasMore
                        additionalProperties: true
                    required:
                    - products
                    - pagination
                    additionalProperties: true
                required:
                - data
                additionalProperties: true
        '401':
          description: Missing or invalid API key
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: API key valid but plan lacks access to this endpoint
          $ref: '#/components/responses/Forbidden'
        '429':
          description: Plan rate limit exceeded
          $ref: '#/components/responses/RateLimited'
      parameters:
      - name: provider
        in: query
        required: false
        description: Filter to one provider, e.g. "nexo"
        schema:
          type: string
        example: nexo
      - name: symbol
        in: query
        required: false
        description: Filter to one symbol, e.g. "BTC"
        schema:
          type: string
        example: BTC
      - name: category
        in: query
        required: false
        schema:
          type: string
          enum:
          - lending
          - borrowing
          - staking
        example: lending
      security:
      - BearerAuth: []
      x-mcp-annotations:
        readOnlyHint: true
        destructiveHint: false
        idempotentHint: true
        openWorldHint: true
components:
  responses:
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            type: object
            required:
            - error
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                  code:
                    type: string
                    example: INVALID_API_KEY
    RateLimited:
      description: Plan rate limit exceeded — see X-RateLimit-* headers and Retry-After
      content:
        application/json:
          schema:
            type: object
            required:
            - error
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                  code:
                    type: string
                    example: RATE_LIMIT_EXCEEDED
    Forbidden:
      description: API key is valid but your plan does not grant access to this endpoint (e.g. Intelligence or bulk tier required)
      content:
        application/json:
          schema:
            type: object
            required:
            - error
            properties:
              error:
                type: object
                properties:
                  message:
                    type: string
                  code:
                    type: string
                    example: PLAN_UPGRADE_REQUIRED
                  upgradeUrl:
                    type: string
                    format: uri
                    description: Absolute URL to upgrade the plan. Always absolute (never relative to the API host).
                    example: https://pro.bitcompare.net/pricing
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: ck_live_*
      description: 'API keys issued from https://pro.bitcompare.net/dashboard/keys. Send as `Authorization: Bearer ck_live_...`.'
externalDocs:
  description: Developer documentation
  url: https://docs.bitcompare.net