---
title: "List BLP Liquidations"
method: GET
path: "/v1/blp/liquidations"
---

# List BLP Liquidations

`GET /v1/blp/liquidations`

List the backstop liquidations the authenticated Backstop Liquidity Provider (BLP)
account received, most recent first by default.

Each record is one absorption and carries the same fields as a frame on the
`backstop` WebSocket channel, so a participant that missed frames while
disconnected can replay them from here rather than reconstructing them from
trade history. Records do not identify the liquidated account.

`margin` is the net margin transferred with the positions. It is negative when
the absorption carried bad debt — the fund returned more isolated margin than the
account's balance covered.

Like the other BLP routes, this one is restricted to program participants: an
authenticated account that is not enrolled receives a 404, the same response as an
account requesting a route that does not exist for it.

## Query parameters

- `start_timestamp` integer — Start timestamp in milliseconds
- `end_timestamp` integer — End timestamp in milliseconds
- `cursor` integer — Pagination cursor. Pass the liquidation ID of the last record from the previous page to fetch the next page. Paging follows the `sort` direction (strictly older records when `sort=desc`, strictly newer when `sort=asc`).
- `sort` 'desc' | 'asc' — Time sort direction. `desc` (default) returns the most recent liquidations first; `asc` returns the oldest first.

## Response `200`

BLP liquidation history.

- BlpLiquidations
  - `data` BlpLiquidation[], required — Backstop liquidations the account received
    - `liquidation_id` integer, required — Liquidation ID. Identifies one absorption of an account's positions by the insurance fund. Probabilistically unique (same guarantees as trade IDs).
    - `timestamp` integer, required — Request timestamp. Unix milliseconds for most operations; Unix seconds for withdrawals (must match the on-chain EIP-712 struct verified against block.timestamp).
    - `cross` boolean, required — Whether to use cross margin mode
    - `margin` string, required — Net margin transferred to the insurance fund in USD, covering the quote asset only. Negative when the fund returned more isolated margin than the account's balance covered, i.e. it absorbed bad debt.
    - `trades` BlpLiquidationTrade[], required — Trades booked for the positions absorbed in this liquidation, in the order they were booked.
      - `trade_id` integer, required — Trade ID
      - `instrument_id` integer, required — Instrument ID
      - `side` 'long' | 'short', required — Side
      - `quantity` string, required — Quantity in no. of contracts
      - `price` string, required — Price
  - `more` boolean, required — More data available

## Other responses

- `400` — Bad request — the request was malformed or failed validation (bad query parameters, unparseable body, invalid signature, or a domain pre-check). The `error` field is a human-readable validation detail.
- `401` — Unauthorized — missing or invalid `POLYMARKET-PROXY` / `POLYMARKET-SECRET` credentials. `error` is `unauthorized`.
- `404` — Not found — the endpoint is disabled on this venue (e.g. auto-cancel) or the route does not exist. `error` is `not_found`.
- `429` — Too Many Requests. `error` distinguishes the limit that was hit: `ip_rate_limited` (per-IP token bucket), `action_rate_limited` (per-account action rate), or `open_orders_limit` (resting open-order cap).
- `500` — Internal server error. `error` is `internal_error`.

---

[API](https://skmtc.net/polymarket/apis/polymarket-perps-http-api.md) · [All operations](https://skmtc.net/polymarket/apis/polymarket-perps-http-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/polymarket/polymarket-perps-http-api/versions/e17c4709273e/schema)
