Developer reference · v1
CoinAbout public API
Read-only market data with visible provenance, timestamps and health. No API key is required for these public endpoints. Attribution: “Data via CoinAbout”; preserve upstream source credit, including Alternative.me when using its sentiment index.
Base URL: https://coinabout.com
Public JSON routes allow cross-origin GET. Standard limit: 1,000 requests/minute per IP, shared with public API traffic. This is a protective ceiling, not a paid-plan entitlement or availability guarantee. HTTP 429 includes Retry-After. Cache prices ≥5s, catalog ≥30s and globals ≥60s. Respect provider licensing before redistributing data.
Endpoints
Managed coin catalog
/api/v1/coins/?limit=10page (≥1), limit (1–100), q, network, category, sort, order (asc/desc). Sort: market_cap, volume_24h, price, percent_change_24h, trending, visits_7d.
Reference prices
/api/v1/price/?symbols=BTC,ETHsymbols: 1–100 uppercase tickers. Missing or ambiguous tickers may be absent. Use catalog IDs for identity.
Global market statistics
/api/v1/market/global/CoinGecko global coverage, not a sum of the limited CoinAbout catalog.
Movers and activity
/api/v1/trending/?type=gainers&limit=10type: gainers, losers, activity; limit: 1–100. Liquid managed assets only.
Exchange directory
/api/v1/exchanges/?limit=10Public listings; directory membership does not imply a working market or connector.
Live price stream (SSE)
/api/v1/price/stream/?symbols=BTC,ETHEventSource-compatible stream; initial snapshot + changed ticks + heartbeat. Reconnect on close. Freshness depends on the upstream feed.
Try a request
Your live response will appear here.
Examples
curl 'https://coinabout.com/api/v1/coins/?network=Ethereum&sort=volume_24h&limit=10'
const response = await fetch('https://coinabout.com/api/v1/price/?symbols=BTC,ETH')
if (!response.ok) throw new Error('Market data unavailable')
const { prices } = await response.json()
// Check prices.BTC?.is_stale and last_updated before use.
const stream = new EventSource('https://coinabout.com/api/v1/price/stream/?symbols=BTC,ETH')
stream.onmessage = ({ data }) => console.log(JSON.parse(data))
stream.onerror = () => { /* EventSource retries; close when leaving the page. */ }Response contract & errors
Catalog responses contain success, data, pagination, source and timestamp. Rows include canonical id, price, market_cap, volume_24h, categories, networks, circulating_supply, source_count, confidence_score and last_updated. The price endpoint uses a prices object keyed by ticker. Global statistics use a data object. Stream events use v, type, ts and prices (or a single symbol/price in replay events). Numeric zero for an unavailable market field is not proof of a zero-valued asset. Do not substitute missing fields with invented estimates.
- 400: invalid query. Correct parameters before retrying.
- 429: rate limit. Wait for Retry-After and use backoff.
- 503: source or catalog unavailable. Retain the last reading with its timestamp; do not label it fresh.
- Confidence is data quality, not probability of a successful trade. No SLA, forecast guarantee or executable quote is provided.