Flowseeker/API Reference/Market

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

GEThttps://api.skylit.ai/v1/market/tide

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.

Authorization

Authorization: Bearer <your API key>

Required. A missing header returns 401; an invalid, revoked or expired key returns 403.

Query parameters

  • intervalstringdefault 1D

    Trailing window length. Defaults to a single trading day (1D); multi-day intervals roll up history at the chosen bucket size. Intraday buckets (1min–30min) allow at most 30D; use 1d or 1w for longer windows. Priced by range: 3 credits per started 30 days (360D = 36).

    1D2D3D5D7D14D30D45D60D90D120D180D360D
  • bucketstringdefault 5min

    Bucket size for the time series.

    1min5min15min30min1d1w
  • datestringdate

    Trading date anchor (YYYY-MM-DD). Defaults to today.

  • exclude_multi_legbooleandefault false

    Exclude multi-leg / spread trades from the directional totals.

  • exclude_deep_itmbooleandefault false

    Exclude deep in-the-money trades (moneyness_percent < -20) from the directional totals. This reads raw trades rather than the pre-aggregated series: interval is capped at 5D and the call costs 3 credits per trading day.

Responses

  • 200

    Market tide bars.

  • 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

    Unknown, revoked or expired API key (the gateway's forbidden), the account's API access is suspended (account_suspended) or blocked (account_blocked). Not retryable.

  • 429

    Either the key exceeded its requests-per-minute limit (X-RateLimit-Limit; no Retry-After, wait until X-RateLimit-Reset), or the account is over one of the API's own limits, such as the query budget (queries running at once, fresh queries per second): TOO_MANY_CONCURRENT_QUERIES or RATE_LIMITED with Retry-After. Not charged; retry after the wait.

  • 500

    Unexpected server error (INTERNAL_ERROR, DATABASE_ERROR). Not charged; safe to retry with exponential backoff.

  • 503

    Underlying data source temporarily unavailable, the credit balance could not be verified (credit_check_failed), or the API is paused for maintenance (api_paused, with a Retry-After header and a retry_after field in seconds). Not charged; safe to retry.

  • 504

    The request did not complete within 25 seconds. Not charged; narrow the window or retry.

Response fields

  • dataobjectrequired
    • intervalstringrequired
    • bucketstringrequired
    • barsobject[]required
  • metaobjectrequired
    • timestampstringdate-timerequired

      Server-side timestamp the response was generated at.

    • requestIdstringrequired

      Short opaque ID for log correlation.

    • nextCursorstring

      Trade feeds (/v1/flow/{ticker}, /v1/contract/{symbol}/trades): pass back as cursor with the same filters for the next page. Present only when more rows may follow.

    • nextEndTimestringdate-time

      /v1/flow/{ticker} only: the last row's exact time (RFC 3339 with nanoseconds), for end_time paging. Inclusive, so rows at that instant can repeat; nextCursor never repeats or skips.

Last updated

Was this page helpful?