## Changelog

Changes to the CoinWorldCap API, newest first. Additions — new endpoints, fields and accepted values —
ship without a version bump, which is why [Before you integrate](#before-you-integrate) asks your
client to ignore what it does not recognise; a breaking change comes with notice and an overlap
period.

### 2026-11-05

New endpoints:

- Real-world assets: [`/rwa`](#get-openapiv1rwa), [`/rwa/info`](#get-openapiv1rwainfo) and
  [`/rwa/issuers`](#get-openapiv1rwaissuers).
- Earn yields for a coin across platforms: [`/earn`](#get-openapiv1earn).
- History, daily or hourly: an RWA's price, market cap and volume,
  [`/rwa/history`](#get-openapiv1rwahistory); a coin's funding rate, open interest and basis,
  [`/derivatives/history`](#get-openapiv1derivativeshistory); a chain's market cap and volume,
  [`/chains/history`](#get-openapiv1chainshistory). And daily: a coin's earn APYs by product,
  [`/earn/history`](#get-openapiv1earnhistory).
- Derivatives: perpetual and futures contracts by coin or exchange,
  [`/derivatives/pairs`](#get-openapiv1derivativespairs), and the exchanges' totals,
  [`/derivatives/exchanges`](#get-openapiv1derivativesexchanges).
- The teams behind projects: [`/assets/team`](#get-openapiv1assetsteam),
  [`/exchanges/team`](#get-openapiv1exchangesteam), [`/people`](#get-openapiv1people) and
  [`/people/info`](#get-openapiv1peopleinfo).
- DEX tokens: [`/dex/chains`](#get-openapiv1dexchains), [`/dex/tokens`](#get-openapiv1dextokens),
  [`/dex/search`](#get-openapiv1dexsearch), [`/dex/tokens/info`](#get-openapiv1dextokensinfo),
  [`/dex/tokens/trades`](#get-openapiv1dextokenstrades),
  [`/dex/tokens/liquidity`](#get-openapiv1dextokensliquidity),
  [`/dex/tokens/holders`](#get-openapiv1dextokensholders),
  [`/dex/tokens/pools`](#get-openapiv1dextokenspools) and
  [`/dex/tokens/history`](#get-openapiv1dextokenshistory).
- Your key's plan and usage: [`/key/info`](#get-openapiv1keyinfo).

Changes to existing endpoints:

- [`/assets`](#get-openapiv1assets) looks assets up by contract address (`chain_id` with `contract_address`), and
  `fields=platforms` lists every chain an asset is deployed on.
- [`/quotes`](#get-openapiv1quotes) and [`/trending`](#get-openapiv1trending) rows carry `volume_24h`, the same value as `volume` under the name
  the other endpoints use.
- [`/quotes`](#get-openapiv1quotes) and [`/assets`](#get-openapiv1assets) take `select`, which returns only
  the row fields you name — as do the new [`/rwa`](#get-openapiv1rwa) and [`/dex/tokens`](#get-openapiv1dextokens).
  See [Choosing fields with `select`](#choosing-fields-with-select).
- Two parameters that used to be ignored are now checked. On [`/quotes`](#get-openapiv1quotes) and
  [`/assets`](#get-openapiv1assets), a `select` name that is not one of the row fields is a `400`.
  On [`/assets`](#get-openapiv1assets), `chain_id` and `contract_address` go together: either one
  alone is a `400`. Before this release both were ignored, as any parameter an endpoint does not read.
- [`/chains`](#get-openapiv1chains)' `logo` falls back to the chain's own logo when its native coin has none.
- A `404` with code `40400` is no longer `/global`'s alone: an endpoint that returns one resource
  answers it when that resource does not exist. See [Errors](#errors).
- This documentation moved off the API host to a site of its own. The old addresses under
  `/docs` on the API host redirect to the same page here.

### 2026-10-15

- [`/exchanges`](#get-openapiv1exchanges) lists centralized exchanges only. A decentralized
  exchange's `id` or `slug` matches nothing, and `total` does not count them.

### 2026-09-28

- First release: [`/assets`](#get-openapiv1assets), [`/quotes`](#get-openapiv1quotes),
  [`/trending`](#get-openapiv1trending), [`/exchanges`](#get-openapiv1exchanges),
  [`/global`](#get-openapiv1global), [`/categories`](#get-openapiv1categories) and
  [`/chains`](#get-openapiv1chains), authenticated with `X-Api-Key` and rate limited per account.
