Crypto asset metadata for third-party integrations
A read-only HTTP API over the asset catalogue behind CoinWorldCap. Authenticated with an issued key, rate limited per account, JSON over HTTPS. Every timestamp is UTC; money and volumes arrive as strings, not numbers.
Quick start
-
Request a key
There is no self-service sign-up. Email us at [email protected] and tell us what your integration does and roughly how often it will call the API. We use this to size your rate limit. Your key is shown only once and we store only its hash, so save it somewhere secure where you can retrieve it.
-
Call the endpoint
bashcurl -H "X-Api-Key: <your-api-key>" \ "https://open-api.coinworldcap.com/openapi/v1/assets?limit=1" -
Read the envelope
json{ "code": 0, "message": "success", "message_key": "SUCCESS", "result": { "items": [ { "id": 1, "rank": 1, "name": "Bitcoin", "symbol": "BTC", "slug": "bitcoin" } ], "page": 1, "total_page": 8332, "total": 8332 } }Branch on
code, never onmessage. Full examples are in the reference.
Endpoints
| Endpoint | Returns | Status |
|---|---|---|
GET /openapi/v1/assets |
Paginated asset catalogue — filter by id, symbol or slug, sort, opt into links | Live |
GET /openapi/v1/quotes |
Paginated market data — price, market cap, volume and eight percent-change windows | Live |
GET /openapi/v1/trending |
The 20 assets with the largest 24-hour change, ranked — can be negative in a broad decline; not paginated | Live |
GET /openapi/v1/exchanges |
Paginated exchange directory — name, links, fees, and 24-hour volume where we have it | Live |
GET /openapi/v1/global |
Market-wide totals — capitalisation, 24-hour volume and the 24-hour change; a single object, no parameters | Live |
GET /openapi/v1/categories |
Paginated category leaderboard — market cap, 24-hour volume, share and the three biggest movers in each | Live |
GET /openapi/v1/chains |
The same leaderboard per blockchain, plus the EVM chain id and the chain's native-coin logo | Live |
Authentication
Every request carries X-Api-Key. Without a usable key you get 401
before your request reaches any data, and the body's code says which of three
things is wrong.
-
40100Unknown or missingCheck what your client is sending — a truncated or wrapped value is the usual cause.
-
40101ExpiredThe key had a lifetime and it has passed. Nothing about your request was wrong; ask us to reissue.
-
40102RevokedSomeone stopped it deliberately. It will not start working again — talk to us before retrying.
Rate limits
Requests are limited per minute, against your account — not per key.
-
One allowance per account
Several keys draw on the same ceiling. Holding more of them buys no extra throughput.
-
Over it, you get
429With
Retry-Afterin whole seconds. Back off for at least that long rather than retrying in a loop. -
Quota headers can be absent
X-RateLimit-Limit,-Remainingand-Resetride on successful responses. Absent means no information this time, not zero.