query_series
The series for one market or a few (max 10): one row per market per interval over a trailing window, oldest first. Pick bar (1d, the default, for one row per day, or 1h on a Pro key for one row per completed hour). Answers 'is this move backed by real flow' and 'how has positioning built up'. ending_day defaults to the last complete interval. The whole answer is capped, so markets times window_days (times 24 at bar 1h) must stay inside the row cap; the response states the window it used.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bar | No | `1d` (the default) for completed UTC days, `1h` for completed UTC hours. An interval, at either grain, is stamped by the instant it **closes** — an hourly `…T09:00:00Z` is the hour that ended at 09:00. | |
| coins | Yes | The markets to return, 1..10. | |
| scope | No | `crypto` (the default), `hip3`, or `all`. | |
| columns | No | Fields to return per row, from `list_fields`. The interval column (`day` at 1d, `hour` at 1h) and `coin` are always included. | |
| ending_day | No | The last interval to include: `YYYY-MM-DD` or `latest` at `bar: 1d`, a completed `YYYY-MM-DDTHH:00:00Z` (the hour that *ended* there) or `latest` at `bar: 1h`. | |
| window_days | No | Length of the trailing window in days, 1..365. Defaults to 7. At `bar: 1h` one window day is 24 hourly rows. |
Output Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bar | Yes | The grain this answer was computed at: `1d` or `1h`. | |
| rows | Yes | ||
| as_of | Yes | The last interval in the series. | |
| notes | Yes | ||
| scope | Yes | ||
| source | Yes | ||
| row_count | Yes | ||
| truncated | Yes | ||
| window_days | Yes | The window the trailing fields were computed over, in days. | |
| matched_count | Yes | How many of the requested markets the series actually has rows for — less than `eligible_count` when one of them has no data in the window. | |
| visible_count | Yes | Markets in your plan's slice with a row on the last interval. | |
| eligible_count | Yes | The markets you asked for, after the plan's slice and your filter were intersected. |