---
title: "Bucketed market-wide net call premium / net put premium time series"
method: GET
path: "/v1/market/tide"
tags: ["Market"]
---

# Bucketed market-wide net call premium / net put premium time series

`GET /v1/market/tide`

## Request

- Base URL: `https://flow-api.skylit.ai`
- URL: `https://flow-api.skylit.ai/v1/market/tide`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/skylit/apis/flowseeker-skylit-public-api/docs/v1/market/tide/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns the market-wide intraday "tide" — bucketed Net Call
Premium and Net Put Premium series with both per-bucket and
cumulative values, plus an SPY price overlay for context. Two
directional flavors are emitted per bar: the standard `ncp`/`npp`
(call-buying minus call-selling, etc.) and a `manualNcp`/
`manualNpp` variant with the script-trade exclusion logic
relaxed for callers that need raw flow.

## Query parameters

- `interval` '1D' | '2D' | '3D' | '5D' | '7D' | '14D' | '30D' | '45D' | '60D' | '90D' | '120D' | '180D' | '360D'
- `bucket` '1min' | '5min' | '15min' | '30min' | '1d' | '1w'
- `date` string, date
- `exclude_multi_leg` boolean
- `exclude_deep_itm` boolean

## Response `200`

Market tide bars.

- MarketTideSuccess
  - `data` MarketTideResponse, required
    - `interval` string, required
    - `bucket` string, required
    - `bars` MarketTideBar[], required
      - `timestamp` integer, required: Unix seconds (bucket start).
      - `timestampEnd` integer, required: Unix seconds (bucket end).
      - `ncp` number, required: Net Call Premium for the bucket (call buying minus call selling).
      - `npp` number, required: Net Put Premium for the bucket.
      - `ncpCumulative` number, required
      - `nppCumulative` number, required
      - `manualNcp` number, required: NCP variant computed without the script-trade exclusion.
      - `manualNpp` number, required
      - `manualNcpCumulative` number, required
      - `manualNppCumulative` number, required
      - `callVolume` integer, required
      - `putVolume` integer, required
      - `totalVolume` integer, required
      - `spyPrice` number, required: SPY trade price at the bucket boundary, for overlay charts.
      - `isGap` boolean, required: True when this bucket spans a session/holiday gap and contains no real trades.
  - `meta` Meta, required
    - `timestamp` string, date-time, required: Server-side timestamp the response was generated at.
    - `requestId` string, required: Short opaque ID for log correlation.

## Other responses

- `400`: Request validation failed.
- `401`: Missing or invalid API key.
- `402`: The account's shared Skylit credit balance is lower than this route's cost. Top up to continue. Carries `X-Credits-Remaining: 0`.
- `403`: API key revoked/expired, monthly quota exceeded, or the account's API access is suspended (`account_suspended`).
- `429`: Per-minute rate limit exceeded.
- `503`: Underlying data source temporarily unavailable, or the credit balance could not be verified (`credit_check_failed`). Safe to retry.

---

[API](https://skmtc.dev/skylit/apis/flowseeker-skylit-public-api.md) - [All operations](https://skmtc.dev/skylit/apis/flowseeker-skylit-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/skylit/apis/flowseeker-skylit-public-api/revisions/3280190b1b24?raw)
