Look up episodes by external identifier
Look up episodes by external identifier. Resolves one or more external episode identifiers to Particle episodes.
10000 (raw units)
price
2
calls / 30d
1
unique payers
2026-09-06
updated
Provider
api.particle.pro · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x59f3a6dcb6f482c53872dd8f8f9e1f9161a1c5f7",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "10000",
"maxTimeoutSeconds": 300
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"method": "GET",
"queryParams": {
"identifier": [
"1000785846210",
"1000786587166"
],
"platform": "apple"
},
"type": "http"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"properties": {
"identifier": {
"description": "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.",
"items": {
"type": "string"
},
"type": "array"
},
"platform": {
"description": "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.",
"type": "string"
}
},
"required": [
"identifier",
"platform"
],
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
}Use it
curl
curl "https://api.particle.pro/v1/podcasts/episodes/lookup" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://api.particle.pro/v1/podcasts/episodes/lookup");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://api.particle.pro/v1/podcasts/episodes/lookup")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/11819.json, and this resource appears in /discovery/resources and /discovery/search.