CoinWorldCap Developer Request a key

Endpoints · v1 / Quotes

GET https://open-api.coinworldcap.com/openapi/v1/quotes

Latest market data for one or more assets: price, market cap, volume and eight percent-change windows.

An asset with no market data is not in the response. Sending five ids can return three rows, and the response does not say which two are missing — market data is only collected for a subset of the catalogue, so "no quote" is ordinary rather than an error.

Query parameters

Filters are ANDed.

Response

Item fields

Field Type Notes
id number The same asset id /assets returns, and the same JSON number
name / symbol / slug / logo string As in /assets
price string Stored as decimal(36,18)
market_cap string or null null when upstream has no market cap. Never "0" for unknown
volume string 24-hour volume, decimal(36,8)
percent_change object Eight windows, every value a string. New windows may be added here; the object is the extension point

A window is not a promise about its length. Each figure is computed against the earliest snapshot we hold inside that window, not against a point exactly that far back. An asset we began recording four hours ago reports a 24h figure spanning four hours, and nothing in the response says so. Treat the keys as labels for "roughly this far back", not as durations you can do arithmetic with.

Every money-shaped value is a JSON string, deliberately. price is decimal(36,18) and the percent-change windows are decimal(36,12) — more significant digits than an IEEE-754 double holds. Sent as JSON numbers they would be rounded by JSON.parse before your code ever ran, with no error on either side. Parse them with a decimal library, not as floats.

id is a JSON number while these are strings, and that is not an oversight — see the note under /assets.

Not implemented

total_supply, circulating_supply, fully_diluted_market_cap and minted_market_cap are not returned. Adding a field later is non-breaking; removing one is not.

Examples

/quotes reads id, symbol, slug, page, size, limit, offset and sort. There is no fields= here — the quote fields are not opt-in — and an unknown parameter is ignored rather than rejected.

bash
# Default listing (20 items, sorted by id ascending)
curl -H "X-Api-Key: <your-api-key>" \
  "https://open-api.coinworldcap.com/openapi/v1/quotes"

# Page-based pagination, sorted by name descending
curl -H "X-Api-Key: <your-api-key>" \
  "https://open-api.coinworldcap.com/openapi/v1/quotes?page=1&size=10&sort=name:desc"

# Look up specific assets by slug, which is unique — use symbol instead and one
# ticker can come back as several unrelated assets
curl -H "X-Api-Key: <your-api-key>" \
  "https://open-api.coinworldcap.com/openapi/v1/quotes?slug=bitcoin,ethereum"

# Show the response headers, including X-Request-Id
curl -i -H "X-Api-Key: <your-api-key>" \
  "https://open-api.coinworldcap.com/openapi/v1/quotes?limit=1"

Anything other than a 200 is in Errors, which covers every endpoint here.