Query market series
query_seriesThe series for one market or a few (max 10): one row per market per interval over a trailing window, ordered by interval then market. Pick bar (1d, the default, for one row per day, or 1h 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.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"coins": "<coins>"
},
"name": "query_series"
}
}Input 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
| Name | Required | Description | Default |
|---|---|---|---|
| bar | Yes | The grain this answer was computed at: `1d` or `1h`. | |
| rows | Yes | Ordered by interval, then market. | |
| 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. | |
| published_at | No | ||
| bar_age_hours | Yes | ||
| 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. |