Uniswap API: what it returns, and where market data comes from

Mateusz Sroka

(less than 1 hour ago)

9 min read

Share:

On 22 September 2026 Uniswap v4 moved more Ethereum volume than v3, yet the Uniswap API returns no pool reserves, no history and no candles. Here is what it covers, where Uniswap points you for data, and what that costs.

Uniswap API: what it returns, and where market data comes from

The short answer. Uniswap does publish an API, and it is a trading API. It prepares approvals, returns quotes, builds orders and builds swap transactions. Nowhere in it will you find pool reserves, historical prices, OHLCV candles or a swap feed.

For market data, Uniswap points you at subgraphs on The Graph. Those are billed by The Graph rather than by Uniswap, and Uniswap labels the deployments it lists as not official and possibly unmaintained.

Search for the Uniswap API and every result in front of you is about swapping. The official docs, the routing-api repository, the app itself. All of them answer the question of how to trade through Uniswap, and none of them answer the question most people are actually asking, which is where the prices and the history come from.

Those are two different products with two different owners. Below is what each one covers, what the data path costs, and three things I measured across Uniswap's deployments on 22 September 2026. The method is at the end.

What the Uniswap API actually does

The product Uniswap calls its API is the Swapping API, documented at developers.uniswap.org. It has four documented endpoints and they are all steps in placing a trade.

EndpointWhat it does
/check_approvalTells you whether the token still needs an approval, and builds it
/quotePrices one specific trade you are about to make
/orderSubmits a UniswapX order
/swapBuilds the classic swap transaction for you to sign

Calls carry your key in an x-api-key header. The supported-chains page lists 21 mainnets: Ethereum, OP Mainnet, BNB Smart Chain, Unichain, Polygon, Monad, X Layer, zkSync, World Chain, Soneium, Tempo, MegaETH, Robinhood Chain, Arc, Base, Arbitrum, Celo, Avalanche, Ink, Linea and Zora, plus three testnets.

/quote is the one that gets mistaken for a price feed, and it is worth being precise about why it is not. It prices a trade: this much of this token, into that token, right now, on this route, with this slippage. Ask it the same question twice with different sizes and you get different numbers, because that is what a quote is for. It will not tell you what the pool did yesterday, how deep it is, or how many people traded it this morning.

Where Uniswap sends you for market data

Uniswap's answer to the data question is subgraphs, and its own documentation is blunt about the state of them. Two lines are worth quoting directly.

"Hosted subgraphs have been deprecated, so you'll need to call through the decentralized network."

"Create API keys in the Studio. Include this key in the endpoint to associate usage with your billing."

Read that second line again, because it is the part that surprises people. The key is not a Uniswap key and the billing is not a Uniswap bill. Both belong to The Graph. You sign up there, you pay there, and Uniswap is not in the transaction at all.

Uniswap also adds a disclaimer to the deployments it lists, saying they are "not official deployments and may not be actively maintained by Uniswap Labs", and recommending that anyone running this in production deploy their own subgraph. That is an honest warning and it should be taken at face value: the thing you are about to depend on is community-run infrastructure that Uniswap has told you it does not maintain.

What The Graph costs, and why the cost is not the problem

Read off The Graph's own pricing page on 22 September 2026: 100,000 queries a month at no charge, then $2 per 100,000 queries after that, payable by card or in GRT.

That is a low price for what it is, and any article that tried to attack it would be wrong and easy to disprove. If the only thing standing between you and Uniswap data were the bill, there would be nothing here worth writing about.

The friction is shape and upkeep. A subgraph is scoped to one protocol version on one chain, so covering Uniswap properly means one endpoint per version per chain, each with its own schema quirks, its own sync state and its own maintainer. You write GraphQL against every one of them, you find out separately when any one of them falls behind, and Uniswap has already told you it is not the party keeping them alive.

v4 passed v3 on Ethereum in September 2026

Here is why the version-by-version thing matters more than it used to. Uniswap's three live versions on Ethereum, 24 hour volume, measured 22 September 2026:

Version on EthereumVolume, 24h
Uniswap v4$616,069,697
Uniswap v3$546,448,686
Uniswap v2$62,395,847

v4 is now the larger of the two on Ethereum. Anyone still pointing a v3-only subgraph at Ethereum, which was entirely reasonable a year ago, is reading the smaller half of the market and will see a token's real volume as roughly half of what it is. Nothing breaks, no error is raised, the numbers are simply wrong in a direction that is hard to notice.

That is the maintenance cost the pricing page does not show you. It is not the $2. It is knowing the day the split moved.

Every DEX on Robinhood Chain is Uniswap

The second thing that turned up while measuring. Ask for every DEX on Robinhood Chain and three rows come back. All three are Uniswap.

DEX on Robinhood ChainVolume, 24hPools
Uniswap v3$672,762,5032,920
Uniswap v4$511,347,28020,536
Uniswap v2$30,227,714807
Three DEXes, one protocol$1,214,337,49724,263

No competing protocol appears in the response at all. I re-ran the call before publishing, because a result that clean usually means a filter left on somewhere. It was not one.

Note what this does to the version question. A v3-only subgraph on Robinhood Chain would capture $672m and miss the $541m running through v4 and v2, which is roughly 45% of the chain. The v4 pools are also where the long tail lives: 20,536 of the chain's 24,263 pools sit on v4, against 2,920 on v3.

Reading Uniswap pools without a subgraph

The other route is a REST call against an index that already covers every version on every chain. This is what DexPaprika does, and the call below needs no key, no signup and no GraphQL:

curl "https://api.dexpaprika.com/networks/ethereum/pools/search?dex_name=uniswap_v4&limit=3"

That returns HTTP 200 with an object shaped {results, has_next_page, next_cursor, query}. Each row carries id, dex_id, dex_name, chain, volume_usd_24h, volume_usd_7d, volume_usd_30d, liquidity_usd, transactions_24h, price_usd, fee, created_at, created_at_block_number, the four price_change_percentage_* windows and a tokens array.

Swap uniswap_v4 for uniswap_v3 or uniswap_v2 and the shape does not change, which is the actual point: one schema across versions and chains instead of one subgraph per pair of them.

Keyless calls work for trying this out. A free key from console.dexpaprika.com raises the rate and the quota, and the current numbers for every tier live on the pricing page rather than in this article, because they move. One thing worth knowing before you build on it: data on the free tier can be up to 60 seconds behind. Real-time is the paid tier.

Which chains carry which Uniswap versions

Uniswap's trading API supports 21 mainnets. DexPaprika indexes Uniswap market data on 13 of them, measured 22 September 2026:

ChainVersions indexedUniswap volume, 24h
Ethereumv2, v3, v4$1,224,914,230
Robinhood Chainv2, v3, v4$1,214,337,497
Basev2, v3, v4$379,680,603
Arbitrumv2, v3, v4$211,996,206
BNB Smart Chainv3, v4$144,413,930
Polygonv2, v3, v4$71,939,383
Monadv2, v3, v4$27,957,075
X Layerv3$18,314,283
Arcv2, v3, v4$17,137,193
Unichainv2, v3, v4$13,183,073
Avalanchev3$9,042,793
OP Mainnetv2, v3$5,356,776
Celov3$1,501,586
13 chains$3,339,774,628

Be clear about what that table does and does not claim. Uniswap's trading API reaches more chains than this list. The claim here is narrower: on these 13, the market-data question that Uniswap's API does not answer is answered, under one schema, without a subgraph per version.

There are per-chain pages with a live swap feed for Uniswap on Ethereum, Base, Arbitrum, Polygon and Monad.

Common questions

Does Uniswap have an API?

Yes, the Swapping API, with four documented endpoints for approvals, quotes, UniswapX orders and classic swaps. It is built for placing trades. It does not return pool reserves, historical prices, OHLCV candles or swap history.

Do you need an API key for Uniswap?

The Swapping API takes a key in an x-api-key header. For data, the key you need is a Graph API key created in The Graph's Studio, and it is The Graph that bills you for it.

Does the Uniswap API give historical prices?

No. Historical prices and candles come from a subgraph you query on The Graph, or from a market-data API that indexes Uniswap pools directly.

What happened to the Uniswap hosted subgraph?

It was deprecated. Uniswap's docs now direct you to the decentralized network, with a key from The Graph's Studio, and note that the deployments listed are not official and may not be actively maintained by Uniswap Labs.

Which Uniswap version should I index?

On Ethereum, as of 22 September 2026, v4 carries more 24 hour volume than v3, and v2 is still doing $62m a day. Indexing one version in isolation will understate any token that trades across several.

Is there a Uniswap API rate limit?

Uniswap documents its Swapping API limits against your key. For the data path there is no single Uniswap limit to quote, because you are querying The Graph under The Graph's terms, or a third-party API under theirs.

How these numbers were measured

Everything above was read off a live source on 22 September 2026.

The endpoint and chain lists come from developers.uniswap.org, read that day. The two quoted sentences are Uniswap's own wording from its subgraph documentation. The Graph's figures come from The Graph's pricing page.

The volume tables are one GET /networks/{chain}/dexes call per chain against api.dexpaprika.com, keyless and paced, summing the Uniswap entries on each chain. Every figure in a given table comes from the same response, which matters more than it sounds: the chain-level totals in GET /networks and the per-DEX totals in /dexes are computed separately and land about half a tenth of a percent apart, enough that dividing one by the other can produce a share above 100%. That is why the Robinhood Chain section states what the chain is made of rather than quoting a percentage.

Every number is a 24 hour window closing on the measurement, so expect it to have moved by the time you read this. The version split on Ethereum is the claim most likely to age, and it is the one worth re-running before you rely on it.

Two things I checked that came back negative, in case you go looking for them. /networks/{chain} is not an endpoint and returns 404 on every chain including Ethereum, so do not build against it. And the search results rows carry no pair field, whatever older examples elsewhere may show.

Full REST reference at docs.dexpaprika.com. If you want the consumer side of Uniswap instead, we have a step by step guide to swapping tokens on Uniswap.

The same question for two other DEXes: what the Raydium API covers on Solana, and what PancakeSwap documents for BNB Smart Chain.

Related articles

Latest articles

Coinpaprika education

Discover practical guides, definitions, and deep dives to grow your crypto knowledge.

Cryptocurrencies are highly volatile and involve significant risk. You may lose part or all of your investment.

All information on Coinpaprika is provided for informational purposes only and does not constitute financial or investment advice. Always conduct your own research (DYOR) and consult a qualified financial advisor before making investment decisions.

Coinpaprika is not liable for any losses resulting from the use of this information.

Go back to Education