CoinMarketCal API
Read the curated crypto-event catalog over HTTP. Every event is editorially titled, dated, scored (Pro+), and proof-linked (Pro+). Authenticate with your API key in the x-api-key header.
◆ Make your first request
# 1. Sign up at coinmarketcal.com/developer and copy your API key. # 2. Hit the events endpoint: curl -H "x-api-key: $COINMARKETCAL_API_KEY" \ "https://api.coinmarketcal.com/v2/events?coins=bitcoin,ethereum&limit=5"
The header format is x-api-key: <key>. See Authentication for key creation and safety.
◆ API reference
- EventsRead curated, scored crypto events. Filter by coin, category, date range, or impact. Every event has an editorial title, date, linked coins, and (on Pro+) source proof and an impact score.
- CategoriesRead the closed list of editorial categories used to tag events. Use the `id` returned here as the canonical value when filtering events via `GET /v2/events?categories=...`. The list is short and rarely changes. Cache for 24 h.
- CoinsRead the coin catalog, filterable by query, rank, and editorial coverage. Use the `slug` returned here as the canonical coin identifier when filtering events; tickers collide.
- UsageRead your monthly request quota and consumption for the authenticated API key.
◆ Import into Postman / Insomnia
We publish an OpenAPI 3.0 spec at the URL below. In Postman, choose Import → Link and paste it; in Insomnia, Application → Import / Export → Import Data → From URL. The spec stays in sync with these docs; re-import when new endpoints ship.
https://coinmarketcal.com/developer/docs/openapi.json
◆ Conventions
- Base URL:
https://api.coinmarketcal.com - Format: JSON request, JSON response. UTF-8 throughout.
- Dates: ISO-8601 with explicit timezone (always UTC), e.g.
2026-05-15T12:00:00Z. - Pagination: Cursor-based. Pass
cursorfrom the previous response'smeta.cursor; null on the last page. - Versioning: The current API is
v2. Breaking changes ship asv3;v2stays available with a 12-month deprecation window. - Errors: See the error reference
- Estimated dates: when an event's
isEstimatedis true, thedatefield is a deadline / window-end. Never render it directly; usedisplayedDate. Full rule on Events