result.data | object | Yes | — | Provider response payload. |
result.data.cursor | string | No | — | Pass to next request for more results |
result.data.data | array | Yes | — | List of results |
result.data.data[].audio_url | string | No | — | Direct audio URL for this segment |
result.data.data[].description | string | No | — | AI-generated segment description |
result.data.data[].duration_seconds | number | Yes | — | Segment duration Format: double. |
result.data.data[].end_line | integer | No | — | Last transcript line covered by this segment (1-indexed, inclusive). Omitted for episodes segmented before line ranges were recorded. Format: int64. |
result.data.data[].end_seconds | number | Yes | — | End time within the episode — when the segment’s last spoken line ends. Where start_line/end_line are present, segments partition the transcript’s lines rather than tiling the wall-clock timeline, and the interval between this and the next segment’s start_seconds contains no transcribed speech (typically under a second, occasionally minutes of music or silence). Segments without a recorded line range were produced by an earlier segmenter and a small share of them do leave transcript lines See the live schema for the complete constraint. |
result.data.data[].episode | object | No | — | — |
result.data.data[].episode.id | string | Yes | — | Episode ID |
result.data.data[].episode.podcast | object | No | — | — |
result.data.data[].episode.podcast.best_rank | object | No | — | — |
result.data.data[].episode.podcast.best_rank.captured_at | string | Yes | — | Format: date-time. |
result.data.data[].episode.podcast.best_rank.category_slug | string | No | — | — |
result.data.data[].episode.podcast.best_rank.chart_type | "top_podcasts" | Yes | — | Allowed: top_podcasts. |
result.data.data[].episode.podcast.best_rank.country | string | No | — | — |
result.data.data[].episode.podcast.best_rank.rank | integer | Yes | — | Format: int64. |
result.data.data[].episode.podcast.best_rank.source | "apple" | "spotify" | Yes | — | Allowed: apple, spotify. |
result.data.data[].episode.podcast.id | string | Yes | — | Podcast ID |
result.data.data[].episode.podcast.image_url | string | No | — | Cover image URL |
result.data.data[].episode.podcast.popularity | number | No | — | Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints. Format: double. |
result.data.data[].episode.podcast.publisher | object | No | — | — |
result.data.data[].episode.podcast.publisher.id | string | Yes | — | Publisher ID |
result.data.data[].episode.podcast.publisher.name | string | Yes | — | Publisher name |
result.data.data[].episode.podcast.publisher.slug | string | No | — | Human-readable slug identifier (e.g., ‘goalhanger’, ‘iheartpodcasts’). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn’t slugify (e.g., scripts not representable in ASCII URL slugs). |
result.data.data[].episode.podcast.slug | string | No | — | Human-readable slug identifier |
result.data.data[].episode.podcast.title | string | Yes | — | Podcast title |
result.data.data[].episode.published_at | string | No | — | Publication date Format: date-time. |
result.data.data[].episode.slug | string | No | — | Human-readable slug identifier |
result.data.data[].episode.title | string | Yes | — | Episode title |
result.data.data[].episode.web_url | string | No | — | The episode’s page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment. The hit’s own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch See the live schema for the complete constraint. |
result.data.data[].id | string | Yes | — | Unique identifier |
result.data.data[].number | integer | Yes | — | Segment position within the episode Format: int64. |
result.data.data[].placement_type | string | Yes | — | Where the ad appeared in the episode (PRE_ROLL, MID_ROLL, POST_ROLL) |
result.data.data[].read_type | string | No | — | For AD segments, how the ad was delivered (HOST_READ, PRE_RECORDED, NETWORK_PROMO) |
result.data.data[].sponsors | array | null | Yes | — | Company-scoped sponsors attributed to this physical ad read |
result.data.data[].sponsors[].company | object | No | — | — |
result.data.data[].sponsors[].company.description | string | No | — | Short company description, when known. |
result.data.data[].sponsors[].company.domain | string | No | — | Primary website domain (e.g. ‘nvidia.com’), when known. |
result.data.data[].sponsors[].company.id | string | Yes | — | Company identifier (domain, slug, or encoded ID) |
result.data.data[].sponsors[].company.image_url | string | No | — | Company logo or image URL |
result.data.data[].sponsors[].company.name | string | Yes | — | Company name |
result.data.data[].sponsors[].company.slug | string | No | — | Stable human-readable handle (the linked knowledge-graph slug, e.g. ‘nvidia’), when known. Companies have no slug of their own. prefer this for display and pass it (or id) to /v1/companies. |
result.data.data[].sponsors[].company.ticker | string | No | — | Primary stock ticker symbol, when listed. |
result.data.data[].sponsors[].id | string | Yes | — | Unique identifier |
result.data.data[].sponsors[].name | string | Yes | — | Sponsor name |
result.data.data[].start_line | integer | No | — | First transcript line covered by this segment (1-indexed, inclusive). Line numbers match the number field of GET /v1/podcasts/episodes/{id}/transcript lines. This segment’s end_line + 1 is the next segment’s start_line, and the segments together cover every line of the transcript. Omitted for episodes segmented before line ranges were recorded. Format: int64. |
result.data.data[].start_seconds | number | Yes | — | Start time within the episode — when the segment’s first spoken line begins Format: double. |
result.data.data[].summary | string | No | — | AI-generated segment summary |
result.data.data[].title | string | Yes | — | AI-generated segment title |