curl -H "X-API-Key: $PARTICLE_API_KEY" \
"https://api.particle.pro/v1/podcasts/episodes/lookup?platform=apple&identifier=1000785846210%2C1000786587166"{
"results": [
{
"identifier": "<string>",
"episode": {
"id": "<string>",
"title": "<string>",
"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>"
},
"published_at": "2023-11-07T05:31:56Z",
"slug": "<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"
}Look up episodes by external identifier
Resolves one or more external episode identifiers to Particle episodes. Eight kinds are accepted. Platform IDs: Apple Podcasts episode IDs (the ?i= value in an Apple Podcasts URL) and YouTube video IDs. Feed and index IDs: the episode’s RSS guid — the identifier the publisher’s own feed carries, and the one most podcast tooling keys on — and a podcastindex episode ID. Hosting-platform IDs, read from the episode’s audio URL: megaphone, omny, acast and art19. Pass platform once and a comma-separated list of identifiers (up to 100 per call). A full platform URL is accepted in place of a bare ID and the identifier is parsed out of it — an Apple Podcasts episode URL, or a YouTube watch, youtu.be, /live/, /shorts/ or /embed/ URL. Guids and hosting-platform IDs are matched exactly as supplied and never parsed, since a guid is whatever string the feed carries and is often itself a URL. Because identifiers are comma-separated, a guid that itself contains a comma cannot be expressed here — about 1.2% of episodes, almost all of them SoundCloud-hosted, whose guids take the form tag:soundcloud,2010:tracks/123; look those episodes up by another identifier. Each result echoes the input identifier alongside the matched episode and its podcast; unresolved identifiers omit the episode field entirely so bulk callers can correlate inputs and outputs by key presence without doing a separate join. This is the episode-level counterpart to GET /v1/podcasts/lookup. Coverage is partial and differs by identifier, so a miss is not an error: Apple exposes only the most recent episodes of each show, so older back-catalogue episodes may not resolve; YouTube resolves any video already discovered for an episode; guid is the broadest at roughly 89% of episodes; and a hosting-platform ID resolves only for episodes served by that host.
curl -H "X-API-Key: $PARTICLE_API_KEY" \
"https://api.particle.pro/v1/podcasts/episodes/lookup?platform=apple&identifier=1000785846210%2C1000786587166"{
"results": [
{
"identifier": "<string>",
"episode": {
"id": "<string>",
"title": "<string>",
"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>"
},
"published_at": "2023-11-07T05:31:56Z",
"slug": "<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).
Query Parameters
What kind of identifier you are resolving. 'apple' (alias 'itunes') resolves Apple Podcasts episode IDs — the ?i= value in an Apple Podcasts URL. 'youtube' resolves YouTube video IDs against the videos discovered for each episode. 'guid' resolves the episode's RSS guid, the identifier carried in the publisher's own feed and the one most podcast tooling keys on. 'podcastindex' resolves a PodcastIndex episode ID. 'megaphone', 'omny', 'acast' and 'art19' resolve a hosting platform's own episode ID, read from the episode's audio URL. Platform slugs must be ones reported on external-links responses; 'rss' is not accepted here because a feed URL identifies a show, not an episode.
"apple"
One or more episode identifiers to resolve. Pass a comma-separated list to look up many at once (max 100 per call). A full platform URL is accepted in place of a bare identifier and the ID is parsed out of it: for apple/itunes an Apple Podcasts episode URL (the ?i= value); for youtube a watch?v=, youtu.be/, /live/, /shorts/ or /embed/ URL. guid, podcastindex and hosting-platform values are used as given — a guid is whatever string the feed carries, which is often itself a URL, so it is never parsed. The identifier is echoed back exactly as supplied, not normalized.
1 - 100 elements["1000785846210", "1000786587166"]
Response
OK
One result per unique input identifier, in request order
Show child attributes
Show child attributes
Was this page helpful?