> **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/perps-instruments-instrumentid-book>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/polymarket/perps-instruments-instrumentid-book.mdx>

---

# Polymarket Perps Order Book API

Resting bids and asks for one Perps instrument, at the depth you choose.

`GET /v1/polymarket/perps/instruments/{instrumentId}/book` returns `data.bids` and `data.asks`. Bids are best (highest) first and asks best (lowest) first. Each level has `price` and `quantity` in contracts. `data.instrumentId` and `data.updatedAt` identify the book and its snapshot time.

`depth` is 10, 100, 500 or 1000 levels per side and defaults to 10. An unknown instrument id returns `lookupStatus: not_found` with an empty book.

## Request

- **Endpoint:** `GET /v1/polymarket/perps/instruments/{instrumentId}/book`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by instrument id
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/polymarket/perps/instruments/instrumentid/book/get)
- **Platform page:** [/platforms/polymarket](https://www.socialfetch.dev/platforms/polymarket)

## FAQ

### How many levels can I get?

10, 100, 500 or 1000 per side. The route rejects other values. A larger depth returns a bigger response, so start at 10 if you only need the top of book.

### What do quantity and price mean?

quantity is contracts resting at that price. price is the Perps contract price, not a probability. These books are for perpetual futures, separate from event market order books.

### Is the book live?

It is a snapshot with updatedAt. Between the snapshot and your processing the book can move. Poll it at a sensible rate and do not treat it as an execution guarantee.

### 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.
