What the data is, where it comes from, and what it will not tell you.
Read-only market data for decentralised exchanges, over one HTTP API. Liquidity pairs and their trade tape, OHLCV candles, a canonical token registry, yield farms, and wallet analytics — positions, realised PnL and behaviour labels for the traders behind the volume.
It is a data product, not a venue. We never hold funds, never route an order and never sign a transaction for you. Everything the API returns is an observation of what already happened on chain.
This site has a page per chain for Ethereum, BNB Smart Chain, Arbitrum, Polygon, Optimism, Avalanche, Fantom, Base and TON, with pairs, volumes and the tokens that move on them.
The API serves more than the site shows, and the set grows without a new version of the API. Read the live roster from the chains endpoint instead of hardcoding a list: each entry carries its slug, its numeric id and how far behind the chain head we are right now.
Not today. Key issuing is closed while we finish the v3 rollout, and the API answers an unauthenticated request, so you can read the documentation, press Send in the explorer and get a real response back.
When keys go live they travel in the X-API-Key header. A key in the query string is rejected on purpose — query strings end up in proxy logs and browser history, and a leaked key is worse than an inconvenient one.
Every chain reports its own lag behind the chain head, in seconds, from the chains endpoint. That is a number you can alert on rather than a promise in a brochure.
A chain that stops producing blocks disappears from the roster instead of quietly serving stale figures, and a ranked list names the chains it left out when their metrics pipeline is behind. Partial service is reported as partial service.
One includes uncollected LP fees; the other is the withdrawable principal on chain. Most of the time they are close. They diverge most on exactly the pools you should be suspicious of, which is why we publish both instead of picking one for you.
The same discipline applies elsewhere: a zero is a measurement, an absent field is a gap we did not measure. We never send a zero to stand in for "unknown", because a reader will treat it as a measured zero.
Every pair carries a trust score, and the score carries the list of reasons behind it. Each reason names one thing observed about the pair — the LP is unlocked, supply is concentrated, the sell side is blocked, the deployer has rugged before — and is dated with when we observed it.
For almost every reason there is another field in the same response that lets you verify it yourself: the lock and burn percentages, the top-holder share, the tax figures, the deployer history. You are not asked to trust the number; you are given the evidence next to it.
What we do not publish is the mechanics — the exact thresholds, the simulation shape, the fingerprints. A published threshold is a threshold that gets sat just underneath, and that would cost the people the signal exists to protect.
Yes. There is an MCP server that exposes the API as tools an agent can call directly, and an llms.txt written to be sufficient on its own — the auth rule, the rate-limit headers, the error shape, the pagination shape and the chain rule are all in the preamble, so an agent can make a correct first request without fetching a second page.
No key is needed to try it while issuing is closed.
They are aggregated from the pool’s own trades, not relayed from a centralised venue. That means a candle can be reconciled against the trade tape that produced it, down to the swap.
Avee is a TradingView data provider: the same feed powers TradingView charts for TON and Hyperliquid.
Within v3 only additive changes ship: new endpoints, new optional parameters, new response fields, new values inside the sets marked open in the contract. Tolerate unknown enum values and unknown JSON fields and your integration keeps working.
A breaking change means v4, and v3 keeps serving for at least twelve months after v4 is generally available, announced in advance by response headers. The contract is machine-checked in the pipeline, so a breaking change cannot ship by accident.
The request id. Every response carries one, and every error repeats it in the body. One identifier turns a support thread into a single log lookup — without it we are guessing which of several million requests you mean.
Send it to connect@avee.tech with the endpoint and roughly when it happened. Component status and incident history live on the status page, and a customer-visible incident gets a written postmortem rather than a summary on request.