CoinMarketCal APIcoinmarketcal.com ↗
Access CoinMarketCal's crypto event calendar via API. Filter events by coin, date, category, and impact. Get coin pages, categories, and cursor-paginated feeds.
What is the CoinMarketCal API?
The CoinMarketCal API provides structured access to the cryptocurrency event calendar through 6 endpoints covering event feeds, single-event details, coin lookups, coin pages, editorial categories, and a recently-added event feed. The list_events endpoint alone returns up to 10 filtered event records per page with fields including impact score, coin price data, category counts, and cursor-based pagination — making it straightforward to build event-driven crypto research tools.
curl -X GET 'https://api.parse.bot/scraper/f7bad728-072d-402f-bddd-b9a0830ebdcb/list_events?sort=date-asc&include_past=True' \ -H 'X-API-Key: $PARSE_API_KEY'
Returns one page of the CoinMarketCal event feed as structured event records (10 events per page, fixed by the site). Pagination is cursor based: every page carries nextCursor and hasNextPage; pass nextCursor back as cursor to fetch the following page and stop when hasNextPage is false. total is the site's count of events matching the current filters, so the complete dataset is walked by repeating the call with the same filters and the advancing cursor. By default the feed covers upcoming and currently ongoing events only; include_past=true (when date_from is omitted) widens the window to every event the site holds, past and future, which is the route for a full synchronisation. To get the most recently added events, use sort=recent: the first page is then the 10 newest events in order of addition (newest first, highest id first); combine it with include_past=true so newly added events dated in the past are not excluded by the default upcoming-only window. Filters: date_from/date_to (ISO dates, UTC day boundaries), categories (comma-separated category names exactly as returned by list_categories), coin_ids (comma-separated coin slugs), max_rank (only coins ranked at or above this market-cap rank), exchanges (comma-separated exchange slugs), search (keyword in title or description), min_impact (minimum impact score 0-10; the site's own default view uses 5, this API defaults to 0 so nothing is hidden) and sort (date-asc, date-desc, impact-desc, recent = newest added first). Each event carries stable id and slug, ISO-8601 UTC date fields, dateType (date, quarter, month or year granularity), isEstimated (true when the date is a deadline-style 'by' date or only a quarter/month/year is known), displayedDate as the site shows it, coins (slug, symbol, name, logo) and categories (id, name, class). Detailed fields such as description, impactSummary, sourceUrl, snapshotUrl, createdAt and updatedAt are not part of the feed; fetch them with get_event using the slug. categoryCounts is only populated on the first page (no cursor). ongoingEvents and featuredEvents are the site's side lists for the same filters and may be empty. An empty events array with total 0 is a valid result for filters that match nothing.
| Param | Type | Description |
|---|---|---|
| sort | string | Ordering of the feed; recent returns the most recently added events first. |
| cursor | string | Continuation cursor: the nextCursor value from the previous page. Omit for the first page. |
| search | string | Keyword searched in event titles and descriptions. |
| date_to | string | Latest event date to include, ISO date YYYY-MM-DD (UTC, inclusive). |
| coin_ids | string | Comma-separated coin slugs (slug from search_coins.coins[*].slug or list_events coins[*].slug), e.g. bitcoin,ethereum. |
| max_rank | string | Positive integer; restricts the feed to events of coins whose market-cap rank is this value or better (the site offers 100, 300 and 500). |
| date_from | string | Earliest event date to include, ISO date YYYY-MM-DD (UTC). When omitted the site's default window (ongoing and upcoming events) applies unless include_past is true. |
| exchanges | string | Comma-separated exchange slugs as used by the site's exchange filter (e.g. binance). Not exercised in this build; forwarded to the site unchanged. |
| categories | string | Comma-separated category names exactly as returned by list_categories, e.g. Release,Exchange. The scraper splits on commas; do not pass an array. |
| min_impact | number | Minimum impact score (0-10) an event must have to be returned. |
| include_past | boolean | When true and date_from is omitted, the window starts at the beginning of the catalog so past events are returned too (full-dataset sync, or newest-added events regardless of their date). |
{
"type": "object",
"fields": {
"limit": "integer page size (always 10)",
"total": "integer count of events matching the filters across all pages",
"cursor": "integer cursor that produced this page, null on the first page",
"events": "array of event records for this page (see sample for the record shape)",
"nextCursor": "integer cursor for the next page, null on the last page",
"hasNextPage": "boolean, true when nextCursor is present",
"ongoingEvents": "array of event records currently in progress for the same filters (same shape as events; often empty)",
"categoryCounts": "array of {name, count} per category for the current filters; empty when a cursor was supplied",
"featuredEvents": "array of pinned featured event records (same shape; often empty)"
},
"sample": {
"data": {
"limit": 10,
"total": 3585,
"cursor": null,
"events": [
{
"id": 3,
"date": "2026-06-16T00:00:00.000Z",
"slug": "abra-integration-84989004-1",
"year": null,
"coins": [
{
"logo": "https://coinmarketcal-share.s3.eu-west-1.amazonaws.com/coins/icons/threshold-network-token.jpg",
"name": "Threshold Network",
"slug": "threshold-network-token",
"symbol": "t"
}
],
"month": null,
"title": "tBTC Listing on Abra",
"impact": 2,
"dateEnd": null,
"quarter": null,
"dateType": "date",
"featured": false,
"dateStart": null,
"daysUntil": -92,
"categories": [
{
"id": 18,
"name": "Integration",
"class": "integration"
}
],
"isDeadline": false,
"isEstimated": false,
"displayedDate": "16 Jun",
"displayDateType": "exact"
}
],
"nextCursor": 21,
"hasNextPage": true,
"ongoingEvents": [],
"categoryCounts": [
{
"name": "Airdrop/Snapshot",
"count": 39
},
{
"name": "Release",
"count": 1116
}
],
"featuredEvents": []
},
"status": "success"
}
}About the CoinMarketCal API
Event Feed and Filtering
The list_events endpoint returns paginated event records from CoinMarketCal's calendar. Each page carries 10 events with a nextCursor and hasNextPage field for cursor-based pagination. Filter parameters include date_from and date_to for date windows (ISO 8601 YYYY-MM-DD), coin_ids accepting comma-separated coin slugs, max_rank to restrict events to coins within a given market-cap rank, and search for keyword matching against titles and descriptions. The response also includes categoryCounts (per-category breakdown for the active filters), ongoingEvents (in-progress events matching the same filters), and featuredEvents (pinned entries). Category counts are omitted when a cursor is supplied.
Single Event and Coin Detail
The get_event endpoint returns the full record for one event by slug — including impact score (0–10), coins array with live rank, priceUsd, priceUsdChange24h, and marketCapUsd, plus sourceUrl, dateType (date, quarter, month, or year), and dateEnd for ranged events. The get_coin endpoint returns a coin's CoinMarketCal page as structured data: upcomingEvents and pastEvents arrays of full event records, upcomingEventCount, majorEventCount, current priceUsd, and a tracked boolean indicating whether the site actively follows the coin.
Supporting Lookups
The search_coins endpoint accepts a free-text query matched against coin names and symbols, returning up to 20 results each with slug, symbol, name, and rank. Omitting the query returns the top 50 coins by market-cap rank. Slugs from this endpoint are the stable identifiers accepted by list_events (coin_ids) and get_coin (coin_id). The list_categories endpoint returns every CoinMarketCal editorial category with id, name, class, and eventCount, plus a totalEvents count across the entire catalog — useful for building filter UIs or auditing category coverage.
Recently-Added Events Feed
The list_added_events endpoint filters events by the date they were *added* to CoinMarketCal rather than when they are *scheduled*, covering a from/to window against each event's createdAt field. It supports the same coin_ids, max_rank, search, and categories filters as list_events. The response includes a scanned count (feed candidates inspected), a failures array for any records that could not be read, and cursor fields for pagination. The limit parameter (1–25) controls how many matched events are returned per call.
The CoinMarketCal API is a managed, monitored endpoint for coinmarketcal.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when coinmarketcal.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official coinmarketcal.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Alert system that monitors
list_added_eventsdaily to notify traders when high-impact events are added for top-100 coins - Calendar widget that calls
list_eventswithdate_fromanddate_toto render a weekly crypto event schedule filtered by coin slugs - Research dashboard aggregating
get_coindata to compareupcomingEventCountandmajorEventCountacross a tracked portfolio - Category trend analysis using
list_categorieseventCounts alongsidelist_eventscategoryCounts to spot which event types cluster around specific coins - Event impact scoring pipeline that reads
get_eventimpact scores and correlates them against priceUsdChange24h for coins in the event's coins array - Coin discovery tool that queries
search_coinsby symbol and feeds resulting slugs intolist_eventsfor event-based due diligence - Historical event archive that iterates
list_added_eventsover past date windows using cursor pagination to build a local dataset of createdAt-ordered records
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does CoinMarketCal have an official developer API?+
How does pagination work across list_events and list_added_events?+
cursor parameter. Each response returns a nextCursor integer and a hasNextPage boolean. Pass nextCursor as cursor on subsequent calls to advance through results. Iteration ends when hasNextPage is false or nextCursor is null. For list_events, categoryCounts is only populated on the first (uncursored) page.What does list_added_events return that list_events does not?+
list_added_events filters by the date an event was *added* to CoinMarketCal (its createdAt field) within a from/to window, rather than by the event's scheduled date. This makes it the right endpoint for detecting newly submitted events over a specific calendar period. It also returns a scanned count and a failures array not present in list_events.Does the API expose vote counts or community confidence scores shown on CoinMarketCal event pages?+
impact score, coin price fields, sourceUrl, and category data, but vote counts and community confidence percentages are not included in the response fields. You can fork this API on Parse and revise it to add those fields from the event page.Can I filter events by exchange using the exchanges parameter?+
exchanges parameter is accepted by list_events and maps to CoinMarketCal's exchange filter, but it has not been exercised in the current build and its behavior in practice is unverified. Coverage of the exchange filter is not guaranteed. You can fork this API on Parse and revise it to validate and extend exchange filtering.