Bitcompare Prices API
Aggregated spot prices from multiple feeds
Aggregated spot prices from multiple feeds
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-prices-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 Prices 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: Prices
description: Aggregated spot prices from multiple feeds
paths:
/api/v1/prices/summary:
get:
tags:
- Prices
operationId: get_price
summary: Aggregated exchange price
description: Current aggregated price for one or more symbols, computed from multiple exchange feeds.
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
prices:
type: array
items:
type: object
properties:
symbol:
type: string
description: Coin symbol
price:
type: number
description: Aggregated price in `currency` (default USD)
currency:
type: string
description: ISO 4217 currency code the price is denominated in
providers:
type: integer
description: Number of providers included in the aggregation
min:
type: number
description: Lowest provider price after outlier filtering
max:
type: number
description: Highest provider price after outlier filtering
median:
type: number
description: Median provider price
timestamp:
type: string
description: ISO-8601 timestamp of the aggregation
required:
- symbol
- price
- currency
- providers
- min
- max
- median
- timestamp
additionalProperties: true
count:
type: integer
timestamp:
type: string
required:
- prices
- count
- timestamp
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: symbols
in: query
required: true
description: Single symbol or array of symbols (e.g. "btc" or ["btc","eth"])
schema:
anyOf:
- type: string
- type: array
items:
type: string
description: Single symbol or array of symbols (e.g. "btc" or ["btc","eth"])
example:
- btc
- eth
x-mcp-annotations:
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
/api/v1/prices/{symbol}:
get:
tags:
- Prices
operationId: get_price_by_symbol
summary: Aggregated price for a single symbol
description: Aggregated exchange price for one symbol, plus the raw per-provider prices that fed the aggregate. Use get_price for multiple symbols in one call.
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
symbol:
type: string
aggregated:
type: object
properties:
symbol:
type: string
description: Coin symbol
price:
type: number
description: Aggregated price in `currency` (default USD)
currency:
type: string
description: ISO 4217 currency code the price is denominated in
providers:
type: integer
description: Number of providers included in the aggregation
min:
type: number
description: Lowest provider price after outlier filtering
max:
type: number
description: Highest provider price after outlier filtering
median:
type: number
description: Median provider price
timestamp:
type: string
description: ISO-8601 timestamp of the aggregation
required:
- symbol
- price
- currency
- providers
- min
- max
- median
- timestamp
additionalProperties: true
providers:
type: array
items:
type: object
properties:
provider:
type: string
symbol:
type: string
price:
type: number
category:
type: string
updatedAt:
type: string
required:
- provider
- symbol
- price
- category
- updatedAt
additionalProperties: true
description: Per-provider prices that fed the aggregate
required:
- symbol
- aggregated
- providers
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: symbol
in: path
required: true
description: Single coin symbol, e.g. "btc"
schema:
type: string
description: Single coin symbol, e.g. "btc"
example: btc
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