Bitcompare Coins API
Coin metadata, market data, and history
Coin metadata, market data, and history
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/bitcompare-net:bitcompare-net-coins-api"
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.
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: 3.2.0
info:
title: Bitcompare Coins 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: Coins
description: Coin metadata, market data, and history
paths:
/api/v1/coins/{coinId}:
get:
tags:
- Coins
operationId: get_coin
summary: Get coin metadata
description: 'Full metadata for a coin: description, links, categories, market data, developer stats.'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: Canonical coin ID (e.g. `bitcoin`)
symbol:
type: string
description: Trading symbol (e.g. `btc`)
name:
type: string
description: Human-readable name (e.g. `Bitcoin`)
marketCap:
description: Market cap in USD
type: number
rank:
description: Market cap rank (1 = largest)
type: integer
price:
description: Current spot price in USD
type: number
required:
- id
- symbol
- name
additionalProperties: true
'401':
description: Missing or invalid API key
$ref: '#/components/responses/Unauthorized'
'429':
description: Plan rate limit exceeded
$ref: '#/components/responses/RateLimited'
parameters:
- name: coinId
in: path
required: true
description: Canonical coin id or slug (e.g. "bitcoin")
schema:
type: string
description: Canonical coin id or slug (e.g. "bitcoin")
example: bitcoin
x-mcp-annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
/api/v1/coins:
get:
tags:
- Coins
operationId: list_coins
summary: List coins
description: Paginated list of coins with optional name/symbol search.
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
coins:
type: array
items:
type: object
properties:
id:
type: string
description: Canonical coin ID (e.g. `bitcoin`)
symbol:
type: string
description: Trading symbol (e.g. `btc`)
name:
type: string
description: Human-readable name (e.g. `Bitcoin`)
marketCap:
description: Market cap in USD
type: number
rank:
description: Market cap rank (1 = largest)
type: integer
price:
description: Current spot price in USD
type: number
required:
- id
- symbol
- name
additionalProperties: true
required:
- coins
additionalProperties: true
'401':
description: Missing or invalid API key
$ref: '#/components/responses/Unauthorized'
'429':
description: Plan rate limit exceeded
$ref: '#/components/responses/RateLimited'
parameters:
- name: limit
in: query
required: false
description: Page size, default 20
schema:
type: integer
minimum: 1
maximum: 500
example: 10
- name: search
in: query
required: false
description: Search by name or symbol
schema:
type: string
example: eth
x-mcp-annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
/api/v1/coins/top:
get:
tags:
- Coins
operationId: top_coins
summary: Top coins by market cap
description: Top N coins ordered by market capitalisation.
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
coins:
type: array
items:
type: object
properties:
id:
type: string
description: Canonical coin ID (e.g. `bitcoin`)
symbol:
type: string
description: Trading symbol (e.g. `btc`)
name:
type: string
description: Human-readable name (e.g. `Bitcoin`)
marketCap:
description: Market cap in USD
type: number
rank:
description: Market cap rank (1 = largest)
type: integer
price:
description: Current spot price in USD
type: number
required:
- id
- symbol
- name
additionalProperties: true
required:
- coins
additionalProperties: true
'401':
description: Missing or invalid API key
$ref: '#/components/responses/Unauthorized'
'429':
description: Plan rate limit exceeded
$ref: '#/components/responses/RateLimited'
parameters:
- name: limit
in: query
required: false
description: Number of coins, default 100
schema:
type: integer
minimum: 1
maximum: 500
example: 10
x-mcp-annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
/api/v1/coins/{coinId}/similar:
get:
tags:
- Coins
operationId: similar_coins
summary: Similar coins
description: Coins related to the given coin by category/sector similarity.
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
coins:
type: array
items:
type: object
properties:
id:
type: string
description: Canonical coin ID (e.g. `bitcoin`)
symbol:
type: string
description: Trading symbol (e.g. `btc`)
name:
type: string
description: Human-readable name (e.g. `Bitcoin`)
marketCap:
description: Market cap in USD
type: number
rank:
description: Market cap rank (1 = largest)
type: integer
price:
description: Current spot price in USD
type: number
required:
- id
- symbol
- name
additionalProperties: true
required:
- coins
additionalProperties: true
'401':
description: Missing or invalid API key
$ref: '#/components/responses/Unauthorized'
'429':
description: Plan rate limit exceeded
$ref: '#/components/responses/RateLimited'
parameters:
- name: coinId
in: path
required: true
description: Canonical coin id to find related coins for (e.g. "bitcoin")
schema:
type: string
description: Canonical coin id to find related coins for (e.g. "bitcoin")
example: bitcoin
- name: limit
in: query
required: false
description: Max related coins to return, default 10
schema:
type: integer
minimum: 1
maximum: 50
example: 5
x-mcp-annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
/api/v1/coins/{coinId}/history:
get:
tags:
- Coins
operationId: coin_history
summary: Historical coin price chart
description: Historical price timeseries for a coin.
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
coinId:
type: string
days:
type: integer
source:
type: string
enum:
- rate_history
- cache
- coingecko
description: Where the data came from
prices:
type: array
items:
type: object
properties:
timestamp:
type: number
description: Unix epoch milliseconds
price:
type: number
volume:
type: number
marketCap:
type: number
required:
- timestamp
- price
additionalProperties: true
description: Price points, oldest → newest
lastUpdated:
type: string
description: ISO-8601 timestamp of the most recent refresh
required:
- coinId
- days
- source
- prices
- lastUpdated
additionalProperties: true
required:
- data
additionalProperties: true
'401':
description: Missing or invalid API key
$ref: '#/components/responses/Unauthorized'
'429':
description: Plan rate limit exceeded
$ref: '#/components/responses/RateLimited'
parameters:
- name: coinId
in: path
required: true
description: Canonical coin id (e.g. "bitcoin")
schema:
type: string
description: Canonical coin id (e.g. "bitcoin")
example: bitcoin
- name: days
in: query
required: false
description: Days of history
schema:
type: integer
minimum: 1
maximum: 1825
example: 7
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
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