---
title: "GET /api/feed/v1/events/{eventId}/section-frames"
method: GET
path: "/api/feed/v1/events/{eventId}/section-frames"
tags: ["Feed"]
---

# GET /api/feed/v1/events/{eventId}/section-frames

`GET /api/feed/v1/events/{eventId}/section-frames`

## Request

- Base URL: `https://api.findticker.com`
- URL: `https://api.findticker.com/api/feed/v1/events/{eventId}/section-frames`
- Auth: HTTP bearer

## Path parameters

- `eventId` string, required

## Query parameters

- `since` string, date-time: Oldest step to include, ISO 8601. Defaults to 24 hours ago and reaches back at most 90 days.
- `until` string, date-time: Newest step to include, ISO 8601. Defaults to now.
- `interval` '5m' | '15m' | '1h' | '6h' | '1d': Step size. Ask for one too fine for the window and a wider one is served, never a shorter window; `interval` in the answer says which.

## Response `200`

Every section's open seat count and cheapest open seat at each step across a window, in one answer. `counts[i]` is section `sections[i]`'s open seats at that step and `min_prices[i]` is its cheapest open seat at the same instant; null means that section has no reading at or before it, which is NOT the same as zero. Counts carry forward between readings, because an open seat count is a state and not an event, and `as_of` says how old the newest reading behind a step is. `total` is the whole house at that step and is null until every section in `sections` has been read at least once; `sections_read` says how many of them have, and summing `counts` yourself gives the part that was read. At most 288 steps, so the step follows the window: omit `since` and the answer spans the event's own history, fifteen minutes a step across one date and one date a step across a season. An event with no section readings answers an empty frame list, which is the common case. Costs one unit whatever the section count and whatever the window.

- FeedEventSectionFrames
  - `event_id` string, required
  - `sections` string[], required
  - `frames` FeedSectionFrame[], required
    - `at` string, required
    - `as_of` string, nullable, required
    - `counts` integer[], required
    - `min_prices` number[], required
    - `total` integer, nullable, required
    - `sections_read` integer, required

## Other responses

- `400`: Validation error, an unknown `columns` name (the message lists the valid set), or a batch over the size bound.
- `401`: Missing or invalid API key.
- `403`: The key's account is not entitled to the feed, or the account or the address it calls from is blocked (`reason` `blocked`).
- `404`: No such event.
- `429`: The per-minute burst ceiling or the unit budget for the current UTC date is used up.
- `500`: Internal Server Error.

---

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