op3_query_downloads
op3_query_downloadsFetch raw download rows for any show or episode with time, bot, and listener filters. Use when standard summary tools can't answer a custom analytics question.
Instructions
Raw download rows for a show, with every filter OP3 offers. This is the escape hatch for questions the aggregating tools do not cover. Prefer op3_show_downloads, op3_audience_summary, op3_geography or op3_app_share when they can answer the question, because raw rows are slow to fetch and expensive to reason over. Rows come back oldest first and OP3 offers no way to reverse that on this endpoint, so the limit takes the earliest rows in the window: to see recent activity, narrow the window with start rather than raising the limit. Per-listener identifiers are removed from the output.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Window end. Defaults to now. | |
| bots | No | Return raw request rows instead of OP3's deduplicated download count. This adds bot traffic and also switches off OP3's download calculation, so the row count rises for reasons beyond bots. Off by default, which matches every other download figure OP3 reports. | |
| limit | No | Rows to return. Kept low on purpose: these rows are wide and fill a context window fast. | |
| start | No | Window start, e.g. -24h, -7d, 2026-08-01. Defaults to -30d. | |
| episode_id | No | Restrict to one episode, by its 64-character OP3 episode id. | |
| identifier | Yes | An OP3 show uuid, a podcast:guid, or the show's RSS feed URL. | |
| include_listener_keys | No | Include a shortened, non-reversible listener label so rows can be told apart by listener. The full audienceId and hashedIpAddress are never returned either way. |