Lighter - Positions

Get Lighter account position changes

Position change log of one account in [start, end): every trade, liquidation, deleverage, or settlement leg with the position before and after, in timestamp order. end is clamped to meta.built_through. A window too large to answer in time returns an error asking for a narrower one. The change log and hourly history start January 17, 2025; live snapshots refresh every 2 minutes. Rows past the trade finalization watermark are preliminary (finalized: false). Billed at 1 credit per 1,000 rows returned, minimum 1 credit per request.

get/v1/lighter/accounts/{account_index}/positions/changes

Request

  • Base URL: https://api.0xarchive.io
  • URL: https://api.0xarchive.io/v1/lighter/accounts/{account_index}/positions/changes
  • Auth: API key in header X-API-Key

Path parameters

account_indexstring required
Example:513030

Lighter account index (an integer). Resolve an L1 address on Lighter mainnet with GET /v1/lighter/accounts?l1_address=0x...

Query parameters

integer

Unix milliseconds.

OR
string date-time

RFC 3339 instant.

Example:1767225600000

Inclusive start. Defaults to 24 hours before end. Accepts Unix milliseconds or an RFC 3339 UTC string such as 2026-01-01T00:00:00Z.

integer

Unix milliseconds.

OR
string date-time

RFC 3339 instant.

Example:1767225600000

Exclusive end. Defaults to now. Accepts Unix milliseconds or an RFC 3339 UTC string such as 2026-01-01T00:00:00Z.

symbolstring

Only this perpetual (e.g. BTC). Pass it exactly as the instruments route lists it, in uppercase.

limitinteger

Maximum rows per page (default 500, max 5000).

cursorstring

Opaque pagination cursor: pass meta.next_cursor from the previous page unchanged, with the same filters. Omit it for the first page. Keep every other parameter unchanged.

Response

Get Lighter account position changes

successboolean required

Example response

{
  "success": true,
  "data": [
    {
      "timestamp": "2026-09-25T14:03:11.482Z",
      "account_index": "513030",
      "account_kind": "user",
      "symbol": "BTC",
      "coin": "BTC",
      "dex": "xyz",
      "side": "B",
      "price": "65010.2",
      "size": "0.25",
      "start_position": "-0.5",
      "end_position": "-0.25",
      "entry_price_after": "64210.5",
      "event_type": "reduce",
      "cause": "trade",
      "direction": "Close Short",
      "closed_pnl": "19.9",
      "realized_pnl": "19.9",
      "fee": "0.4875",
      "fee_token": "USDC",
      "crossed": true,
      "trade_id": 26121110211,
      "order_id": 844421856609148,
      "block_number": 745512345,
      "event_index": 12,
      "continuity": "ok",
      "position_size_before": "-0.5",
      "position_size_after": "-0.25",
      "fee_rate": "0.00002",
      "fee_usdc": "0.325",
      "usdc_amount": "16252.55",
      "finalized": true
    }
  ],
  "meta": {
    "totals": {
      "symbol": "BTC",
      "coin": "BTC",
      "dex": "xyz",
      "long_count": 18234,
      "short_count": 15102,
      "long_size": "8123.45",
      "short_size": "8120.1",
      "long_value": "528000000.5",
      "short_value": "527800000.25",
      "long_avg_entry_price": "63120.4",
      "short_avg_entry_price": "66210.9",
      "long_positions_with_entry": 18230,
      "short_positions_with_entry": 15100,
      "long_top10_value_share": "0.412345",
      "short_top10_value_share": "0.385",
      "top10_value_share": "0.301",
      "quality": "complete"
    },
    "symbol": "BTC",
    "venue": "hyperliquid"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.