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

---

# Polymarket Perps Trades API

Recent fills for one Perps instrument, newest first.

`GET /v1/polymarket/perps/instruments/{instrumentId}/trades` returns `data.trades`, newest first. Each trade has `id`, `at`, `side` (`long` or `short`), `price`, `quantity`, `settlement` and `page` for continuation. `data.instrumentId` echoes the instrument.

`from` and `to` are unix seconds; by default the range is 24 hours before `to`, which defaults to now. An instrument with no trades, or an id that matches no instrument, returns a found answer with an empty list.

## Request

- **Endpoint:** `GET /v1/polymarket/perps/instruments/{instrumentId}/trades`
- **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/trades/get)
- **Platform page:** [/platforms/polymarket](https://www.socialfetch.dev/platforms/polymarket)

## FAQ

### What does settlement mean?

The trade settled a position rather than opening or adding to one. It is a boolean flag on the row, so you can separate settlement fills from ordinary trades.

### Is side long or short?

side is long or short, not buy or sell. Treat it as the direction of the position the trade opened or closed, and read settlement to tell the two apart.

### How do I get older trades?

Pass from and to to move the window, then page with cursor. The default window is 24 hours. Keep the same from and to while paging so the cursor stays valid.

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