Skip to main content
Use CoinMarketCap through Corsair: one client, typed API calls. Create a key at https://pro.coinmarketcap.com/login and copy it from the dashboard. Every call sends it in the X-CMC_PRO_API_KEY header. Things that shape the results:
  • IDs are stable, tickers are not. Several assets can share a ticker, so a lookup by symbol can return more than one. cryptocurrency.map resolves a ticker to the CMC IDs the other operations take.
  • quote changes shape by route. The /v3 routes return an array with one entry per requested currency, and each entry names its currency with id and symbol. The /v1 and /v2 routes return an object keyed by currency symbol. This plugin passes each through unchanged.
  • data changes shape too. cryptocurrency.info and exchange.info are keyed by the identifier passed, and a symbol or address lookup wraps each key’s value in an array. Both operations flatten that into one list and keep the provider’s key as lookup_key.
  • Credits. A listing costs one credit per 250 assets returned and one more per extra convert currency. key.info reports the plan limits and what is left this minute, today and this month.
  • Rate limits. CoinMarketCap answers 429 with an error_code that says which limit was hit. 1008 (per minute) and 1011 (per IP) are retried up to twice, using Retry-After when present and the documented 60 second window otherwise. 1009 (daily limit), 1010 (monthly limit) and 1022 (anonymous allowance) are not retried, because waiting out one window cannot clear them.
  • Plans. exchange.info needs a paid plan: a Basic key gets 403 error_code 1005 for it. Every other operation here works on Basic.
  • Empty results. A filter that matches nothing is a success: the route answers data: [] with error_code "0", and this plugin returns an empty list. A body with a success status and no data field at all is malformed, and the call throws instead of reporting an empty page.
  • key.info costs no credits. On a paid plan it reports rate_limit_minute and credit_limit_monthly, plus what is left this minute and this month. The daily object carries credits_used only, with no credits_left, so this plugin types that field as optional.
The keyless public API at /public-api is not used here: every operation goes through the keyed Pro API, so a key is always required. What you get:
  • 8 typed API operations

Setup

1

Install

2

Add the plugin

corsair.ts
With multiTenancy: true, scope calls with corsair.withTenant(id). See Quick start for KEK + Hub keys, and Multi-tenancy for account isolation.
3

Choose authentication

4

Connect a tenant

Mint a connect link and send the tenant to it. Hub hosts the page and delivers the result to your app — see Connect / OAuth.

Example API calls

Top coins by market cap
Convert one BTC to USD by its CMC ID
See the full list on the API page.

What’s next

API reference

Every coinmarketcap.api.* operation with input and output types.

Connect / OAuth

createLink, Hub delivery, and tenant connect flows.

Use with agents

Expose this plugin’s operations as MCP tools.