DeFi protocols API

DeFi protocol directory

Every DeFi protocol this source tracks, sorted by current total value locked. No chain or token needed; one protocol can span many chains.

GET/api/external/protocol-analysis/protocols

What it returns

Every DeFi protocol this source tracks, sorted by current total value locked (TVL) descending — a real, published source field, not an invented score. No chain or token in the request: one protocol can span many chains at once, and chains on each row lists every one it is deployed on. address is present on roughly half of all protocols and its format is inconsistent (sometimes chain-prefixed, sometimes bare) — published exactly as the source returns it, never normalised or guessed at. tvl/mcap are null when the source has not computed one for this protocol, never 0. For one protocol's own per-chain breakdown, use GET /protocol-analysis/protocol/{slug} with this row's slug.

Chains

This endpoint is not tied to a chain: it takes no chain in its request.

Request

Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.

curl -H "x-dex-data-key: $DEXDATA_API_KEY" \
  "https://api.dexdata.io/api/external/protocol-analysis/protocols"
Parameters
ParameterDescription
offset

query · integer · optional

0-based row offset, for paging through the directory.
limit

query · integer · optional

How many rows to return. Defaults to 50; this endpoint caps it at 200. limit ≤ 70 keeps the answer under 32 KB.

Response fields

A JSON response. Every field is always present; null means the value could not be established, never zero.

Response fields of DeFi protocol directory
FieldTypeDescription
protocolsobject[]
protocols[].slugstring | nullThis protocol's identifier — pass it to GET /protocol-analysis/protocol/{slug} for its detail.
protocols[].namestring | null
protocols[].symbolstring | null
protocols[].addressstring | nullPresent on roughly half of all protocols; format is inconsistent (see the endpoint description).
protocols[].urlstring | null
protocols[].categorystring | null
protocols[].chainsstring[] | nullEvery chain this protocol is deployed on, by display name; null when the source gave no chain list.
protocols[].tvlnumber | nullCurrent total value locked across every chain, USD. Null when not computed, never 0.
protocols[].change1hnumber | null
protocols[].change1dnumber | null
protocols[].change7dnumber | null
protocols[].mcapnumber | null

Start building with DexData today

Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.

Get a free API key