Skip to main content
GET
/
v1
/
podcasts
/
episodes
/
feed
cURL
curl -H "X-API-Key: $PARTICLE_API_KEY" \
  "https://api.particle.pro/v1/podcasts/episodes/feed?milestone=transcribed&limit=25"
{
  "data": [
    {
      "duration_seconds": 123,
      "explicit": true,
      "has_transcript": true,
      "id": "<string>",
      "title": "<string>",
      "audio_url": "<string>",
      "clip_count": 123,
      "clips": [
        {
          "duration_seconds": 123,
          "end_seconds": 123,
          "engagement_score": 123,
          "id": "<string>",
          "start_seconds": 123,
          "title": "<string>",
          "audio_url": "<string>",
          "description": "<string>",
          "episode": {
            "id": "<string>",
            "title": "<string>",
            "podcast": {
              "id": "<string>",
              "title": "<string>",
              "image_url": "<string>",
              "slug": "<string>"
            },
            "published_at": "2023-11-07T05:31:56Z",
            "slug": "<string>"
          },
          "intro_statement": "<string>",
          "segment": {
            "id": "<string>",
            "title": "<string>",
            "type": "<string>"
          },
          "speaker": {
            "name": "<string>",
            "entity": {
              "id": "<string>",
              "name": "<string>",
              "slug": "<string>",
              "company": {
                "id": "<string>",
                "domain": "<string>",
                "ticker": "<string>"
              },
              "description": "<string>",
              "person": {
                "id": "<string>",
                "company": "<string>",
                "image_url": "<string>",
                "title": "<string>"
              },
              "type": {
                "name": "<string>",
                "slug": "<string>"
              },
              "wikipedia_url": "<string>"
            },
            "person": {
              "id": "<string>",
              "name": "<string>",
              "image_url": "<string>",
              "slug": "<string>"
            },
            "role": "<string>"
          }
        }
      ],
      "description": "<string>",
      "entity_count": 123,
      "episode_number": 123,
      "image_url": "<string>",
      "language": "<string>",
      "podcast": {
        "id": "<string>",
        "title": "<string>",
        "image_url": "<string>",
        "slug": "<string>"
      },
      "published_at": "2023-11-07T05:31:56Z",
      "segment_count": 123,
      "segments": [
        {
          "duration_seconds": 123,
          "end_seconds": 123,
          "id": "<string>",
          "number": 123,
          "start_seconds": 123,
          "title": "<string>",
          "type": "<string>",
          "audio_url": "<string>",
          "description": "<string>",
          "episode": {
            "id": "<string>",
            "title": "<string>",
            "podcast": {
              "id": "<string>",
              "title": "<string>",
              "image_url": "<string>",
              "slug": "<string>"
            },
            "published_at": "2023-11-07T05:31:56Z",
            "slug": "<string>"
          },
          "read_type": "<string>",
          "summary": "<string>"
        }
      ],
      "slug": "<string>",
      "speakers": [
        {
          "name": "<string>",
          "description": "<string>",
          "descriptor": "<string>",
          "entity": {
            "id": "<string>",
            "name": "<string>",
            "slug": "<string>",
            "company": {
              "id": "<string>",
              "domain": "<string>",
              "ticker": "<string>"
            },
            "description": "<string>",
            "person": {
              "id": "<string>",
              "company": "<string>",
              "image_url": "<string>",
              "title": "<string>"
            },
            "type": {
              "name": "<string>",
              "slug": "<string>"
            },
            "wikipedia_url": "<string>"
          },
          "person": {
            "id": "<string>",
            "name": "<string>",
            "image_url": "<string>",
            "slug": "<string>"
          },
          "role": "<string>",
          "speaking_duration_seconds": 123
        }
      ],
      "topics": [
        {
          "id": "<string>",
          "name": "<string>",
          "slug": "<string>",
          "ancestry": "<string>",
          "ancestry_path": "<string>",
          "episode_count": 123
        }
      ],
      "transcript": {
        "duration_seconds": 123,
        "episode_id": "<string>",
        "lines": [
          {
            "end_seconds": 123,
            "number": 123,
            "speaker": "<string>",
            "start_seconds": 123,
            "text": "<string>",
            "role": "<string>"
          }
        ],
        "language": "<string>"
      },
      "url": "<string>",
      "videos": [
        {
          "url": "<string>",
          "duration_seconds": 123,
          "height": 123,
          "mime_type": "<string>",
          "width": 123
        }
      ]
    }
  ],
  "has_more": true,
  "cursor": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://docs.particle.pro/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

X-API-Key
string
header
required

Pass your API key in the X-API-Key header (recommended).

Query Parameters

milestone
enum<string>
default:transcribed

Deliver episodes once they reach this ingestion stage. Ordered discovered < transcribed < segmented < fully_ingested.

Available options:
discovered,
transcribed,
segmented,
fully_ingested
podcast_ids
string[] | null

Filter to a set of podcasts by slug or ID (comma-separated). Hard limit of 100 per request. Unknown values are ignored; if no filter matches any podcast you get a 404. Always included over popularity_threshold.

Maximum array length: 100
popularity_threshold
number<double>

Filter to the most-popular podcasts whose popularity percentile is at least this value, in (0,1). The feed covers at most 100 podcasts total: your podcast_ids plus the most-popular podcasts above this threshold, with the least-popular trimmed to fit. For an uncapped popularity stream, use the Enterprise stream endpoint.

Required range: x >= 0
topic_ids
string[] | null

Scope the feed to one or more topics (comma-separated): each a topic slug path (e.g. sports/football/fantasy-football), ID, or ancestry-path hash. A topic also matches its descendants, and multiple topics are unioned. Only podcasts that regularly cover the topic are included — a show that merely mentions it in passing is excluded. The feed still covers at most 100 podcasts total, so combine with popularity_threshold to keep just the most popular. An unknown topic returns a 404.

Maximum array length: 20
cursor
string

Opaque cursor from a prior feed response. Poll again with it to receive episodes ingested since. Omit (with no since) to start from now.

since
string

ISO 8601 date or date-time to start from when no cursor is supplied. Ignored if cursor is set.

limit
integer<int64>
default:25

Maximum episodes per page.

Required range: 1 <= x <= 100
include
enum<string>[] | null

Heavy relations to embed in each episode (comma-separated). transcript is the dialogue transcript; segments and clips are the AI-derived sets; all means everything available at the chosen milestone. A field is only valid when its data is guaranteed at the milestone (transcript→transcribed, segments→segmented, clips→fully_ingested); requesting one earlier is a 422.

Available options:
transcript,
segments,
clips,
all

Response

OK

data
object[] | null
required

List of results

has_more
boolean
required

Whether more results exist

cursor
string

Pass to next request for more results