curl -X POST \
-H "X-API-Key: $PARTICLE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://podcasts.apple.com/us/podcast/hard-fork/id1528594034"
}' \
"https://api.particle.pro/v1/podcasts/requests"{
"platform": "apple",
"platform_id": "<string>",
"state": "requested",
"url": "<string>",
"detail": "<string>",
"id": "<string>",
"indexed_at": "2023-11-07T05:31:56Z",
"podcast": {
"id": "<string>",
"title": "<string>",
"best_rank": {
"captured_at": "2023-11-07T05:31:56Z",
"chart_type": "top_podcasts",
"rank": 123,
"source": "apple",
"category_slug": "<string>",
"country": "<string>"
},
"image_url": "<string>",
"popularity": 123,
"publisher": {
"id": "<string>",
"name": "<string>",
"slug": "<string>"
},
"slug": "<string>"
},
"reason": "<string>",
"requested_at": "2023-11-07T05:31:56Z",
"title": "<string>"
}{
"platform": "apple",
"platform_id": "<string>",
"state": "requested",
"url": "<string>",
"detail": "<string>",
"id": "<string>",
"indexed_at": "2023-11-07T05:31:56Z",
"podcast": {
"id": "<string>",
"title": "<string>",
"best_rank": {
"captured_at": "2023-11-07T05:31:56Z",
"chart_type": "top_podcasts",
"rank": 123,
"source": "apple",
"category_slug": "<string>",
"country": "<string>"
},
"image_url": "<string>",
"popularity": 123,
"publisher": {
"id": "<string>",
"name": "<string>",
"slug": "<string>"
},
"slug": "<string>"
},
"reason": "<string>",
"requested_at": "2023-11-07T05:31:56Z",
"title": "<string>"
}{
"detail": "Property foo is required but is missing.",
"error_code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"resolve": {
"message": "<string>",
"action": "<string>",
"endpoint": "<string>",
"method": "<string>",
"url": "<string>"
},
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example"
}Request a podcast we don't index
Asks us to index a show: pass its Apple Podcasts, Spotify or YouTube link, or its RSS feed URL. Free. Returns 202 with a new request in state requested. Returns 200 when you have asked for the show before (your existing request), or when we already index it (no request is created; podcast names the show). Within a minute or two, automatic screening decides an English-language show from Apple Podcasts or an RSS feed: it is added (state indexed, with the podcast; its last two weeks of episodes arrive over the following hours) or rejected (state rejected, with a reason) when it is content we do not index, such as audiobooks, guided meditation, children’s story time, language lessons or machine-generated shows. A show screening cannot decide, such as a Spotify or YouTube link or a show not in English, goes to our team (state in_review). Poll GET /v1/podcasts/requests/ for the outcome. Organizations asking for the same show share one request. An organization may request 50 new shows in any 24 hours; past that, 429 rate_limit_exceeded with Retry-After and the time you can request more. 422 when the value is not a show link. A retry is safe without an Idempotency-Key: asking again for a show returns your existing request and does not count toward the limit.
curl -X POST \
-H "X-API-Key: $PARTICLE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://podcasts.apple.com/us/podcast/hard-fork/id1528594034"
}' \
"https://api.particle.pro/v1/podcasts/requests"{
"platform": "apple",
"platform_id": "<string>",
"state": "requested",
"url": "<string>",
"detail": "<string>",
"id": "<string>",
"indexed_at": "2023-11-07T05:31:56Z",
"podcast": {
"id": "<string>",
"title": "<string>",
"best_rank": {
"captured_at": "2023-11-07T05:31:56Z",
"chart_type": "top_podcasts",
"rank": 123,
"source": "apple",
"category_slug": "<string>",
"country": "<string>"
},
"image_url": "<string>",
"popularity": 123,
"publisher": {
"id": "<string>",
"name": "<string>",
"slug": "<string>"
},
"slug": "<string>"
},
"reason": "<string>",
"requested_at": "2023-11-07T05:31:56Z",
"title": "<string>"
}{
"platform": "apple",
"platform_id": "<string>",
"state": "requested",
"url": "<string>",
"detail": "<string>",
"id": "<string>",
"indexed_at": "2023-11-07T05:31:56Z",
"podcast": {
"id": "<string>",
"title": "<string>",
"best_rank": {
"captured_at": "2023-11-07T05:31:56Z",
"chart_type": "top_podcasts",
"rank": 123,
"source": "apple",
"category_slug": "<string>",
"country": "<string>"
},
"image_url": "<string>",
"popularity": 123,
"publisher": {
"id": "<string>",
"name": "<string>",
"slug": "<string>"
},
"slug": "<string>"
},
"reason": "<string>",
"requested_at": "2023-11-07T05:31:56Z",
"title": "<string>"
}{
"detail": "Property foo is required but is missing.",
"error_code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"resolve": {
"message": "<string>",
"action": "<string>",
"endpoint": "<string>",
"method": "<string>",
"url": "<string>"
},
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example"
}Authorizations
Pass your API key in the X-API-Key header (recommended).
Body
A link to the show: its Apple Podcasts, Spotify or YouTube page (an Apple episode link names its show too), a spotify:show: URI, or its RSS feed URL.
1 - 2048Response
Nothing new to request: your existing request for the show, or the show we already index.
Where the link points: an Apple Podcasts, Spotify or YouTube show, or (rss) any other URL, taken as the show's feed.
apple, spotify, youtube, rss The show's identifier on that platform: the Apple Podcasts id, Spotify show id, YouTube channel id or handle, or the feed URL.
requested: waiting for automatic screening, which usually takes a minute or two. in_review: the show did not qualify for automatic screening (no RSS feed in the link, not in English, ...) and our team will add or reject it; reason says why. indexed: the show is in the catalogue; podcast names it. rejected: we will not index it; reason says why.
requested, in_review, indexed, rejected The show link as you sent it.
The reason in a sentence, for people.
The request's ID, for GET /v1/podcasts/requests/{id}. Organizations asking for the same show share it. Absent when no request was needed because we already index the show: podcast is then set.
When the show was indexed.
The show, once it is indexed. Its slug works with every podcast endpoint.
Show child attributes
Show child attributes
Why a request is in review or rejected, as a stable code. In review: no_feed, not_english, not_found_in_podcast_index, dead_feed, previously_removed, podcast_guid_collision, ai_generated_suspected, screening_failed, radio_rebroadcast, content_type_uncertain. Rejected: audiobook, guided_audio, non_speech_ambient, subliminal, language_instruction, kids_story, sermon_worship, low_value_publisher, ai_generated, content_farm, syndication_spam, brand_impersonation, removed.
When you asked for the show.
The show's title, when we can read it from the link before indexing it.
Was this page helpful?