---
title: "Get Lighter on Robinhood Chain liquidation events"
method: GET
path: "/v1/rh-lighter/liquidations/{symbol}"
tags: ["Lighter on Robinhood Chain - Liquidations"]
---

# Get Lighter on Robinhood Chain liquidation events

`GET /v1/rh-lighter/liquidations/{symbol}`

## Request

- Base URL: `https://api.0xarchive.io`
- URL: `https://api.0xarchive.io/v1/rh-lighter/liquidations/{symbol}`
- Auth: API key in header `X-API-Key`

Get Lighter on Robinhood Chain liquidation events in a bounded time range using cursor pagination. Served from June 26, 2026 20:10:26 UTC. Rows from before live capture began on August 22, 2026 carry `source: "bucket"` and an empty `raw_json`, and live-captured rows carry `source: "ws"` and the venue's raw JSON. The earlier rows were backfilled from the venue's finalized export. Explicit endpoint cost is 3 credits per request.

## Path parameters

- `symbol` string, required

## Query parameters

- `start` union: An instant: Unix milliseconds, or an RFC 3339 string such as `2026-01-01T00:00:00Z` (encode a `+` offset as `%2B`). An unparsable value answers 400 `invalid_time_range`.
  - integer: Unix milliseconds.
  - string, date-time: RFC 3339 instant.
- `end` union: An instant: Unix milliseconds, or an RFC 3339 string such as `2026-01-01T00:00:00Z` (encode a `+` offset as `%2B`). An unparsable value answers 400 `invalid_time_range`.
  - integer: Unix milliseconds.
  - string, date-time: RFC 3339 instant.
- `cursor` string
- `limit` integer

## Response `200`

Lighter liquidation events

- ApiResponseLighterLiquidationArray: API response containing an array of native Lighter liquidation events
  - `success` boolean
  - `data` LighterLiquidation[]
    - `symbol` string, required: Trading pair symbol
    - `timestamp` union, required: Liquidation time. By default an integer, Unix milliseconds. With `0xArchive-Version: 2026-10-01` an RFC 3339 UTC string with millisecond precision, and the integer moves to `timestamp_ms`.
      - integer: Default: Unix milliseconds.
      - string, date-time: Version 2026-10-01: RFC 3339 UTC.
    - `timestamp_ms` integer: With `0xArchive-Version: 2026-10-01` only: `timestamp` as Unix milliseconds.
    - `transaction_time_us` integer, required: Intra-block transaction time in microseconds
    - `trade_id` integer, required: Unique Lighter trade ID of the liquidation fill
    - `liquidation_type` string, required: Upstream liquidation type
    - `price` number, required: Execution price
    - `size` number, required: Liquidated size in base units
    - `usd_amount` number, required: Notional value of the liquidation in USD
    - `ask_account` string, required: Lighter account index on the ask side (serialized as a string)
    - `bid_account` string, required: Lighter account index on the bid side (serialized as a string)
    - `ask_order_id` integer, required: Order ID on the ask side
    - `bid_order_id` integer, required: Order ID on the bid side
    - `is_maker_ask` boolean, required: True if the maker was on the ask side
    - `taker_position_size_before` number, required: Taker's signed position size before the fill (long positive, short negative)
    - `maker_position_size_before` number, required: Maker's signed position size before the fill
    - `taker_entry_quote_before` number, required: Taker's position entry quote value before the fill
    - `maker_entry_quote_before` number, required: Maker's position entry quote value before the fill
    - `taker_initial_margin_fraction_before` integer, required: Taker's initial margin fraction before the fill (raw upstream units)
    - `maker_initial_margin_fraction_before` integer, required: Maker's initial margin fraction before the fill (raw upstream units)
    - `taker_allocated_margin_usdc_before` integer, required: Taker's isolated-margin USDC allocation before the fill (raw upstream units)
    - `taker_allocated_margin_usdc_after` integer, required: Taker's isolated-margin USDC allocation after the fill (raw upstream units)
    - `maker_allocated_margin_usdc_before` integer, required: Maker's isolated-margin USDC allocation before the fill (raw upstream units)
    - `maker_allocated_margin_usdc_after` integer, required: Maker's isolated-margin USDC allocation after the fill (raw upstream units)
    - `taker_fee` integer, required: Taker fee (raw upstream units)
    - `maker_fee` integer, required: Maker fee (raw upstream units)
    - `taker_position_sign_changed` boolean, required: True if the fill flipped the taker's position between long and short
    - `maker_position_sign_changed` boolean, required: True if the fill flipped the maker's position between long and short
    - `block_height` integer, required: Lighter L2 block height containing the liquidation
    - `tx_hash` string, required: Lighter settlement transaction hash (fixed-width hex)
    - `raw_json` string, required: Raw upstream payload as received from Lighter. Empty for rows backfilled from the venue's finalized export (`source: "bucket"`, Lighter on Robinhood Chain).
    - `source` string, required: Row provenance: `ws` for live capture; `bucket` for rows backfilled from the venue's finalized export (Lighter on Robinhood Chain), which carry an empty `raw_json`.
  - `meta` ResponseMeta: Response metadata. Every 2xx JSON response carries `meta.request_id`; list payloads add `count`; cursor-paged routes add `has_more` and, when another page follows, `next_cursor`; per-symbol routes add `symbol` and `venue`. Fields that do not apply to a route are omitted.
    - `count` integer: Number of records returned
    - `has_more` boolean: Cursor-paged routes: whether another page follows. `next_cursor` is present exactly when this is `true`. A final page can be empty when the previous page was exactly full; `has_more` is `false` on it.
    - `next_cursor` string: Opaque cursor for the next page, present exactly when `has_more` is `true`. Pass it back unchanged as `cursor` with the same filters. Do not parse or construct it.
    - `request_id` string, uuid, required: Unique request ID for support
    - `symbol` string: Per-symbol routes: the canonical public symbol the response describes (for example `BTC`, `xyz:TSLA`, `HYPE-USDC`, `#0`).
    - `venue` 'hyperliquid' | 'hip3' | 'hip4' | 'spot' | 'lighter' | 'rh-lighter': Per-symbol routes: the venue the response describes.
    - `coverage_from` string, date-time: Earliest coverage for the requested symbol and data type. Present only when the requested window ends before coverage begins.
    - `notice` string: Human-readable advisory about the response. Used when the requested window ends before coverage begins for the symbol, and on CVD responses that are one page of several; may carry other advisories in future.
    - `finalized_through` string, date-time: Two-tier datasets (Lighter trades): data at or before this instant is final; later data is preliminary.
    - `requested_end` string, date-time, nullable: The `end` the request asked for, echoed when it was clamped to `finalized_through`.
    - `clamped_to` string, date-time, nullable: The boundary the request's `end` was clamped to, when clamping occurred.
    - `preliminary_row_count` integer, nullable: Number of preliminary rows in this response, on routes that intentionally serve preliminary data (Lighter `/recent`).

## Other responses

- `400`: Invalid request: a parameter, symbol, interval, cursor or time range failed validation. See `error_code`.
- `401`: Authentication required: the API key is missing or invalid.
- `403`: The request is outside the plan's history window or per-request span, or the key is not allowed to make it.
- `429`: Rate limit, concurrency limit or monthly credits exceeded. See `error_code`.
- `default`: Any other error. The body is an `ErrorResponse`; branch on `error_code`. A 503 (`upstream_unavailable`) carries `Retry-After`.

---

[API](https://skmtc.dev/0xarchive/apis/0xarchive-api-2.md) · [All operations](https://skmtc.dev/0xarchive/apis/0xarchive-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/0xarchive/apis/0xarchive-api-2/revisions/27076f55595f?raw)
