---
title: "NYSE/NASDAQ advance-decline data"
method: GET
path: "/market-momentum"
tags: ["Market Breadth"]
---

# NYSE/NASDAQ advance-decline data

`GET /market-momentum`

## Request

- Base URL: `https://stockmarketscan.com/api/v1`
- URL: `https://stockmarketscan.com/api/v1/market-momentum`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer
  - API key in header `X-RapidAPI-Key`

One row per exchange per trading day, ordered by data_date desc,
exchange asc. Send `date` for one day, or `date_from` and/or `date_to`
for an inclusive range (either may be sent alone), but not both kinds.
Without dates: the last 7 trading days (the window is pinned by the
cursor).

## Query parameters

- `date` string, date
- `date_from` string, date
- `date_to` string, date
- `limit` integer
- `cursor` string

## Headers

- `If-None-Match` string

## Response `200`

Market breadth rows

- object
  - `data` MarketMomentumRow[], required
    - `data_date` string, date, required
    - `exchange` string, required
    - `advancing_issues` number, nullable, required
    - `declining_issues` number, nullable, required
    - `unchanged_issues` number, nullable, required
    - `percent_advancing_issues` number, nullable, required: Percent, 63 means 63%.
    - `percent_declining_issues` number, nullable, required
    - `percent_unchanged_issues` number, nullable, required
    - `new_highs` number, nullable, required
    - `new_lows` number, nullable, required
  - `meta` object, required: Response metadata. Endpoint-specific keys are documented per operation.
    - `as_of` string, date, nullable, required: Trading date of the underlying data. Null when there is no data.
    - `generated_at` string, date-time, required: When this response was produced (RFC 3339 UTC).
    - `pagination` Pagination, required: Present on list endpoints. Follow `next_cursor` until it is null.
      - `limit` integer, required: Page size that was applied.
      - `next_cursor` string, nullable, required: Cursor for the next page; null on the last page.
      - `total` integer: Rows across all pages. Only where it is cheap and exact.
    - `parameters` object, required: Parameters applied after defaults.
      - `date` string, date, nullable, required
      - `date_from` string, date, nullable, required
      - `date_to` string, date, nullable, required
      - `limit` integer, required

## Other responses

- `304`: Not modified since the ETag in `If-None-Match`. No body; not counted against your quota.
- `400`: Invalid parameter, cursor or body. Not counted against your quota.
- `401`: Missing or invalid credentials.
- `403`: Your plan does not include this endpoint or screener. Not counted against your quota.
- `429`: Rate limit or quota exceeded. `Retry-After` says when to retry.
- `500`: Unexpected server error. Quote `request_id` when reporting it.
- `503`: A dependency (database or key store) is unavailable.

---

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