curl -H "X-API-Key: $PARTICLE_API_KEY" \
"https://api.particle.pro/v1/podcasts/episodes/{id}/transcript/words"{
"episode_id": "<string>",
"has_more": true,
"words": [
{
"end_seconds": 123,
"start_seconds": 123,
"text": "<string>",
"speaker": "<string>",
"type": "<string>"
}
],
"cursor": "<string>",
"language": "<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"
}{
"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"
}Get word-level transcript
Returns the word-level timestamped transcript for a podcast episode. Use start/end to extract a time range, limit/cursor to paginate (defaults to all words), and exclude_spacing=true to drop the inter-word whitespace tokens that NLP/LLM consumers don’t need.
curl -H "X-API-Key: $PARTICLE_API_KEY" \
"https://api.particle.pro/v1/podcasts/episodes/{id}/transcript/words"{
"episode_id": "<string>",
"has_more": true,
"words": [
{
"end_seconds": 123,
"start_seconds": 123,
"text": "<string>",
"speaker": "<string>",
"type": "<string>"
}
],
"cursor": "<string>",
"language": "<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"
}{
"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).
Path Parameters
Episode slug or ID
Query Parameters
Start of the time range in seconds. Returns every word that overlaps the range.
End of the time range in seconds. Returns every word that overlaps the range. Defaults to the end of the episode.
Max words per page. Omit to return all matching words.
1 <= x <= 5000Opaque pagination cursor from a previous response.
Drop type:"spacing" tokens (whitespace between words). Pass true for NLP, search, and LLM consumption — roughly halves the payload. Leave false for caption/karaoke rendering where inter-word timing matters.
Was this page helpful?