BitcoinYield Offers API

The Offers API from BitcoinYield — 1 operation(s) for offers.

Business capability
Market & Financial Data AE-230.20

Operations 1

GET /api/v1/offers List the top live offers for one asset #

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/bitcoinyield:bitcoinyield-offers-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

bitcoinyield-offers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: BitcoinYield Offers API
  description: 'Live crypto yield comparison across the whole market (DeFi and CeFi), as a free REST API and MCP server. Live crypto interest rates on Bitcoin, ETH and stablecoins compared: DeFi yield, crypto lending rates, staking and CeFi earn, each graded A to D for risk. No key or account needed.'
  version: 1.9.0
  license:
    name: BitcoinYield Terms of Service
    url: https://bitcoinyield.co/legal/terms
servers:
- url: https://bitcoinyield.co
security: []
tags:
- name: Offers
paths:
  /api/v1/offers:
    get:
      operationId: list_offers
      summary: List the top live offers for one asset
      description: 'The top live yield offers for one asset (5 by default, up to 20) in BitcoinYield''s own order: rate and risk together, with offers that have a month of steady history and $10M+ of liquidity first. Each offer carries its platform, chain, product type, reported rate (APY or APR), organic versus incentive split, 30-day average, liquidity, A-D risk grade with its main reasons, US availability, investor access, the platform''s own deposit link and the page to cite. Filter by chain or a risk ceiling. Use it to compare options; list_yields gives one pick per asset. Rates are variable and not advice. No key required.'
      parameters:
      - name: asset
        in: query
        required: true
        description: The asset's symbol, e.g. BTC, USDC or USDE.
        schema:
          type: string
          description: The asset's symbol, e.g. BTC, USDC or USDE.
          enum:
          - BTC
          - ETH
          - SOL
          - USDC
          - USDT
          - DAI
          - USDE
          - GHO
          - CRVUSD
          - PYUSD
          - RLUSD
          - FRAX
          - USD1
          - USDY
          - USD0
          - USDG
          - AUSD
          - USDD
          - USD3
          - REUSD
          - USDX
          - DEUSD
          - USDF
          - USR
          - USDAI
          - JUPUSD
          - AVUSD
          - BNB
          - AVAX
          - TRX
          - HYPE
          - LINK
          - XRP
          - POL
          - SKY
          - CRV
          - SUI
          - CVX
          - AERO
          - BUIDL
          - USYC
          - USTB
          - OUSG
          - USCC
          - TBILL
          - VBILL
          - THBILL
          - ACRED
          - STAC
          - ONYC
          - STBT
          - DOLA
          - FRXUSD
          - MSUSD
          - FXUSD
          - APXUSD
          - APYUSD
          - STRUSD
          - SYZUSD
          - VUSD
          - STCUSD
          - USDU
          - SRUSD
          - BOLD
          - LISUSD
          - YUSD
          - BUCK
          - EURC
          - EURE
      - name: chain
        in: query
        required: false
        description: Only offers on this chain, e.g. Ethereum, Base, Arbitrum or Solana (case-insensitive). Centralized (CeFi) offers have no chain.
        schema:
          type: string
          description: Only offers on this chain, e.g. Ethereum, Base, Arbitrum or Solana (case-insensitive). Centralized (CeFi) offers have no chain.
      - name: max_risk
        in: query
        required: false
        description: 'Only offers graded at or below this letter: A (lower risk), B (moderate), C (elevated), D (higher).'
        schema:
          type: string
          description: 'Only offers graded at or below this letter: A (lower risk), B (moderate), C (elevated), D (higher).'
          enum:
          - A
          - B
          - C
          - D
      - name: limit
        in: query
        required: false
        description: How many offers to return, 1 to 20 (default 5).
        schema:
          type: integer
          description: How many offers to return, 1 to 20 (default 5).
          minimum: 1
          maximum: 20
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  updated_at:
                    type:
                    - string
                    - 'null'
                    description: When the feed was last refreshed (ISO 8601). It refreshes every 3 hours.
                  stale:
                    type: boolean
                    description: True when part of this snapshot is over 6 hours old (a scheduled refresh was missed).
                  partial:
                    type: boolean
                    description: True when a data source was missing from this snapshot.
                  degraded_sources:
                    type: array
                    items:
                      type: string
                    description: The sources missing from this snapshot, if any.
                  asset:
                    type: string
                  count:
                    type: integer
                  url:
                    type: string
                    description: The asset's full comparison on BitcoinYield.
                  offers:
                    type: array
                    items:
                      type: object
                      properties:
                        rank:
                          type: integer
                          description: The offer's place in BitcoinYield's order (rate and risk together), 1 first.
                        platform:
                          type: string
                          description: The platform's name, e.g. Aave V3.
                        chain:
                          type:
                          - string
                          - 'null'
                          description: The chain the offer is on; null for a centralized (CeFi) offer.
                        market:
                          type: string
                          description: The vault, market or token the rate is paid in.
                        product_type:
                          type: string
                          description: How the yield is produced, e.g. DeFi lending, Savings rate or Liquid staking.
                        rate:
                          type: number
                          description: 'The annual rate in percent (5.2 means 5.2%) as BitcoinYield shows it and orders on it: today''s reported rate, or its 7-day average when that is lower, so a one-day spike never leads.'
                        rate_today:
                          type: number
                          description: 'The latest reading: today''s rate, or for a vault, pool or staking token the middle of its 1-day, 7-day and 30-day realized returns. Above rate when that reading is higher than the 7-day average.'
                        rate_basis:
                          type: string
                          enum:
                          - apy
                          - apr
                          - unknown
                          description: Whether the source reports the rate as APY (compounded) or APR; unknown when it does not say.
                        rate_base:
                          type:
                          - number
                          - 'null'
                          description: The organic part of rate (interest, fees, staking); rate_base + rate_rewards = rate.
                        rate_rewards:
                          type:
                          - number
                          - 'null'
                          description: The part of rate paid as incentive rewards, which last only as long as someone funds them (beside a rate held at its 7-day average, scaled to that rate).
                        avg_7d:
                          type:
                          - number
                          - 'null'
                          description: The rate's 7-day average (rate is the lower of it and rate_today).
                        rewards_program:
                          type:
                          - object
                          - 'null'
                          description: Who pays rate_rewards and how far ahead it is funded, when the incentive program is known (Merkl campaigns on Morpho, Euler, Aave and Fluid); null otherwise.
                          properties:
                            paid_in:
                              type: array
                              items:
                                type: string
                              description: Reward token symbols.
                            funded_through:
                              type: string
                              description: Last day (UTC, YYYY-MM-DD) the live round is funded through.
                            since:
                              type: string
                              description: First day (UTC) of the unbroken run of rounds the live one belongs to.
                            rounds:
                              type: integer
                              description: Rounds in that run, the live one included (1 = never renewed yet).
                            source:
                              type: string
                              enum:
                              - merkl
                          required:
                          - paid_in
                          - funded_through
                          - since
                          - rounds
                          - source
                        avg_30d:
                          type:
                          - number
                          - 'null'
                          description: The rate's 30-day average; null under a month of history.
                        durability:
                          type:
                          - string
                          - 'null'
                          description: 'The rate (as shown and ordered) against its 30-day average: durable, moderate, volatile or spiking; posted when it has not moved in 30 days (a rate the platform sets); lumpy when a realized rate''s 1-day, 7-day and 30-day readings disagree (income booked in lumps); insufficient under a month of history.'
                        liquidity_usd:
                          type:
                          - number
                          - 'null'
                          description: 'The liquidity a depositor can exit into, in US dollars: a lending pool''s withdrawable amount, a credit pool''s cash, or for a staking token what sells at once within 1% of its market price (the rest of its stake leaves through its issuer''s queue, see exit), or for a fund its issuer redeems what its redemption vault pays at once. Null when the source reports none (custodial desks).'
                        exit:
                          type:
                          - string
                          - 'null'
                          description: 'How a holder gets the underlying back at full value, as its issuer states it: a withdrawal queue, a cooldown or a redemption wait, and whether the token can also be sold on a market at the market price. Null when none is on record; a lending market''s exit is its liquidity_usd.'
                        risk_tier:
                          type:
                          - string
                          - 'null'
                          description: 'BitcoinYield''s A-D risk grade: A lower risk, D higher.'
                        risk_reasons:
                          type:
                          - string
                          - 'null'
                          description: The main factors behind the grade.
                        us_available:
                          type: string
                          enum:
                          - 'yes'
                          - 'no'
                          - unknown
                          description: 'Whether a US retail user can open it: no when the platform or issuer excludes US persons, or admits only accredited investors or invited addresses (see access).'
                        access:
                          type:
                          - string
                          - 'null'
                          description: 'An investor restriction: KYC, Accredited only or Invite only.'
                        earn_url:
                          type:
                          - string
                          - 'null'
                          description: 'Where to deposit: the platform''s own page.'
                        partner:
                          type: boolean
                          description: True when BitcoinYield may earn a commission through earn_url (it never changes the order).
                        rate_source_url:
                          type:
                          - string
                          - 'null'
                          description: Where the rate was read.
                        fetched_at:
                          type:
                          - string
                          - 'null'
                          description: When this rate was read (ISO 8601).
                      required:
                      - rank
                      - platform
                      - product_type
                      - rate
                      - rate_today
                      - rate_basis
                      - us_available
                      - partner
                required:
                - asset
                - count
                - offers
                - url
        '400':
          description: A parameter outside its declared values
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
      tags:
      - Offers
x-provenance:
  method: harvested
  publisher: BitcoinYield
  source: https://bitcoinyield.co/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)