---
title: "Market movers (top gainers and losers)"
method: GET
path: "/v1/last/movers/{venue}"
tags: ["Live"]
---

# Market movers (top gainers and losers)

`GET /v1/last/movers/{venue}`

## Request

- Base URL: `https://api.sifting.io`
- URL: `https://api.sifting.io/v1/last/movers/{venue}`
- Auth: one of:
  - API key in header `X-API-Key`
  - API key in query parameter `api_key`
- TypeScript: <https://skmtc.dev/sifting/apis/siftingio-market-data-api/docs/v1/last/movers/:venue/get.ts> (a function with typed inputs; its response is checked against the schema)

The biggest percentage risers and fallers of a venue, ranked from each symbol's live price against its stored previous close (the same value `/v1/last/close` serves). Change is therefore measured since the last close snapshot. Symbols with no close or no price are skipped and unchanged symbols appear in neither list. Not available for DEX.

## Path parameters

- `venue` 'stocks' | 'crypto' | 'forex' | 'commodities', required

## Query parameters

- `limit` integer
- `direction` 'all' | 'gainers' | 'losers'

## Response `200`

Ranked gainers and losers.

- MoversResponse
  - `data` object
    - `gainers` Mover[]: Largest percentage increases first. Omitted when `direction=losers`.
      - `symbol` string
      - `price` string: Live price (decimal string).
      - `prev_close` string: Stored previous close (decimal string).
      - `change` string: price minus prev_close (decimal string).
      - `change_pct` number: Percentage change vs prev_close, rounded to 4 decimals.
      - `day_volume` number: Volume so far in the current trading day (our own aggregated volume, the same that feeds our OHLCV bars). The day is the UTC day for crypto, forex and commodities, and the regular session for US stocks. Not a rolling 24 hours. Omitted when no volume is available yet. Until the next day's first bar (stocks pre-market, weekends, holidays) this is still the previous day's full total.
      - `prev_day_volume` number: Full volume of the trading day before the day_volume day. Omitted when unavailable.
    - `losers` Mover[]: Largest percentage decreases first. Omitted when `direction=gainers`.
      - `symbol` string
      - `price` string: Live price (decimal string).
      - `prev_close` string: Stored previous close (decimal string).
      - `change` string: price minus prev_close (decimal string).
      - `change_pct` number: Percentage change vs prev_close, rounded to 4 decimals.
      - `day_volume` number: Volume so far in the current trading day (our own aggregated volume, the same that feeds our OHLCV bars). The day is the UTC day for crypto, forex and commodities, and the regular session for US stocks. Not a rolling 24 hours. Omitted when no volume is available yet. Until the next day's first bar (stocks pre-market, weekends, holidays) this is still the previous day's full total.
      - `prev_day_volume` number: Full volume of the trading day before the day_volume day. Omitted when unavailable.
  - `meta` object
    - `as_of` string, date-time
    - `venue` string
    - `limit` integer: Rows per list in this response.

## Other responses

- `400`: Invalid request parameters.
- `401`: Missing or invalid API key.
- `403`: Valid key, but the plan or tier does not include this market/venue.
- `404`: Resource not found.
- `429`: Rate limit exceeded.
- `503`: Upstream or snapshot temporarily unavailable.

---

[API](https://skmtc.dev/sifting/apis/siftingio-market-data-api.md) - [All operations](https://skmtc.dev/sifting/apis/siftingio-market-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sifting/apis/siftingio-market-data-api/revisions/c570068c2359?raw)
