← The evidence ledger
Evidence row 427415
Observed , by sync.x402_bazaar/1.
- Kind
- listing
- About
- source_record x402_bazaar:https://api.particle.pro/v1/podcasts/episodes/search
- Recorded
- Previous row
- #67972
- Body SHA-256
- 7ae2af54e929b647965f0429086d8b42b8b5bccbe83a7162091c39386293ed82
- Leaf
- 0x57db2c2c85a59f9e8b3de51104d8e5eb15668b9ac8aaa5cc94c376615c9688c6
What was observed
{
"endpoints": [
[
"x402",
"https://api.particle.pro/v1/podcasts/episodes/search"
]
],
"name": "Particle Pro",
"owner_address": "0x59f3a6dcb6f482c53872dd8f8f9e1f9161a1c5f7",
"raw": {
"accepts": [
{
"amount": "30000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 300,
"network": "eip155:8453",
"payTo": "0x59f3a6dcb6f482c53872dd8f8f9e1f9161a1c5f7",
"scheme": "exact"
}
],
"description": "Search podcast episode content. To find podcasts (shows) by name or topic, use /v1/podcasts/search?q=….",
"extensions": {
"bazaar": {
"info": {
"input": {
"method": "GET",
"queryParams": {
"language": "fr",
"since": "2024-01-01",
"until": "2024-06-01"
},
"type": "http"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"properties": {
"company_id": {
"description": "Optional company slug, domain, or ID. Resolves to the company's linked entity and applies as a filter.",
"type": "string"
},
"context": {
"description": "Lines of surrounding dialogue around each matched line (1-15, default 1). Widens each match's transcript window in place — request more context instead of fetching the full transcript. Window size stays bounded even at the maximum. Ignored when format=compact.",
"format": "int64",
"type": "integer"
},
"cursor": {
"description": "Opaque cursor from a previous response.",
"type": "string"
},
"entity_id": {
"description": "Optional entity or person slug or ID. Filters results to episodes featuring this entity. A person with no linked entity matches the episodes they speak in. A slug that names both an entity and a person means the entity; pass the person's ID to filter by the person. For 'every line about X', use /v1/podcasts/mentions instead.",
"type": "string"
},
"entity_type": {
"description": "Optional entity category slug. Filters to episodes that *mention* any entity in that category (e.g. 'company', 'school', 'book'). Speakers are always people, so this filter only narrows mentioned entities. Cannot be combined with 'role'. Ignored when entity_id resolves to a specific entity. See GET /v1/entities/types for the available slugs.",
"type": "string"
},
"episode_id": {
"description": "Filter to a specific episode by slug or ID.",
"type": "string"
},
"format": {
"description": "Response shape. 'full' (default) carries each match's bounded dialogue windows and overlapping clips. 'compact' omits windows and clips and skips the transcript load and line scoring that produce them, so the page is a fraction of the size and returns sooner: each match keeps its episode, its segment (id, title, description, summary, bounds) and its relevance score. Use it to screen many results — a fan-out over companies, themes, or dates — and fetch dialogue only for the matches that survive, via GET /v1/podcasts/segments/{id}/transcript or a full-format search narrowed with episode_id.",
"enum": [
"full",
"compact"
],
"type": "string"
},
"guest_capacity": {
"description": "Only segments of episodes with a guest who knows their field in this capacity, such as executive_founder for founders. It narrows the other filters; an everyday word for a capacity passed as guest_occupation (founders, politicians) lands here too.",
"enum": [
"researcher",
"licensed_professional",
"practitioner",
"executive_founder",
"public_official",
"journalist_analyst",
"creator_entertainer",
"athlete_coach",
"clergy",
"firsthand",
"layperson"
],
"type": "string"
},
"guest_field": {
"description": "Only segments of episodes with a guest listed under this ANZSRC 2020 field of research (code, slug, or title).",
"type": "string"
},
"guest_in_field": {
"description": "Only segments of episodes with a guest speaking within their field (the guest the other guest_ filters select, when given).",
"type": "boolean"
},
"guest_occupation": {
"description": "Only segments of episodes with a guest listed under this SOC 2018 or ISCO-08 occupation (code, slug, or title), including a SOC group or everyday name such as physicians or doctors. A word with no occupation filters by the field of research or capacity it names: oncologists is field 3211, founders is guest_capacity=executive_founder.",
"type": "string"
},
"guest_practicing": {
"description": "Only segments of episodes with a guest who still works in guest_occupation, a SOC 2018 occupation or group.",
"type": "boolean"
},
"guest_seniority": {
"description": "Only segments of episodes with a guest at this seniority or above.",
"enum": [
"professional",
"senior",
"distinguished"
],
"type": "string"
},
"guest_standing": {
"description": "Only segments of episodes with a guest whose standing is recognized this way.",
"enum": [
"established",
"self_described",
"unverified"
],
"type": "string"
},
"keyword_match": {
"description": "How unquoted keyword_search terms are applied. 'required' (default) filters to segments containing every term, so results are guaranteed to contain what you typed — this also constrains semantic_search, making a hybrid query an intersection of the two. 'ranked' instead lets unquoted terms only boost BM25 relevance without excluding anything, which widens recall for loose bag-of-words queries but returns segments that may contain none of them. Quoted phrases are unaffected: they filter in BOTH modes, so to relax a phrase remove its quotes. Ignored when keyword_search is empty.",
"enum": [
"required",
"ranked"
],
"type": "string"
},
"keyword_search": {
"description": "BM25 lexical search over dialogue. Use when an exact token must appear verbatim — tickers, drug names, product codes. By default every token must appear somewhere in the matched segment (see keyword_match). Wrap any token sequence in double quotes (e.g. \"machine learning\") to additionally require those words adjacent and in order in the segment's spoken dialogue — a speaker's own name is not indexed as dialogue, so quoting a person's name finds segments where the name appears in what was said, not segments they speak in. Adjacency spans consecutive lines, so a phrase may rarely straddle a line break. Multiple quoted phrases AND together (e.g. \"central bank\" \"interest rates\"). There is no boolean OR — a bare OR is treated as an ordinary word, so pass alternatives as separate requests.",
"type": "string"
},
"language": {
"description": "Restrict to episodes of podcasts in this language (ISO 639-1 code, e.g. 'fr'). Matches the podcast's primary language subtag, so 'fr' covers 'fr-FR'.",
"type": "string"
},
"limit": {
"description": "Results per page (1-100, default 25).",
"format": "int64",
"type": "integer"
},
"podcast_id": {
"description": "Podcast slug, internal ID, or numeric iTunes ID.",
"type": "string"
},
"role": {
"description": "How the entity must relate to the episode. Speaking roles: 'guest', 'host', 'panelist', 'correspondent', or 'speaker' for any of them. 'mention' means the entity is talked about rather than speaking. Omit to match both. Matches the role values on /v1/podcasts/episodes.",
"enum": [
"guest",
"host",
"panelist",
"correspondent",
"speaker",
"mention"
],
"type": "string"
},
"semantic_search": {
"description": "Vector-similarity search by meaning. Express the query the way you'd describe the topic to a colleague — paraphrase tolerant, finds segments that express the same idea in different vocabulary. Combine with keyword_search for hybrid ranking. Describe a topic, not a name: to find a specific person or company, filter with entity_id / company_id (or use /v1/podcasts/mentions for every line about them) — and for an exact token like a ticker, use keyword_search.",
"type": "string"
},
"since": {
"description": "Only segments from episodes published after this date.",
"type": "string"
},
"sort": {
"description": "Sort order. Defaults to relevance.",
"enum": [
"relevance",
"recency"
],
"type": "string"
},
"speaker": {
"description": "Optional person slug or ID (a person's entity slug or ID works too). Keeps only segments in which this person speaks a line, and only their lines can be a window's match: 'did X say Y' rather than entity_id's 'Y came up in an episode with X'. With keyword_search, the person's own lines in the segment must carry every quoted phrase, and every unquoted term under keyword_match=required; a phrase may run across their consecutive lines but never into someone else's. Only speaking roles count: a clip of the person played on another show (a soundbite) is not them speaking, so their original turns up and its replays do not. With format=compact the page keeps the same shape and the same filtering, but loads transcripts to apply it. Retrieval narrows to the person's episodes before the line check, so lines of theirs that rank below other segments of those episodes can be missed: an empty page does not prove they never said it. Narrow with podcast_id, episode_id, since or until, or try semantic_search. Cannot be combined with the guest_ filters.",
"type": "string"
},
"type": {
"description": "Segment type filter.",
"enum": [
"INTRO",
"PERSONAL_BANTER",
"TOPIC_DISCUSSION",
"INTERVIEW",
"TRANSITION",
"AD",
"OUTRO"
],
"type": "string"
},
"until": {
"description": "Only segments from episodes published on or before this date. A bare date includes that whole day.",
"type": "string"
}
},
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
},
"lastUpdated": "2026-10-22T18:03:05.006Z",
"quality": {
"l30DaysTotalCalls": 1,
"l30DaysUniquePayers": 1,
"lastCalledAt": "2026-10-22T18:03:04.577Z"
},
"resource": "https://api.particle.pro/v1/podcasts/episodes/search",
"serviceName": "Particle Pro",
"tags": [
"podcast episode search",
"podcasts",
"media intelligence",
"particle pro"
],
"type": "http",
"x402Version": 2
},
"source": "x402_bazaar",
"summary": "Search podcast episode content. To find podcasts (shows) by name or topic, use /v1/podcasts/search?q=…."
}What the leaf hashes
{"body":"7ae2af54e929b647965f0429086d8b42b8b5bccbe83a7162091c39386293ed82","id":427415,"kind":"listing","method":"sync.x402_bazaar/1","observed_us":1793086351541091,"prev":67972,"subject":"x402_bazaar:https://api.particle.pro/v1/podcasts/episodes/search","subject_kind":"source_record"}Proof
Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.