- Size by price levelShape
- bids[] ·
asks[]Input - depth totalsFast summary
- BTC /
ETH / SOL / XRPMarkets
Best bid and best ask tell you where the touch is. A liquidity profile tells you what stands behind it, how much size rests at each price level, where the walls sit, and how deep you can trade before the book starts moving against you. Because each snapshot carries the full ladder, you can build that profile for any market and any past moment.
A liquidity profile is the order book turned sideways: price on one axis, resting size on the other. Tall bars are walls, price levels where makers have stacked size. Gaps are air pockets the price can fall through. It is the single most useful picture for answering one question: how much can I trade here before I move the market.
What the profile shows you
Where the walls are
Tall bars mark price levels holding outsized resting size, the book’s own support and resistance, declared in orders rather than guessed from a chart.
- Resting-size clusters
- Self-declared levels
- Price tends to pause there
How deep you can go
Sum the size from the touch outward and you learn how much you can trade before walking into a worse price.
- Cumulative depth
- Slippage budget
- Size that fits cleanly
Which side is heavier
Comparing the bid profile to the ask profile shows lopsided books before any price has moved.
- Bid vs ask weight
- Lopsided support
- Pressure, pre-move
Building it from the arrays
- 1Request the snapshot with the book included so the row carries its full bids and asks arrays rather than just the touch.
- 2Treat each array entry as a (price, size) pair and bin the prices onto a fixed grid, these are 0-1 probability units, so a uniform tick grid is natural.
- 3Sum resting size into each price bin to get the per-level profile, the raw shape of where liquidity sits.
- 4Form the cumulative profile by summing outward from the touch, so each point answers “how much size is available within this distance of the best price”.
- 5Compare the bid and ask profiles side by side to read imbalance, and overlay several snapshots to see which walls persist.
Fast summaries vs the full shape
If you only need a one-number-per-side health check, the snapshots already carry it. bid_depth_total and ask_depth_total sum the resting size on each side, so you can scan thousands of snapshots for thin or lopsided books without ever expanding the arrays. When you need to know exactly where the size sits, you pull the arrays and build the full profile.
- bids[] ·
asks[]Per-level price and size, the full profile bid_depth_totalResting size on the bid side, pre-summedask_depth_totalResting size on the ask side, pre-summed- limit ≤ 5000Snapshots per request, paginate long windows
The two depth totals are the cheapest way to filter: pull them across a window, find the snapshots where one side has thinned or a wall has appeared, then request the full book only for those moments. Most profile pipelines triage on the totals and expand the arrays selectively.
Reading it without fooling yourself
- Resting size is not executed volume, a wall shows intent to trade at a price, which is very different from trades having happened there.
- Walls can be pulled the instant price approaches; persistence across many snapshots is what separates a real level from a placed-and-yanked one.
- Cumulative depth answers “how much fits” but not “at what average price”, for the cost of walking the book, pair the profile with an effective-spread walk.
- Slower-sampling categories give you a coarser profile per snapshot, so lean on overlaying several frames there rather than trusting a single one.
Top-of-book can’t draw this
A liquidity profile needs the whole ladder, not just the best bid and ask. Polymarket exposes the live book but not its history; the full-depth snapshots are what let you rebuild the profile for any past window, to study how walls formed before a move, not just where they sit right now.
The touch tells you where you can trade one unit. The profile tells you where you can trade your whole size, and where the book quietly runs out of room.
See the depth for yourself
The dashboard renders the live ladder; the historical guide shows how to pull the full book per snapshot to build profiles for any past window.
Frequently asked questions
What is a liquidity profile?
It is a view of the order book that plots resting size against price level, how much size sits at each price, on both the bid and ask side. Tall bars are liquidity walls; gaps are levels the price can move through easily. Built from the full bid and ask arrays on a snapshot, it answers how much you can trade before the price starts moving against you.
How do I know how deep I can trade before slippage?
Build the cumulative profile by summing resting size outward from the touch. Each point then tells you how much total size is available within a given distance of the best price. To turn that into an actual cost rather than just a quantity, walk the ladder and compute the size-weighted average fill price, the cumulative depth tells you what fits, the walk tells you at what price.
When should I use the depth totals instead of the full arrays?
Use bid_depth_total and ask_depth_total when you want a fast one-number-per-side health check across many snapshots, scanning for thin or lopsided books without expanding every array. Pull the full bids and asks arrays when you need the exact shape: where the walls sit and how cumulative depth builds. A common pattern is to triage on the totals, then request the full book only for the moments that matter.
Does a wall in the profile mean that size will actually be there when I trade?
No, the profile shades resting size at capture time, which is intent to trade, not a guarantee. Walls can be pulled the instant price approaches, and resting size is not the same as executed volume. Persistence across many snapshots is what separates a genuine level from one that was placed and yanked. Resolved Markets captures the book read-only; it does not place orders.



