> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/polymarket/books>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/polymarket/books.mdx>

---

# Polymarket Order Book API

Bids and asks for up to 150 outcome tokens, trimmed to the depth you ask for.

`GET /v1/polymarket/books` takes `tokenIds`, repeated or comma separated, up to 150. `data.results` has one entry per token id, in request order, with `tokenId`, `lookupStatus` and `book`. A book carries `conditionId`, `timestamp`, `hash`, `bids`, `asks`, `bidLevels`, `askLevels`, `lastTradePrice`, `tickSize`, `minOrderSize` and `negRisk`.

Each level has `price` (a probability) and `shares`. Bids are best and highest first, asks best and lowest first. `depth` is 1 to 200 levels per side and defaults to 20; `bidLevels` and `askLevels` report how many levels existed before trimming. The route charges one credit per token id.

## Request

- **Endpoint:** `GET /v1/polymarket/books`
- **Credits:** 1 credit per token id
Up to 150 token ids per request
Max 150 credits
Failed requests are free
- **Input:** by token ids
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/polymarket/books/get)
- **Platform page:** [/platforms/polymarket](https://www.socialfetch.dev/platforms/polymarket)

## FAQ

### What happens to a token without a book?

Its result is not_found with book: null. An unknown token id does the same, and so does a market that has closed and no longer has an order book. The other ids in the batch still return.

### Why are bidLevels and askLevels larger than the arrays?

depth trims each side to the number of levels you asked for, while bidLevels and askLevels report the full number available. Raise depth, up to 200, if you need more of the book.

### How is a 150-token batch billed?

One credit per token id, so a full batch costs 150 credits. Check meta.creditsCharged on the response for the final charge.

### Are prices probabilities or cents?

Prices are probabilities between 0 and 1. A price of 0.62 is a 62 percent implied probability. Convert to cents only for display.

### What does lookupStatus mean on this route?

found means the object or list was returned. not_found means no matching object exists. HTTP 200 only means the request finished, so branch on data.lookupStatus before storing a row.

### How much does this route cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.
