Sets two to five entities’ or companies’ share of voice by one speaker statement characteristics axis side by side, over the same window, speakers and filter: how NVIDIA is spoken of next to AMD and Intel. Each subject is exactly the split GET /v1/podcasts/mentions/share-of-voice returns for it with by set to the axis: one group per label, each a share of the subject’s scored_mentions and flagged low_sample below 20. Subjects are returned in the order given. A subject that matches nothing, or a company with no linked entity, is a 422 naming it. by defaults to sentiment; breakdown splits each label group by a second axis. For which professions say it, use the share of voice with by=occupation, one subject at a time.
Two to five company slugs, domains, or IDs, comma-separated, in the order to compare them. Each resolves to the company's linked entity. One of entity_id or company_id is required.
Not accepted: speaker statement characteristics are read on an entity's or a company's mentions, not on the lines that say a keyword, so passing it returns 422.
The speaker statement characteristics axis whose labels each subject's lines are grouped by: by=sentiment is how negatively or positively each subject was spoken of.
Also split each label group's lines by their label on this second axis: by=temporal_orientation&breakdown=certainty is how sure each subject's predictions are. Must differ from by.
Count only mentions said a certain way, for every subject: speaker_statement_characteristics[temporal_orientation]=future compares how each subject's predictions lean. Each key is an axis (sentiment, certainty, specificity, temporal_orientation) and its value one or more of that axis's labels, comma-separated: labels on one axis match any of them, and axes combine with AND.
One split per subject, in the order requested, each exactly what GET /v1/podcasts/mentions/share-of-voice returns for that subject with the same parameters.
Opaque version of the speaker statement characteristics every subject read. Absent when no subject read any, or when they read different versions: compare subjects only when it is present.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Particle API","colors":{"primary":"#0369a1","light":"#0369a1","dark":"#0369a1"},"logo":{"light":"https://mintcdn.com/particle-c40da4e2/tk5mmLn_iJIxNhbI/logo/light.svg?fit=max\u0026auto=format\u0026n=tk5mmLn_iJIxNhbI\u0026q=85\u0026s=a659784e597694177292b154cc1808f4","dark":"https://mintcdn.com/particle-c40da4e2/i9nEIhB1W5dtahvW/logo/dark.svg?fit=max\u0026auto=format\u0026n=i9nEIhB1W5dtahvW\u0026q=85\u0026s=53bcea9f9026f0bf0083447adbc1d006"},"favicon":"https://mintcdn.com/particle-c40da4e2/tk5mmLn_iJIxNhbI/favicon.png?fit=max\u0026auto=format\u0026n=tk5mmLn_iJIxNhbI\u0026q=85\u0026s=f4b42e6e90da406c6f1e6b4b8615113c","api":{"examples":{"languages":["curl","bash"],"autogenerate":false}},"appearance":{"default":"dark","strict":true},"background":{"color":{"dark":"#0C0D0D"}},"navbar":{"links":[{"href":"https://status.particle.pro","label":"Status"},{"href":"mailto:api@particle.pro","label":"Support"}],"primary":{"type":"button","label":"API Dashboard","href":"https://platform.particle.pro"}},"footer":{"socials":{"x":"https://x.com/particle_news","github":"https://github.com/particlepro","linkedin":"https://linkedin.com/company/particle-news"}},"fonts":{"family":"Geist","weight":400},"styling":{"codeblocks":"dark","latex":true},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","cursor","vscode",{"title":"Connect Particle Pro MCP","description":"Install the Particle Pro MCP server in your AI client","icon":"plug","href":"/mcp/quickstart"},{"title":"Set up an AI agent","description":"Hand your agent agents.md and it connects itself","icon":"robot","href":"https://api.particle.pro/agents.md"}],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"particle-c40da4e2","hasAudioNarration":false,"actualSubdomain":"particle-c40da4e2","customDomains":["docs.particle.pro"],"gitSource":{"type":"github","owner":"mongoosehq","repo":"api","deployBranch":"main","contentDirectory":"server/particlepro/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae06c50898aa086d1dcbb05","collectionId":"32232ee3-78ae-4649-905e-9ac19f07b443","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae06c50898aa086d1dcbb05"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae07975bd7692f0e3be1c82","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"API reference","count":168},{"language":"default","tag":"Guides","count":126},{"language":"default","tag":"Errors","count":70},{"language":"default","tag":"Podcasts","count":58},{"language":"default","tag":"MCP server","count":56},{"language":"default","tag":"Tools","count":49},{"language":"default","tag":"Billing \u0026 subscription","count":30},{"language":"default","tag":"Alerts","count":27},{"language":"default","tag":"People","count":21},{"language":"default","tag":"Podcast Episodes","count":16}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"api@particle.news","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html.dark #mdx-content,html.dark #page-title,html.dark h1,html.dark h2,html.dark h3{color:rgba(255,255,255,.9)}html.dark #sidebar a,html.dark .accordion,html.dark [class*=tooltip]{color:rgba(255,255,255,.6)}html.dark .method-pill,html.dark [class*=admonition] p,html.dark [class*=breadcrumb],html.dark [class*=callout] p,html.dark [class*=eyebrow]{color:rgba(255,255,255,.5)}html.dark footer,html.dark footer *{color:rgba(255,255,255,.2)}html.dark .accordion,html.dark .card,html.dark .code-block,html.dark .steps,html.dark .tabs{border-color:rgba(255,255,255,.15)}html.dark .card{border-radius:.75rem}html.dark .code-block{border-radius:.5rem}html.dark .code-block pre{background-color:#1a1b1b}.dark\\:border-white\\/\\[0\\.07\\]:is(.dark *){border-color:rgba(255,255,255,.15)}html.dark #sidebar{background-color:#0c0d0d;border-color:rgba(255,255,255,.15)}html.dark,html.dark *{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}html.dark ::-webkit-scrollbar,html.dark::-webkit-scrollbar{width:6px;height:6px}html.dark ::-webkit-scrollbar-track,html.dark::-webkit-scrollbar-track{background:0 0}html.dark ::-webkit-scrollbar-thumb,html.dark::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:3px}html.dark ::-webkit-scrollbar-thumb:hover,html.dark::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.3)}"}],"page":{"pagePath":"api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of","slug":"/api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of","pageMetadata":{"title":"Compare how subjects are spoken of","description":"Sets two to five entities' or companies' share of voice by one speaker statement characteristics axis side by side, over the same window, speakers and filter: how NVIDIA is spoken of next to AMD and Intel. Each subject is exactly the split GET /v1/podcasts/mentions/share-of-voice returns for it with by set to the axis: one group per label, each a share of the subject's scored_mentions and flagged low_sample below 20. Subjects are returned in the order given. A subject that matches nothing, or a company with no linked entity, is a 422 naming it. by defaults to sentiment; breakdown splits each label group by a second axis. For which professions say it, use the share of voice with by=occupation, one subject at a time.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/mentions/share-of-voice/compare","href":"/api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Sets two to five entities’ or companies’ share of voice by one speaker statement characteristics axis side by side, over the same window, speakers and filter: how NVIDIA is spoken of next to AMD and Intel. Each subject is exactly the split GET /v1/podcasts/mentions/share-of-voice returns for it with by set to the axis: one group per label, each a share of the subject’s scored_mentions and flagged low_sample below 20. Subjects are returned in the order given. A subject that matches nothing, or a company with no linked entity, is a 422 naming it. by defaults to sentiment; breakdown splits each label group by a second axis. For which professions say it, use the share of voice with by=occupation, one subject at a time.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Compare how subjects are spoken of","description":"Sets two to five entities' or companies' share of voice by one speaker statement characteristics axis side by side, over the same window, speakers and filter: how NVIDIA is spoken of next to AMD and Intel. Each subject is exactly the split GET /v1/podcasts/mentions/share-of-voice returns for it with by set to the axis: one group per label, each a share of the subject's scored_mentions and flagged low_sample below 20. Subjects are returned in the order given. A subject that matches nothing, or a company with no linked entity, is a 422 naming it. by defaults to sentiment; breakdown splits each label group by a second axis. For which professions say it, use the share of voice with by=occupation, one subject at a time.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/mentions/share-of-voice/compare","href":"/api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Sets two to five entities' or companies' share of voice by one speaker statement characteristics axis side by side, over the same window, speakers and filter: how NVIDIA is spoken of next to AMD and Intel. Each subject is exactly the split GET /v1/podcasts/mentions/share-of-voice returns for it with by set to the axis: one group per label, each a share of the subject's scored_mentions and flagged low_sample below 20. Subjects are returned in the order given. A subject that matches nothing, or a company with no linked entity, is a 422 naming it. by defaults to sentiment; breakdown splits each label group by a second axis. For which professions say it, use the share of voice with by=occupation, one subject at a time.","operationId":"compare-mentions-share-of-voice","parameters":["4153fe34-ffa1-4940-94a9-0bc5b9c6d76c","13501c98-c6dd-4077-b847-874839e60f36","a1c8b64c-02c0-47f6-8ec7-acf01bb05dc2","0d923e71-1851-4a8a-8a0c-6197eccfb2ac","d5601015-b252-4f37-96df-44694366a501","8181dbf0-ca13-4edf-b27f-24a1526d1875","4476a31d-5b5a-4707-906a-3b4c1b4cd18a","fc5e83e2-9a12-4fd7-bec1-970f06b82712","86f53253-e3c0-4ca1-9653-3c42178ea905","88bd687b-5110-4fc7-9c8c-47cbf4c4660a","0e48c507-ef4c-480d-9f12-607aafe3a39a","6911d551-3df8-42b4-a29f-bfb0063017a2","305d355f-6871-4183-8f79-b27bad4ea3a2","ffb671f4-4481-4d57-86af-df1d5f88e32f"],"responses":{"200":"d39d9cd9-7e3e-46e5-82fe-adc9ff31fe07","default":"0a88a67e-a378-49a0-85f4-8ff01c45335b"},"summary":"Compare how subjects are spoken of","tags":["Podcast Episode Search","tier:standard"],"x-codeSamples":[{"label":"cURL","lang":"curl","source":"curl -H \"X-API-Key: $PARTICLE_API_KEY\" \\\n \"https://api.particle.pro/v1/podcasts/mentions/share-of-voice/compare?by=sentiment\u0026speakers=all\""}],"x-cost-weight":1,"x-pagination":"none","x-tier":"standard","method":"get","type":"path","servers":["305202c7-9b3b-4e64-80d7-c552cdc6c008"],"security":["6eaf9b3e-ecc8-4824-9f49-a90cc24330bb","4a92ee73-3abc-4d82-a0cf-459f8eeb6376"],"path":"/v1/podcasts/mentions/share-of-voice/compare","baseUrlOptions":["https://api.particle.pro"],"title":"Compare how subjects are spoken of","codeSamples":[{"label":"cURL","lang":"curl","source":"curl -H \"X-API-Key: $PARTICLE_API_KEY\" \\\n \"https://api.particle.pro/v1/podcasts/mentions/share-of-voice/compare?by=sentiment\u0026speakers=all\""}],"requestExampleLanguages":["bash","bash"],"requiredOnlyExamples":false,"disableCodeSampleGeneration":true,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"4153fe34-ffa1-4940-94a9-0bc5b9c6d76c":{"description":"Two to five entity slugs (e.g., 'sam-altman') or IDs, comma-separated, in the order to compare them. One of entity_id or company_id is required.","explode":false,"in":"query","name":"entity_id","schema":{"oneOf":[{"description":"Two to five entity slugs (e.g., 'sam-altman') or IDs, comma-separated, in the order to compare them. One of entity_id or company_id is required.","examples":[["sam-altman","dario-amodei"]],"items":{"type":"string","uniqueKey":"oneOf.0.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"oneOf.0","typeLabel":"string[]"},{"description":"Two to five entity slugs (e.g., 'sam-altman') or IDs, comma-separated, in the order to compare them. One of entity_id or company_id is required.","examples":[["sam-altman","dario-amodei"]],"items":{"type":"string"},"type":"null","uniqueKey":"oneOf.1","typeLabel":"null"}],"uniqueKey":"","typeLabel":"string[] | null"}},"13501c98-c6dd-4077-b847-874839e60f36":{"description":"Two to five company slugs, domains, or IDs, comma-separated, in the order to compare them. Each resolves to the company's linked entity. One of entity_id or company_id is required.","explode":false,"in":"query","name":"company_id","schema":{"oneOf":[{"description":"Two to five company slugs, domains, or IDs, comma-separated, in the order to compare them. Each resolves to the company's linked entity. One of entity_id or company_id is required.","examples":[["nvidia","amd","intel"]],"items":{"type":"string","uniqueKey":"oneOf.0.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"oneOf.0","typeLabel":"string[]"},{"description":"Two to five company slugs, domains, or IDs, comma-separated, in the order to compare them. Each resolves to the company's linked entity. One of entity_id or company_id is required.","examples":[["nvidia","amd","intel"]],"items":{"type":"string"},"type":"null","uniqueKey":"oneOf.1","typeLabel":"null"}],"uniqueKey":"","typeLabel":"string[] | null"}},"a1c8b64c-02c0-47f6-8ec7-acf01bb05dc2":{"description":"Not accepted: speaker statement characteristics are read on an entity's or a company's mentions, not on the lines that say a keyword, so passing it returns 422.","explode":false,"in":"query","name":"keyword_search","schema":{"description":"Not accepted: speaker statement characteristics are read on an entity's or a company's mentions, not on the lines that say a keyword, so passing it returns 422.","maxLength":500,"type":"string","uniqueKey":"","typeLabel":"string"}},"0d923e71-1851-4a8a-8a0c-6197eccfb2ac":{"description":"The speaker statement characteristics axis whose labels each subject's lines are grouped by: by=sentiment is how negatively or positively each subject was spoken of.","explode":false,"in":"query","name":"by","schema":{"default":"sentiment","description":"The speaker statement characteristics axis whose labels each subject's lines are grouped by: by=sentiment is how negatively or positively each subject was spoken of.","enum":["sentiment","certainty","specificity","temporal_orientation"],"type":"string","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"d5601015-b252-4f37-96df-44694366a501":{"description":"Attribute every speaker's lines, hosts included, or guests' and panelists' only.","explode":false,"in":"query","name":"speakers","schema":{"default":"all","description":"Attribute every speaker's lines, hosts included, or guests' and panelists' only.","enum":["all","guests"],"type":"string","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"8181dbf0-ca13-4edf-b27f-24a1526d1875":{"description":"Restrict to mentions inside one podcast.","explode":false,"in":"query","name":"podcast_id","schema":{"description":"Restrict to mentions inside one podcast.","type":"string","uniqueKey":"","typeLabel":"string"}},"4476a31d-5b5a-4707-906a-3b4c1b4cd18a":{"description":"Restrict to mentions on podcasts attributed to one publisher (network), by slug or ID.","explode":false,"in":"query","name":"publisher_id","schema":{"description":"Restrict to mentions on podcasts attributed to one publisher (network), by slug or ID.","type":"string","uniqueKey":"","typeLabel":"string"}},"fc5e83e2-9a12-4fd7-bec1-970f06b82712":{"description":"Mentions inside ad reads are excluded by default. Pass true to include them.","explode":false,"in":"query","name":"include_ads","schema":{"description":"Mentions inside ad reads are excluded by default. Pass true to include them.","type":"boolean","uniqueKey":"","typeLabel":"boolean"}},"86f53253-e3c0-4ca1-9653-3c42178ea905":{"description":"Only episodes published on or after this date. Defaults to 30 days before until; the window may span at most 365 days.","explode":false,"in":"query","name":"since","schema":{"description":"Only episodes published on or after this date. Defaults to 30 days before until; the window may span at most 365 days.","examples":["2026-09-01"],"type":"string","uniqueKey":"","typeLabel":"string"}},"88bd687b-5110-4fc7-9c8c-47cbf4c4660a":{"description":"Only episodes published on or before this date. Defaults to now.","explode":false,"in":"query","name":"until","schema":{"description":"Only episodes published on or before this date. Defaults to now.","examples":["2026-10-01"],"type":"string","uniqueKey":"","typeLabel":"string"}},"0e48c507-ef4c-480d-9f12-607aafe3a39a":{"deprecated":true,"description":"Deprecated alias of since.","explode":false,"in":"query","name":"published_after","schema":{"deprecated":true,"description":"Deprecated alias of since.","type":"string","uniqueKey":"","typeLabel":"string"}},"6911d551-3df8-42b4-a29f-bfb0063017a2":{"deprecated":true,"description":"Deprecated alias of until.","explode":false,"in":"query","name":"published_before","schema":{"deprecated":true,"description":"Deprecated alias of until.","type":"string","uniqueKey":"","typeLabel":"string"}},"305d355f-6871-4183-8f79-b27bad4ea3a2":{"description":"Also split each label group's lines by their label on this second axis: by=temporal_orientation\u0026breakdown=certainty is how sure each subject's predictions are. Must differ from by.","explode":false,"in":"query","name":"breakdown","schema":{"description":"Also split each label group's lines by their label on this second axis: by=temporal_orientation\u0026breakdown=certainty is how sure each subject's predictions are. Must differ from by.","enum":["sentiment","certainty","specificity","temporal_orientation"],"type":"string","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"ffb671f4-4481-4d57-86af-df1d5f88e32f":{"description":"Count only mentions said a certain way, for every subject: speaker_statement_characteristics[temporal_orientation]=future compares how each subject's predictions lean. Each key is an axis (sentiment, certainty, specificity, temporal_orientation) and its value one or more of that axis's labels, comma-separated: labels on one axis match any of them, and axes combine with AND.","explode":true,"in":"query","name":"speaker_statement_characteristics","schema":{"description":"Count only mentions said a certain way, for every subject: speaker_statement_characteristics[temporal_orientation]=future compares how each subject's predictions lean. Each key is an axis (sentiment, certainty, specificity, temporal_orientation) and its value one or more of that axis's labels, comma-separated: labels on one axis match any of them, and axes combine with AND.","properties":{"certainty":{"description":"The certainty labels to keep: hedged, neutral, confident. Comma-separate labels to accept any of them (hedged,confident); repeating the key accepts any of its values too.","examples":["confident","hedged,confident"],"type":"string","uniqueKey":"certainty","typeLabel":"string"},"sentiment":{"description":"The sentiment labels to keep: negative, neutral, positive. Comma-separate labels to accept any of them (negative,positive); repeating the key accepts any of its values too.","examples":["positive","negative,positive"],"type":"string","uniqueKey":"sentiment","typeLabel":"string"},"specificity":{"description":"The specificity labels to keep: vague, neutral, specific. Comma-separate labels to accept any of them (vague,specific); repeating the key accepts any of its values too.","examples":["specific","vague,specific"],"type":"string","uniqueKey":"specificity","typeLabel":"string"},"temporal_orientation":{"description":"The temporal_orientation labels to keep: past, present, future. Comma-separate labels to accept any of them (past,future); repeating the key accepts any of its values too.","examples":["future","past,future"],"type":"string","uniqueKey":"temporal_orientation","typeLabel":"string"}},"type":"object","uniqueKey":"","typeLabel":"object"},"style":"deepObject"}},"responses":{"d39d9cd9-7e3e-46e5-82fe-adc9ff31fe07":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"by":{"description":"The speaker statement characteristics axis whose labels every subject's groups are.","enum":["sentiment","certainty","specificity","temporal_orientation"],"type":"string","isRequired":true,"uniqueKey":"by","typeLabel":"enum\u003cstring>"},"end":{"description":"Day the window ends (UTC), excluded: the window is [start, end).","type":"string","isRequired":true,"uniqueKey":"end","typeLabel":"string"},"speakers":{"description":"Whose lines every subject's groups count: every speaker's, or guests' and panelists' only.","enum":["all","guests"],"type":"string","isRequired":true,"uniqueKey":"speakers","typeLabel":"enum\u003cstring>"},"start":{"description":"First day of the window (UTC), included.","type":"string","isRequired":true,"uniqueKey":"start","typeLabel":"string"},"subjects":{"oneOf":[{"description":"One split per subject, in the order requested, each exactly what GET /v1/podcasts/mentions/share-of-voice returns for that subject with the same parameters.","items":{"additionalProperties":false,"properties":{"attributed_mentions":{"description":"Of speaker_mentions, the lines spoken by someone with an expertise reading (and, for a guest, whose appearance read does not doubt it is them). Shares of occupations and fields are of these.","format":"int64","type":"integer","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].attributed_mentions","typeLabel":"integer\u003cint64>"},"by":{"description":"What the groups are: SOC 2018 occupations, ANZSRC 2020 fields of research, or the labels of one speaker statement characteristics axis.","enum":["occupation","field","sentiment","certainty","specificity","temporal_orientation"],"type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].by","typeLabel":"enum\u003cstring>"},"end":{"description":"Day the window ends (UTC), excluded: the window is [start, end), so a published_before date shows as the day after it.","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].end","typeLabel":"string"},"groups":{"oneOf":[{"description":"By occupation or field, the groups with the most attributed mentions, most first; a person listed under several codes counts in each, so shares can sum past 1. By an axis, one group per label in the axis's order, zero counts included.","items":{"additionalProperties":false,"properties":{"code":{"description":"The SOC 2018 or ANZSRC 2020 code, or, when by is an axis, the label (e.g. negative).","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].code","typeLabel":"string"},"episodes":{"description":"Distinct episodes they were said in.","format":"int64","type":"integer","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].episodes","typeLabel":"integer\u003cint64>"},"mentions":{"description":"Lines mentioning the entity or saying the keyword in this group. By occupation or field: attributed lines spoken by people listed under the code. By an axis: scored lines carrying the label, spoken by the speakers counted, whether or not the speaker has an expertise reading.","format":"int64","type":"integer","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].mentions","typeLabel":"integer\u003cint64>"},"share":{"description":"mentions over attributed_mentions by occupation or field, or over scored_mentions when by is an axis (0-1).","format":"double","type":"number","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].share","typeLabel":"number\u003cdouble>"},"speakers":{"description":"Distinct people who said them.","format":"int64","type":"integer","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].speakers","typeLabel":"integer\u003cint64>"},"title":{"description":"The code's title, or the label again when by is an axis.","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].title","typeLabel":"string"},"breakdown":{"oneOf":[{"description":"With breakdown, the group's scored mentions by their label on that axis, one entry per label in the axis's order.","items":{"additionalProperties":false,"properties":{"label":{"description":"The label on the breakdown axis.","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].label","typeLabel":"string"},"mentions":{"description":"The scored mentions with the label, of the group or bucket it is in.","format":"int64","type":"integer","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].mentions","typeLabel":"integer\u003cint64>"},"share":{"description":"mentions over the scored_mentions of the group or bucket it is in (0-1).","format":"double","type":"number","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].share","typeLabel":"number\u003cdouble>"},"examples":{"oneOf":[{"description":"With examples, up to that many of the group's lines with this label, strongest first: the lines that most clearly carry it. Ties go to the newest.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.id","typeLabel":"string"},"title":{"description":"Episode title","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.title","typeLabel":"string"},"podcast":{"additionalProperties":false,"properties":{"id":{"description":"Podcast ID","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.id","typeLabel":"string"},"title":{"description":"Podcast title","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.title","typeLabel":"string"},"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.best_rank.captured_at","typeLabel":"string\u003cdate-time>"},"chart_type":{"enum":["top_podcasts"],"type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.best_rank.chart_type","typeLabel":"enum\u003cstring>"},"rank":{"format":"int64","type":"integer","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.best_rank.rank","typeLabel":"integer\u003cint64>"},"source":{"enum":["apple","spotify"],"type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.best_rank.source","typeLabel":"enum\u003cstring>"},"category_slug":{"type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.best_rank.category_slug","typeLabel":"string"},"country":{"type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.best_rank.country","typeLabel":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan.","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.best_rank","typeLabel":"object"},"image_url":{"description":"Cover image URL","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.image_url","typeLabel":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.popularity","typeLabel":"number\u003cdouble>"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.publisher.id","typeLabel":"string"},"name":{"description":"Publisher name","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.publisher.name","typeLabel":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.publisher.slug","typeLabel":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known.","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.publisher","typeLabel":"object"},"slug":{"description":"Human-readable slug identifier","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.slug","typeLabel":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast","typeLabel":"object"},"published_at":{"description":"Publication date","format":"date-time","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.published_at","typeLabel":"string\u003cdate-time>"},"slug":{"description":"Human-readable slug identifier","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.slug","typeLabel":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.web_url","typeLabel":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in.","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode","typeLabel":"object"},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.end_seconds","typeLabel":"number\u003cdouble>"},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.number","typeLabel":"integer\u003cint64>"},"speaker":{"description":"Speaker name or label","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.speaker","typeLabel":"string"},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.start_seconds","typeLabel":"number\u003cdouble>"},"text":{"description":"Spoken text","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.text","typeLabel":"string"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.is_match","typeLabel":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.is_mention","typeLabel":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.matched_terms.oneOf.0.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.matched_terms.oneOf.0","typeLabel":"string[]"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.matched_terms.oneOf.1","typeLabel":"null"}],"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.matched_terms","typeLabel":"string[] | null"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.role","typeLabel":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.segment_id","typeLabel":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.speaker_statement_characteristics.certainty","typeLabel":"enum\u003cstring>"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.speaker_statement_characteristics.sentiment","typeLabel":"enum\u003cstring>"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.speaker_statement_characteristics.specificity","typeLabel":"enum\u003cstring>"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.speaker_statement_characteristics.temporal_orientation","typeLabel":"enum\u003cstring>"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews.","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.speaker_statement_characteristics","typeLabel":"object"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read.","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line","typeLabel":"object"},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].start_seconds","typeLabel":"number\u003cdouble>"},"person":{"additionalProperties":false,"properties":{"id":{"description":"Encoded Person identifier","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].person.id","typeLabel":"string"},"name":{"description":"Display name","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].person.name","typeLabel":"string"},"description":{"description":"Short description (e.g. current role), when known.","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].person.description","typeLabel":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].person.image_url","typeLabel":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].person.slug","typeLabel":"string"}},"required":["id","name"],"type":"object","description":"The person who said it.","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].person","typeLabel":"object"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].url","typeLabel":"string"}},"required":["episode","start_seconds","line"],"type":"object","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.0","typeLabel":"object[]"},{"description":"With examples, up to that many of the group's lines with this label, strongest first: the lines that most clearly carry it. Ties go to the newest.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"null","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples.oneOf.1","typeLabel":"null"}],"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX].examples","typeLabel":"object[] | null"}},"required":["label","mentions","share"],"type":"object","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.0","typeLabel":"object[]"},{"description":"With breakdown, the group's scored mentions by their label on that axis, one entry per label in the axis's order.","items":{"additionalProperties":false,"properties":{"examples":{"oneOf":[{"description":"With examples, up to that many of the group's lines with this label, strongest first: the lines that most clearly carry it. Ties go to the newest.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"array"},{"description":"With examples, up to that many of the group's lines with this label, strongest first: the lines that most clearly carry it. Ties go to the newest.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"null"}]},"label":{"description":"The label on the breakdown axis.","type":"string"},"mentions":{"description":"The scored mentions with the label, of the group or bucket it is in.","format":"int64","type":"integer"},"share":{"description":"mentions over the scored_mentions of the group or bucket it is in (0-1).","format":"double","type":"number"}},"required":["label","mentions","share"],"type":"object"},"type":"null","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown.oneOf.1","typeLabel":"null"}],"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].breakdown","typeLabel":"object[] | null"},"buckets":{"oneOf":[{"description":"The group's mentions per interval bucket, when interval is set.","items":{"additionalProperties":false,"properties":{"mentions":{"format":"int64","type":"integer","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].buckets.oneOf.0.items.[INDEX].mentions","typeLabel":"integer\u003cint64>"},"start":{"description":"First day of the bucket (UTC).","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].buckets.oneOf.0.items.[INDEX].start","typeLabel":"string"}},"required":["start","mentions"],"type":"object","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].buckets.oneOf.0.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].buckets.oneOf.0","typeLabel":"object[]"},{"description":"The group's mentions per interval bucket, when interval is set.","items":{"additionalProperties":false,"properties":{"mentions":{"format":"int64","type":"integer"},"start":{"description":"First day of the bucket (UTC).","type":"string"}},"required":["start","mentions"],"type":"object"},"type":"null","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].buckets.oneOf.1","typeLabel":"null"}],"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].buckets","typeLabel":"object[] | null"},"examples":{"oneOf":[{"description":"With examples and no breakdown, up to that many of the group's lines, strongest first: by an axis, the lines that most clearly carry the group's label; filtered by speaker_statement_characteristics, those that most clearly read the way the filter asks; otherwise the newest. Ties go to the newest. With breakdown, each breakdown label carries its own instead.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.id","typeLabel":"string"},"title":{"description":"Episode title","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.title","typeLabel":"string"},"podcast":{"additionalProperties":false,"properties":{"id":{"description":"Podcast ID","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.id","typeLabel":"string"},"title":{"description":"Podcast title","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.title","typeLabel":"string"},"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.best_rank.captured_at","typeLabel":"string\u003cdate-time>"},"chart_type":{"enum":["top_podcasts"],"type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.best_rank.chart_type","typeLabel":"enum\u003cstring>"},"rank":{"format":"int64","type":"integer","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.best_rank.rank","typeLabel":"integer\u003cint64>"},"source":{"enum":["apple","spotify"],"type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.best_rank.source","typeLabel":"enum\u003cstring>"},"category_slug":{"type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.best_rank.category_slug","typeLabel":"string"},"country":{"type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.best_rank.country","typeLabel":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan.","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.best_rank","typeLabel":"object"},"image_url":{"description":"Cover image URL","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.image_url","typeLabel":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.popularity","typeLabel":"number\u003cdouble>"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.publisher.id","typeLabel":"string"},"name":{"description":"Publisher name","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.publisher.name","typeLabel":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.publisher.slug","typeLabel":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known.","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.publisher","typeLabel":"object"},"slug":{"description":"Human-readable slug identifier","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast.slug","typeLabel":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.podcast","typeLabel":"object"},"published_at":{"description":"Publication date","format":"date-time","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.published_at","typeLabel":"string\u003cdate-time>"},"slug":{"description":"Human-readable slug identifier","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.slug","typeLabel":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode.web_url","typeLabel":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in.","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].episode","typeLabel":"object"},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.end_seconds","typeLabel":"number\u003cdouble>"},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.number","typeLabel":"integer\u003cint64>"},"speaker":{"description":"Speaker name or label","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.speaker","typeLabel":"string"},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.start_seconds","typeLabel":"number\u003cdouble>"},"text":{"description":"Spoken text","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.text","typeLabel":"string"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.is_match","typeLabel":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.is_mention","typeLabel":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.matched_terms.oneOf.0.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.matched_terms.oneOf.0","typeLabel":"string[]"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.matched_terms.oneOf.1","typeLabel":"null"}],"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.matched_terms","typeLabel":"string[] | null"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.role","typeLabel":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.segment_id","typeLabel":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.speaker_statement_characteristics.certainty","typeLabel":"enum\u003cstring>"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.speaker_statement_characteristics.sentiment","typeLabel":"enum\u003cstring>"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.speaker_statement_characteristics.specificity","typeLabel":"enum\u003cstring>"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.speaker_statement_characteristics.temporal_orientation","typeLabel":"enum\u003cstring>"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews.","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line.speaker_statement_characteristics","typeLabel":"object"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read.","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].line","typeLabel":"object"},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].start_seconds","typeLabel":"number\u003cdouble>"},"person":{"additionalProperties":false,"properties":{"id":{"description":"Encoded Person identifier","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].person.id","typeLabel":"string"},"name":{"description":"Display name","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].person.name","typeLabel":"string"},"description":{"description":"Short description (e.g. current role), when known.","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].person.description","typeLabel":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].person.image_url","typeLabel":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].person.slug","typeLabel":"string"}},"required":["id","name"],"type":"object","description":"The person who said it.","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].person","typeLabel":"object"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX].url","typeLabel":"string"}},"required":["episode","start_seconds","line"],"type":"object","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.0","typeLabel":"object[]"},{"description":"With examples and no breakdown, up to that many of the group's lines, strongest first: by an axis, the lines that most clearly carry the group's label; filtered by speaker_statement_characteristics, those that most clearly read the way the filter asks; otherwise the newest. Ties go to the newest. With breakdown, each breakdown label carries its own instead.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"null","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples.oneOf.1","typeLabel":"null"}],"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].examples","typeLabel":"object[] | null"},"low_sample":{"description":"Fewer than 20 scored mentions stand behind the group's label shares: its breakdown's with breakdown, or the split's when by is an axis. Read them as examples, not as a distribution.","type":"boolean","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].low_sample","typeLabel":"boolean"},"scored_mentions":{"description":"With breakdown, the group's mentions that carry speaker statement characteristics: its breakdown's shares are of these.","format":"int64","type":"integer","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].scored_mentions","typeLabel":"integer\u003cint64>"},"top":{"additionalProperties":false,"properties":{"code":{"description":"The SOC 2018 major group or ANZSRC 2020 division.","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].top.code","typeLabel":"string"},"share":{"description":"The top-level group's mentions over attributed_mentions (0-1).","format":"double","type":"number","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].top.share","typeLabel":"number\u003cdouble>"},"title":{"description":"The code's title.","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].top.title","typeLabel":"string"}},"required":["code","title","share"],"type":"object","description":"At level=detailed, the top-level group the code sits under (a SOC major group or an ANZSRC division) and its share, so a group split across detailed codes still shows its size.","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX].top","typeLabel":"object"}},"required":["code","title","mentions","share","speakers","episodes"],"type":"object","uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.0","typeLabel":"object[]"},{"description":"By occupation or field, the groups with the most attributed mentions, most first; a person listed under several codes counts in each, so shares can sum past 1. By an axis, one group per label in the axis's order, zero counts included.","items":{"additionalProperties":false,"properties":{"breakdown":{"oneOf":[{"description":"With breakdown, the group's scored mentions by their label on that axis, one entry per label in the axis's order.","items":{"additionalProperties":false,"properties":{"examples":{"oneOf":[{"description":"With examples, up to that many of the group's lines with this label, strongest first: the lines that most clearly carry it. Ties go to the newest.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"array"},{"description":"With examples, up to that many of the group's lines with this label, strongest first: the lines that most clearly carry it. Ties go to the newest.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"null"}]},"label":{"description":"The label on the breakdown axis.","type":"string"},"mentions":{"description":"The scored mentions with the label, of the group or bucket it is in.","format":"int64","type":"integer"},"share":{"description":"mentions over the scored_mentions of the group or bucket it is in (0-1).","format":"double","type":"number"}},"required":["label","mentions","share"],"type":"object"},"type":"array"},{"description":"With breakdown, the group's scored mentions by their label on that axis, one entry per label in the axis's order.","items":{"additionalProperties":false,"properties":{"examples":{"oneOf":[{"description":"With examples, up to that many of the group's lines with this label, strongest first: the lines that most clearly carry it. Ties go to the newest.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"array"},{"description":"With examples, up to that many of the group's lines with this label, strongest first: the lines that most clearly carry it. Ties go to the newest.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"null"}]},"label":{"description":"The label on the breakdown axis.","type":"string"},"mentions":{"description":"The scored mentions with the label, of the group or bucket it is in.","format":"int64","type":"integer"},"share":{"description":"mentions over the scored_mentions of the group or bucket it is in (0-1).","format":"double","type":"number"}},"required":["label","mentions","share"],"type":"object"},"type":"null"}]},"buckets":{"oneOf":[{"description":"The group's mentions per interval bucket, when interval is set.","items":{"additionalProperties":false,"properties":{"mentions":{"format":"int64","type":"integer"},"start":{"description":"First day of the bucket (UTC).","type":"string"}},"required":["start","mentions"],"type":"object"},"type":"array"},{"description":"The group's mentions per interval bucket, when interval is set.","items":{"additionalProperties":false,"properties":{"mentions":{"format":"int64","type":"integer"},"start":{"description":"First day of the bucket (UTC).","type":"string"}},"required":["start","mentions"],"type":"object"},"type":"null"}]},"code":{"description":"The SOC 2018 or ANZSRC 2020 code, or, when by is an axis, the label (e.g. negative).","type":"string"},"episodes":{"description":"Distinct episodes they were said in.","format":"int64","type":"integer"},"examples":{"oneOf":[{"description":"With examples and no breakdown, up to that many of the group's lines, strongest first: by an axis, the lines that most clearly carry the group's label; filtered by speaker_statement_characteristics, those that most clearly read the way the filter asks; otherwise the newest. Ties go to the newest. With breakdown, each breakdown label carries its own instead.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"array"},{"description":"With examples and no breakdown, up to that many of the group's lines, strongest first: by an axis, the lines that most clearly carry the group's label; filtered by speaker_statement_characteristics, those that most clearly read the way the filter asks; otherwise the newest. Ties go to the newest. With breakdown, each breakdown label carries its own instead.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"null"}]},"low_sample":{"description":"Fewer than 20 scored mentions stand behind the group's label shares: its breakdown's with breakdown, or the split's when by is an axis. Read them as examples, not as a distribution.","type":"boolean"},"mentions":{"description":"Lines mentioning the entity or saying the keyword in this group. By occupation or field: attributed lines spoken by people listed under the code. By an axis: scored lines carrying the label, spoken by the speakers counted, whether or not the speaker has an expertise reading.","format":"int64","type":"integer"},"scored_mentions":{"description":"With breakdown, the group's mentions that carry speaker statement characteristics: its breakdown's shares are of these.","format":"int64","type":"integer"},"share":{"description":"mentions over attributed_mentions by occupation or field, or over scored_mentions when by is an axis (0-1).","format":"double","type":"number"},"speakers":{"description":"Distinct people who said them.","format":"int64","type":"integer"},"title":{"description":"The code's title, or the label again when by is an axis.","type":"string"},"top":{"additionalProperties":false,"properties":{"code":{"description":"The SOC 2018 major group or ANZSRC 2020 division.","type":"string"},"share":{"description":"The top-level group's mentions over attributed_mentions (0-1).","format":"double","type":"number"},"title":{"description":"The code's title.","type":"string"}},"required":["code","title","share"],"type":"object","description":"At level=detailed, the top-level group the code sits under (a SOC major group or an ANZSRC division) and its share, so a group split across detailed codes still shows its size."}},"required":["code","title","mentions","share","speakers","episodes"],"type":"object"},"type":"null","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].groups","typeLabel":"object[] | null"},"host_mentions":{"description":"Of mentions, the lines hosts spoke, counted whatever speakers is.","format":"int64","type":"integer","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].host_mentions","typeLabel":"integer\u003cint64>"},"mentions":{"description":"Lines mentioning the entity, or saying the keyword, in the window, from every speaker. Ad reads are left out unless include_ads.","format":"int64","type":"integer","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].mentions","typeLabel":"integer\u003cint64>"},"speaker_mentions":{"description":"Of those, the lines spoken by the speakers counted: all of them, or guests' and panelists' with speakers=guests. Coverage is attributed_mentions over this.","format":"int64","type":"integer","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].speaker_mentions","typeLabel":"integer\u003cint64>"},"speakers":{"description":"Whose lines the groups count: every speaker's, or guests' and panelists' only.","enum":["all","guests"],"type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].speakers","typeLabel":"enum\u003cstring>"},"start":{"description":"First day of the window (UTC), included.","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].start","typeLabel":"string"},"breakdown":{"description":"The axis each group's lines are split by, when breakdown was given.","enum":["sentiment","certainty","specificity","temporal_orientation"],"type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].breakdown","typeLabel":"enum\u003cstring>"},"characteristics_version":{"description":"Opaque version of the speaker statement characteristics the split read. Compare splits only when it is equal.","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].characteristics_version","typeLabel":"string"},"company":{"additionalProperties":false,"properties":{"id":{"description":"Company identifier (domain, slug, or encoded ID)","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].company.id","typeLabel":"string"},"name":{"description":"Company name","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].company.name","typeLabel":"string"},"description":{"description":"Short company description, when known.","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].company.description","typeLabel":"string"},"domain":{"description":"Primary website domain (e.g. 'nvidia.com'), when known.","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].company.domain","typeLabel":"string"},"image_url":{"description":"Company logo or image URL","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].company.image_url","typeLabel":"string"},"slug":{"description":"Stable human-readable handle (the linked knowledge-graph slug, e.g. 'nvidia'), when known. Companies have no slug of their own; prefer this for display and pass it (or id) to /v1/companies.","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].company.slug","typeLabel":"string"},"ticker":{"description":"Primary stock ticker symbol, when listed.","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].company.ticker","typeLabel":"string"}},"required":["id","name"],"type":"object","description":"The company the entity was resolved from, when company_id was given.","uniqueKey":"subjects.oneOf.0.items.[INDEX].company","typeLabel":"object"},"entity":{"additionalProperties":false,"properties":{"id":{"description":"Entity ID","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.id","typeLabel":"string"},"name":{"description":"Entity name","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.name","typeLabel":"string"},"slug":{"description":"Human-readable slug identifier","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.slug","typeLabel":"string"},"company":{"additionalProperties":false,"properties":{"id":{"description":"Company identifier","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.company.id","typeLabel":"string"},"domain":{"description":"Company website domain","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.company.domain","typeLabel":"string"},"ticker":{"description":"Primary stock ticker symbol","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.company.ticker","typeLabel":"string"}},"required":["id"],"type":"object","description":"Linked company record, if this entity is a known company","uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.company","typeLabel":"object"},"description":{"description":"Short description","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.description","typeLabel":"string"},"image_url":{"description":"Entity image URL","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.image_url","typeLabel":"string"},"person":{"additionalProperties":false,"properties":{"id":{"description":"Person identifier","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.person.id","typeLabel":"string"},"company":{"description":"Current company name","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.person.company","typeLabel":"string"},"image_url":{"description":"Person headshot URL","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.person.image_url","typeLabel":"string"},"title":{"description":"Current role title","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.person.title","typeLabel":"string"}},"required":["id"],"type":"object","description":"Linked person record, if this entity is a known person","uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.person","typeLabel":"object"},"type":{"additionalProperties":false,"properties":{"name":{"description":"Human-friendly display label (e.g. 'Company').","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.type.name","typeLabel":"string"},"slug":{"description":"Stable identifier, safe to pass to the type query parameter (e.g. 'company').","type":"string","isRequired":true,"uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.type.slug","typeLabel":"string"}},"required":["slug","name"],"type":"object","description":"Category. Omitted when the entity falls outside the supported set.","uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.type","typeLabel":"object"},"wikipedia_url":{"description":"Wikipedia URL","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].entity.wikipedia_url","typeLabel":"string"}},"required":["id","slug","name"],"type":"object","description":"The entity whose mentions are split.","uniqueKey":"subjects.oneOf.0.items.[INDEX].entity","typeLabel":"object"},"keyword":{"description":"The keyword whose lines are split, when keyword_search was given instead of an entity. Mentions are then the lines that say it.","type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].keyword","typeLabel":"string"},"level":{"description":"The groups' level: SOC major groups or detailed occupations; ANZSRC divisions or groups. Absent when by is an axis.","enum":["major","detailed"],"type":"string","uniqueKey":"subjects.oneOf.0.items.[INDEX].level","typeLabel":"enum\u003cstring>"},"scored_mentions":{"description":"The lines the groups count that carry speaker statement characteristics, when by is an axis, breakdown is set or speaker_statement_characteristics filters: shares of an axis's labels are of these. Not every line carries them, so this can be below the lines counted.","format":"int64","type":"integer","uniqueKey":"subjects.oneOf.0.items.[INDEX].scored_mentions","typeLabel":"integer\u003cint64>"}},"required":["by","start","end","speakers","mentions","speaker_mentions","host_mentions","attributed_mentions","groups"],"type":"object","uniqueKey":"subjects.oneOf.0.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"subjects.oneOf.0","typeLabel":"object[]"},{"description":"One split per subject, in the order requested, each exactly what GET /v1/podcasts/mentions/share-of-voice returns for that subject with the same parameters.","items":{"additionalProperties":false,"properties":{"attributed_mentions":{"description":"Of speaker_mentions, the lines spoken by someone with an expertise reading (and, for a guest, whose appearance read does not doubt it is them). Shares of occupations and fields are of these.","format":"int64","type":"integer"},"breakdown":{"description":"The axis each group's lines are split by, when breakdown was given.","enum":["sentiment","certainty","specificity","temporal_orientation"],"type":"string"},"by":{"description":"What the groups are: SOC 2018 occupations, ANZSRC 2020 fields of research, or the labels of one speaker statement characteristics axis.","enum":["occupation","field","sentiment","certainty","specificity","temporal_orientation"],"type":"string"},"characteristics_version":{"description":"Opaque version of the speaker statement characteristics the split read. Compare splits only when it is equal.","type":"string"},"company":{"additionalProperties":false,"properties":{"description":{"description":"Short company description, when known.","type":"string"},"domain":{"description":"Primary website domain (e.g. 'nvidia.com'), when known.","type":"string"},"id":{"description":"Company identifier (domain, slug, or encoded ID)","type":"string"},"image_url":{"description":"Company logo or image URL","type":"string"},"name":{"description":"Company name","type":"string"},"slug":{"description":"Stable human-readable handle (the linked knowledge-graph slug, e.g. 'nvidia'), when known. Companies have no slug of their own; prefer this for display and pass it (or id) to /v1/companies.","type":"string"},"ticker":{"description":"Primary stock ticker symbol, when listed.","type":"string"}},"required":["id","name"],"type":"object","description":"The company the entity was resolved from, when company_id was given."},"end":{"description":"Day the window ends (UTC), excluded: the window is [start, end), so a published_before date shows as the day after it.","type":"string"},"entity":{"additionalProperties":false,"properties":{"company":{"additionalProperties":false,"properties":{"domain":{"description":"Company website domain","type":"string"},"id":{"description":"Company identifier","type":"string"},"ticker":{"description":"Primary stock ticker symbol","type":"string"}},"required":["id"],"type":"object","description":"Linked company record, if this entity is a known company"},"description":{"description":"Short description","type":"string"},"id":{"description":"Entity ID","type":"string"},"image_url":{"description":"Entity image URL","type":"string"},"name":{"description":"Entity name","type":"string"},"person":{"additionalProperties":false,"properties":{"company":{"description":"Current company name","type":"string"},"id":{"description":"Person identifier","type":"string"},"image_url":{"description":"Person headshot URL","type":"string"},"title":{"description":"Current role title","type":"string"}},"required":["id"],"type":"object","description":"Linked person record, if this entity is a known person"},"slug":{"description":"Human-readable slug identifier","type":"string"},"type":{"additionalProperties":false,"properties":{"name":{"description":"Human-friendly display label (e.g. 'Company').","type":"string"},"slug":{"description":"Stable identifier, safe to pass to the type query parameter (e.g. 'company').","type":"string"}},"required":["slug","name"],"type":"object","description":"Category. Omitted when the entity falls outside the supported set."},"wikipedia_url":{"description":"Wikipedia URL","type":"string"}},"required":["id","slug","name"],"type":"object","description":"The entity whose mentions are split."},"groups":{"oneOf":[{"description":"By occupation or field, the groups with the most attributed mentions, most first; a person listed under several codes counts in each, so shares can sum past 1. By an axis, one group per label in the axis's order, zero counts included.","items":{"additionalProperties":false,"properties":{"breakdown":{"oneOf":[{"description":"With breakdown, the group's scored mentions by their label on that axis, one entry per label in the axis's order.","items":{"additionalProperties":false,"properties":{"examples":{"oneOf":[{"description":"With examples, up to that many of the group's lines with this label, strongest first: the lines that most clearly carry it. Ties go to the newest.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"array"},{"description":"With examples, up to that many of the group's lines with this label, strongest first: the lines that most clearly carry it. Ties go to the newest.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"null"}]},"label":{"description":"The label on the breakdown axis.","type":"string"},"mentions":{"description":"The scored mentions with the label, of the group or bucket it is in.","format":"int64","type":"integer"},"share":{"description":"mentions over the scored_mentions of the group or bucket it is in (0-1).","format":"double","type":"number"}},"required":["label","mentions","share"],"type":"object"},"type":"array"},{"description":"With breakdown, the group's scored mentions by their label on that axis, one entry per label in the axis's order.","items":{"additionalProperties":false,"properties":{"examples":{"oneOf":[{"description":"With examples, up to that many of the group's lines with this label, strongest first: the lines that most clearly carry it. Ties go to the newest.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"array"},{"description":"With examples, up to that many of the group's lines with this label, strongest first: the lines that most clearly carry it. Ties go to the newest.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"null"}]},"label":{"description":"The label on the breakdown axis.","type":"string"},"mentions":{"description":"The scored mentions with the label, of the group or bucket it is in.","format":"int64","type":"integer"},"share":{"description":"mentions over the scored_mentions of the group or bucket it is in (0-1).","format":"double","type":"number"}},"required":["label","mentions","share"],"type":"object"},"type":"null"}]},"buckets":{"oneOf":[{"description":"The group's mentions per interval bucket, when interval is set.","items":{"additionalProperties":false,"properties":{"mentions":{"format":"int64","type":"integer"},"start":{"description":"First day of the bucket (UTC).","type":"string"}},"required":["start","mentions"],"type":"object"},"type":"array"},{"description":"The group's mentions per interval bucket, when interval is set.","items":{"additionalProperties":false,"properties":{"mentions":{"format":"int64","type":"integer"},"start":{"description":"First day of the bucket (UTC).","type":"string"}},"required":["start","mentions"],"type":"object"},"type":"null"}]},"code":{"description":"The SOC 2018 or ANZSRC 2020 code, or, when by is an axis, the label (e.g. negative).","type":"string"},"episodes":{"description":"Distinct episodes they were said in.","format":"int64","type":"integer"},"examples":{"oneOf":[{"description":"With examples and no breakdown, up to that many of the group's lines, strongest first: by an axis, the lines that most clearly carry the group's label; filtered by speaker_statement_characteristics, those that most clearly read the way the filter asks; otherwise the newest. Ties go to the newest. With breakdown, each breakdown label carries its own instead.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"array"},{"description":"With examples and no breakdown, up to that many of the group's lines, strongest first: by an axis, the lines that most clearly carry the group's label; filtered by speaker_statement_characteristics, those that most clearly read the way the filter asks; otherwise the newest. Ties go to the newest. With breakdown, each breakdown label carries its own instead.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"null"}]},"low_sample":{"description":"Fewer than 20 scored mentions stand behind the group's label shares: its breakdown's with breakdown, or the split's when by is an axis. Read them as examples, not as a distribution.","type":"boolean"},"mentions":{"description":"Lines mentioning the entity or saying the keyword in this group. By occupation or field: attributed lines spoken by people listed under the code. By an axis: scored lines carrying the label, spoken by the speakers counted, whether or not the speaker has an expertise reading.","format":"int64","type":"integer"},"scored_mentions":{"description":"With breakdown, the group's mentions that carry speaker statement characteristics: its breakdown's shares are of these.","format":"int64","type":"integer"},"share":{"description":"mentions over attributed_mentions by occupation or field, or over scored_mentions when by is an axis (0-1).","format":"double","type":"number"},"speakers":{"description":"Distinct people who said them.","format":"int64","type":"integer"},"title":{"description":"The code's title, or the label again when by is an axis.","type":"string"},"top":{"additionalProperties":false,"properties":{"code":{"description":"The SOC 2018 major group or ANZSRC 2020 division.","type":"string"},"share":{"description":"The top-level group's mentions over attributed_mentions (0-1).","format":"double","type":"number"},"title":{"description":"The code's title.","type":"string"}},"required":["code","title","share"],"type":"object","description":"At level=detailed, the top-level group the code sits under (a SOC major group or an ANZSRC division) and its share, so a group split across detailed codes still shows its size."}},"required":["code","title","mentions","share","speakers","episodes"],"type":"object"},"type":"array"},{"description":"By occupation or field, the groups with the most attributed mentions, most first; a person listed under several codes counts in each, so shares can sum past 1. By an axis, one group per label in the axis's order, zero counts included.","items":{"additionalProperties":false,"properties":{"breakdown":{"oneOf":[{"description":"With breakdown, the group's scored mentions by their label on that axis, one entry per label in the axis's order.","items":{"additionalProperties":false,"properties":{"examples":{"oneOf":[{"description":"With examples, up to that many of the group's lines with this label, strongest first: the lines that most clearly carry it. Ties go to the newest.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"array"},{"description":"With examples, up to that many of the group's lines with this label, strongest first: the lines that most clearly carry it. Ties go to the newest.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"null"}]},"label":{"description":"The label on the breakdown axis.","type":"string"},"mentions":{"description":"The scored mentions with the label, of the group or bucket it is in.","format":"int64","type":"integer"},"share":{"description":"mentions over the scored_mentions of the group or bucket it is in (0-1).","format":"double","type":"number"}},"required":["label","mentions","share"],"type":"object"},"type":"array"},{"description":"With breakdown, the group's scored mentions by their label on that axis, one entry per label in the axis's order.","items":{"additionalProperties":false,"properties":{"examples":{"oneOf":[{"description":"With examples, up to that many of the group's lines with this label, strongest first: the lines that most clearly carry it. Ties go to the newest.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"array"},{"description":"With examples, up to that many of the group's lines with this label, strongest first: the lines that most clearly carry it. Ties go to the newest.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"null"}]},"label":{"description":"The label on the breakdown axis.","type":"string"},"mentions":{"description":"The scored mentions with the label, of the group or bucket it is in.","format":"int64","type":"integer"},"share":{"description":"mentions over the scored_mentions of the group or bucket it is in (0-1).","format":"double","type":"number"}},"required":["label","mentions","share"],"type":"object"},"type":"null"}]},"buckets":{"oneOf":[{"description":"The group's mentions per interval bucket, when interval is set.","items":{"additionalProperties":false,"properties":{"mentions":{"format":"int64","type":"integer"},"start":{"description":"First day of the bucket (UTC).","type":"string"}},"required":["start","mentions"],"type":"object"},"type":"array"},{"description":"The group's mentions per interval bucket, when interval is set.","items":{"additionalProperties":false,"properties":{"mentions":{"format":"int64","type":"integer"},"start":{"description":"First day of the bucket (UTC).","type":"string"}},"required":["start","mentions"],"type":"object"},"type":"null"}]},"code":{"description":"The SOC 2018 or ANZSRC 2020 code, or, when by is an axis, the label (e.g. negative).","type":"string"},"episodes":{"description":"Distinct episodes they were said in.","format":"int64","type":"integer"},"examples":{"oneOf":[{"description":"With examples and no breakdown, up to that many of the group's lines, strongest first: by an axis, the lines that most clearly carry the group's label; filtered by speaker_statement_characteristics, those that most clearly read the way the filter asks; otherwise the newest. Ties go to the newest. With breakdown, each breakdown label carries its own instead.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"array"},{"description":"With examples and no breakdown, up to that many of the group's lines, strongest first: by an axis, the lines that most clearly carry the group's label; filtered by speaker_statement_characteristics, those that most clearly read the way the filter asks; otherwise the newest. Ties go to the newest. With breakdown, each breakdown label carries its own instead.","items":{"additionalProperties":false,"properties":{"episode":{"additionalProperties":false,"properties":{"id":{"description":"Episode ID","type":"string"},"podcast":{"additionalProperties":false,"properties":{"best_rank":{"additionalProperties":false,"properties":{"captured_at":{"format":"date-time","type":"string"},"category_slug":{"type":"string"},"chart_type":{"enum":["top_podcasts"],"type":"string"},"country":{"type":"string"},"rank":{"format":"int64","type":"integer"},"source":{"enum":["apple","spotify"],"type":"string"}},"required":["source","chart_type","rank","captured_at"],"type":"object","description":"The single best (lowest-numbered) chart position this podcast currently holds across all charts. Omitted when the podcast holds no current chart appearances, and on endpoints that do not attach it. Reading a full chart (with country/category/source filters and history) remains premium; a single show's own placement is available on every plan."},"id":{"description":"Podcast ID","type":"string"},"image_url":{"description":"Cover image URL","type":"string"},"popularity":{"description":"Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.","format":"double","type":"number"},"publisher":{"additionalProperties":false,"properties":{"id":{"description":"Publisher ID","type":"string"},"name":{"description":"Publisher name","type":"string"},"slug":{"description":"Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).","type":"string"}},"required":["id","name"],"type":"object","description":"Publisher (network) attributed to this podcast. Present only when the embedding endpoint preloads publisher attribution and the podcast's publisher is known."},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Podcast title","type":"string"}},"required":["id","title"],"type":"object","description":"Parent podcast"},"published_at":{"description":"Publication date","format":"date-time","type":"string"},"slug":{"description":"Human-readable slug identifier","type":"string"},"title":{"description":"Episode title","type":"string"},"web_url":{"description":"The episode's page on Radar, where it plays beside its transcript: https://radar.particle.pro/podcasts/{podcast}/episodes/{episode}, each segment the slug or, when there is none, the raw UUID. Append ?t={seconds} to start at a moment; the hit's own url field already does. Omitted for back-catalogue episodes we have not ingested, which have no page, and in episode stream, feed and archive payloads stored before this field shipped (they are replayed as stored): build it from the slugs, or fetch the episode.","type":"string"}},"required":["id","title"],"type":"object","description":"Episode the line was said in."},"line":{"additionalProperties":false,"properties":{"end_seconds":{"description":"End time in seconds (episode-absolute)","format":"double","type":"number"},"is_match":{"description":"Top-scored line within the window for the current query, on /v1/podcasts/episodes/search results. Not set on /v1/podcasts/mentions.","type":"boolean"},"is_mention":{"description":"Line contains a textual mention of the resolved entity. Set on /v1/podcasts/mentions only — /v1/podcasts/episodes/search treats entity_id as a filter and does not mark mention lines.","type":"boolean"},"matched_terms":{"oneOf":[{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"array"},{"description":"Terms from the query that occur in this line, longest-first, for clients to highlight. Locate them case-insensitively: each term is spelled as the query spelled it, which may differ in case from the line's text (query \"openai\" is reported for a line reading \"OpenAI\"). Whole-token matches only — a term never matches inside a longer word, so \"AI\" is not reported for \"said\". A multi-word query yields the whole phrase (\"founder mode\") when it occurs contiguously, so clients mark it as one span rather than highlighting each word separately; individual words appear only where they occur outside the phrase. Only the longest term is reported at any position, so terms never overlap. On /v1/podcasts/episodes/search this is set on any line in the window containing the query, not only is_match lines; on /v1/podcasts/mentions it is set only on is_mention lines. Absent when nothing matched or the query was not text-based.","items":{"type":"string"},"type":"null"}]},"number":{"description":"Line number within the episode (1-indexed)","format":"int64","type":"integer"},"role":{"description":"Speaker role (HOST, GUEST, etc.)","type":"string"},"segment_id":{"description":"The segment containing this line. Set on is_mention lines of /v1/podcasts/mentions, so a mention can be cited by segment even when its window opened in the previous one (a window starts context_lines before its first mention, and the window's segment is where the window starts). Absent elsewhere.","type":"string"},"speaker":{"description":"Speaker name or label","type":"string"},"speaker_statement_characteristics":{"additionalProperties":false,"properties":{"certainty":{"description":"How sure the speaker sounds: hedged (\"maybe\", \"I think\", \"it could\"), neutral, or confident (flat assertion).","enum":["hedged","neutral","confident"],"type":"string"},"sentiment":{"description":"The statement's tone: negative, neutral or positive.","enum":["negative","neutral","positive"],"type":"string"},"specificity":{"description":"Whether the line commits to something concrete: specific (names, numbers, dates, mechanisms), neutral, or vague (generalities).","enum":["vague","neutral","specific"],"type":"string"},"temporal_orientation":{"description":"Where the line points in time: past (looking back), present (how things are), or future (predictions, plans, expectations).","enum":["past","present","future"],"type":"string"}},"required":["sentiment","certainty","specificity","temporal_orientation"],"type":"object","description":"How the speaker said this line: its sentiment, certainty, specificity and temporal orientation, as labels. A pole label (such as positive or confident) means the line clearly reads that way; a borderline line takes the middle label. Set on lines of /v1/podcasts/episodes/search and /v1/podcasts/mentions windows when the line has been read. Absent on lines that are not: short lines, and lines in intros, ad breaks and other segments outside topic discussions and interviews."},"start_seconds":{"description":"Start time in seconds (episode-absolute)","format":"double","type":"number"},"text":{"description":"Spoken text","type":"string"}},"required":["number","speaker","start_seconds","end_seconds","text"],"type":"object","description":"The line: its text, speaker and times, with is_mention set and its speaker_statement_characteristics when it has been read."},"person":{"additionalProperties":false,"properties":{"description":{"description":"Short description (e.g. current role), when known.","type":"string"},"id":{"description":"Encoded Person identifier","type":"string"},"image_url":{"description":"Canonical headshot URL when one is known for the Person","type":"string"},"name":{"description":"Display name","type":"string"},"slug":{"description":"Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.","type":"string"}},"required":["id","name"],"type":"object","description":"The person who said it."},"start_seconds":{"description":"When the line starts, in seconds (episode-absolute).","format":"double","type":"number"},"url":{"description":"Moment link that plays the line on Radar: the episode's web_url with ?t= at start_seconds.","type":"string"}},"required":["episode","start_seconds","line"],"type":"object"},"type":"null"}]},"low_sample":{"description":"Fewer than 20 scored mentions stand behind the group's label shares: its breakdown's with breakdown, or the split's when by is an axis. Read them as examples, not as a distribution.","type":"boolean"},"mentions":{"description":"Lines mentioning the entity or saying the keyword in this group. By occupation or field: attributed lines spoken by people listed under the code. By an axis: scored lines carrying the label, spoken by the speakers counted, whether or not the speaker has an expertise reading.","format":"int64","type":"integer"},"scored_mentions":{"description":"With breakdown, the group's mentions that carry speaker statement characteristics: its breakdown's shares are of these.","format":"int64","type":"integer"},"share":{"description":"mentions over attributed_mentions by occupation or field, or over scored_mentions when by is an axis (0-1).","format":"double","type":"number"},"speakers":{"description":"Distinct people who said them.","format":"int64","type":"integer"},"title":{"description":"The code's title, or the label again when by is an axis.","type":"string"},"top":{"additionalProperties":false,"properties":{"code":{"description":"The SOC 2018 major group or ANZSRC 2020 division.","type":"string"},"share":{"description":"The top-level group's mentions over attributed_mentions (0-1).","format":"double","type":"number"},"title":{"description":"The code's title.","type":"string"}},"required":["code","title","share"],"type":"object","description":"At level=detailed, the top-level group the code sits under (a SOC major group or an ANZSRC division) and its share, so a group split across detailed codes still shows its size."}},"required":["code","title","mentions","share","speakers","episodes"],"type":"object"},"type":"null"}]},"host_mentions":{"description":"Of mentions, the lines hosts spoke, counted whatever speakers is.","format":"int64","type":"integer"},"keyword":{"description":"The keyword whose lines are split, when keyword_search was given instead of an entity. Mentions are then the lines that say it.","type":"string"},"level":{"description":"The groups' level: SOC major groups or detailed occupations; ANZSRC divisions or groups. Absent when by is an axis.","enum":["major","detailed"],"type":"string"},"mentions":{"description":"Lines mentioning the entity, or saying the keyword, in the window, from every speaker. Ad reads are left out unless include_ads.","format":"int64","type":"integer"},"scored_mentions":{"description":"The lines the groups count that carry speaker statement characteristics, when by is an axis, breakdown is set or speaker_statement_characteristics filters: shares of an axis's labels are of these. Not every line carries them, so this can be below the lines counted.","format":"int64","type":"integer"},"speaker_mentions":{"description":"Of those, the lines spoken by the speakers counted: all of them, or guests' and panelists' with speakers=guests. Coverage is attributed_mentions over this.","format":"int64","type":"integer"},"speakers":{"description":"Whose lines the groups count: every speaker's, or guests' and panelists' only.","enum":["all","guests"],"type":"string"},"start":{"description":"First day of the window (UTC), included.","type":"string"}},"required":["by","start","end","speakers","mentions","speaker_mentions","host_mentions","attributed_mentions","groups"],"type":"object"},"type":"null","isRequired":true,"uniqueKey":"subjects.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"subjects","typeLabel":"object[] | null"},"breakdown":{"description":"The axis each label group's lines are split by, when breakdown was given.","enum":["sentiment","certainty","specificity","temporal_orientation"],"type":"string","uniqueKey":"breakdown","typeLabel":"enum\u003cstring>"},"characteristics_version":{"description":"Opaque version of the speaker statement characteristics every subject read. Absent when no subject read any, or when they read different versions: compare subjects only when it is present.","type":"string","uniqueKey":"characteristics_version","typeLabel":"string"}},"required":["by","start","end","speakers","subjects"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"by":"sentiment","end":"\u003cstring>","speakers":"all","start":"\u003cstring>","subjects":[{"attributed_mentions":123,"by":"occupation","end":"\u003cstring>","groups":[{"code":"\u003cstring>","episodes":123,"mentions":123,"share":123,"speakers":123,"title":"\u003cstring>","breakdown":[{"label":"\u003cstring>","mentions":123,"share":123,"examples":[{"episode":{"id":"\u003cstring>","title":"\u003cstring>","podcast":{"id":"\u003cstring>","title":"\u003cstring>","best_rank":{"captured_at":"2023-11-07T05:31:56Z","chart_type":"top_podcasts","rank":123,"source":"apple","category_slug":"\u003cstring>","country":"\u003cstring>"},"image_url":"\u003cstring>","popularity":123,"publisher":{"id":"\u003cstring>","name":"\u003cstring>","slug":"\u003cstring>"},"slug":"\u003cstring>"},"published_at":"2023-11-07T05:31:56Z","slug":"\u003cstring>","web_url":"\u003cstring>"},"line":{"end_seconds":123,"number":123,"speaker":"\u003cstring>","start_seconds":123,"text":"\u003cstring>","is_match":true,"is_mention":true,"matched_terms":["\u003cstring>"],"role":"\u003cstring>","segment_id":"\u003cstring>","speaker_statement_characteristics":{"certainty":"hedged","sentiment":"negative","specificity":"vague","temporal_orientation":"past"}},"start_seconds":123,"person":{"id":"\u003cstring>","name":"\u003cstring>","description":"\u003cstring>","image_url":"\u003cstring>","slug":"\u003cstring>"},"url":"\u003cstring>"}]}],"buckets":[{"mentions":123,"start":"\u003cstring>"}],"examples":[{"episode":{"id":"\u003cstring>","title":"\u003cstring>","podcast":{"id":"\u003cstring>","title":"\u003cstring>","best_rank":{"captured_at":"2023-11-07T05:31:56Z","chart_type":"top_podcasts","rank":123,"source":"apple","category_slug":"\u003cstring>","country":"\u003cstring>"},"image_url":"\u003cstring>","popularity":123,"publisher":{"id":"\u003cstring>","name":"\u003cstring>","slug":"\u003cstring>"},"slug":"\u003cstring>"},"published_at":"2023-11-07T05:31:56Z","slug":"\u003cstring>","web_url":"\u003cstring>"},"line":{"end_seconds":123,"number":123,"speaker":"\u003cstring>","start_seconds":123,"text":"\u003cstring>","is_match":true,"is_mention":true,"matched_terms":["\u003cstring>"],"role":"\u003cstring>","segment_id":"\u003cstring>","speaker_statement_characteristics":{"certainty":"hedged","sentiment":"negative","specificity":"vague","temporal_orientation":"past"}},"start_seconds":123,"person":{"id":"\u003cstring>","name":"\u003cstring>","description":"\u003cstring>","image_url":"\u003cstring>","slug":"\u003cstring>"},"url":"\u003cstring>"}],"low_sample":true,"scored_mentions":123,"top":{"code":"\u003cstring>","share":123,"title":"\u003cstring>"}}],"host_mentions":123,"mentions":123,"speaker_mentions":123,"speakers":"all","start":"\u003cstring>","breakdown":"sentiment","characteristics_version":"\u003cstring>","company":{"id":"\u003cstring>","name":"\u003cstring>","description":"\u003cstring>","domain":"\u003cstring>","image_url":"\u003cstring>","slug":"\u003cstring>","ticker":"\u003cstring>"},"entity":{"id":"\u003cstring>","name":"\u003cstring>","slug":"\u003cstring>","company":{"id":"\u003cstring>","domain":"\u003cstring>","ticker":"\u003cstring>"},"description":"\u003cstring>","image_url":"\u003cstring>","person":{"id":"\u003cstring>","company":"\u003cstring>","image_url":"\u003cstring>","title":"\u003cstring>"},"type":{"name":"\u003cstring>","slug":"\u003cstring>"},"wikipedia_url":"\u003cstring>"},"keyword":"\u003cstring>","level":"major","scored_mentions":123}],"breakdown":"sentiment","characteristics_version":"\u003cstring>"}}},"exampleType":"generated"}},"description":"OK","exampleType":"generated"},"0a88a67e-a378-49a0-85f4-8ff01c45335b":{"content":{"application/problem+json":{"schema":{"additionalProperties":false,"properties":{"detail":{"description":"A human-readable explanation specific to this occurrence of the problem.","examples":["Property foo is required but is missing."],"type":"string","uniqueKey":"detail","typeLabel":"string"},"error_code":{"type":"string","uniqueKey":"error_code","typeLabel":"string"},"errors":{"oneOf":[{"description":"Optional list of individual error details","items":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string","uniqueKey":"errors.oneOf.0.items.[INDEX].location","typeLabel":"string"},"message":{"description":"Error message text","type":"string","uniqueKey":"errors.oneOf.0.items.[INDEX].message","typeLabel":"string"},"value":{"description":"The value at the given location","uniqueKey":"errors.oneOf.0.items.[INDEX].value","typeLabel":"any"}},"type":"object","uniqueKey":"errors.oneOf.0.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"errors.oneOf.0","typeLabel":"object[]"},{"description":"Optional list of individual error details","items":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"},"type":"null","uniqueKey":"errors.oneOf.1","typeLabel":"null"}],"uniqueKey":"errors","typeLabel":"object[] | null"},"instance":{"description":"A URI reference that identifies the specific occurrence of the problem.","examples":["https://example.com/error-log/abc123"],"format":"uri","type":"string","uniqueKey":"instance","typeLabel":"string\u003curi>"},"resolve":{"additionalProperties":false,"properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"resolve.message","typeLabel":"string"},"action":{"type":"string","uniqueKey":"resolve.action","typeLabel":"string"},"endpoint":{"type":"string","uniqueKey":"resolve.endpoint","typeLabel":"string"},"method":{"type":"string","uniqueKey":"resolve.method","typeLabel":"string"},"url":{"type":"string","uniqueKey":"resolve.url","typeLabel":"string"}},"required":["message"],"type":"object","uniqueKey":"resolve","typeLabel":"object"},"status":{"description":"HTTP status code","examples":[400],"format":"int64","type":"integer","uniqueKey":"status","typeLabel":"integer\u003cint64>"},"title":{"description":"A short, human-readable summary of the problem type. This value should not change between occurrences of the error.","examples":["Bad Request"],"type":"string","uniqueKey":"title","typeLabel":"string"},"type":{"default":"about:blank","description":"A URI reference to human-readable documentation for the error.","examples":["https://example.com/errors/example"],"format":"uri","type":"string","uniqueKey":"type","typeLabel":"string\u003curi>"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"detail":"Property foo is required but is missing.","error_code":"\u003cstring>","errors":[{"location":"\u003cstring>","message":"\u003cstring>","value":"\u003cunknown>"}],"instance":"https://example.com/error-log/abc123","resolve":{"message":"\u003cstring>","action":"\u003cstring>","endpoint":"\u003cstring>","method":"\u003cstring>","url":"\u003cstring>"},"status":400,"title":"Bad Request","type":"https://example.com/errors/example"}}},"exampleType":"generated"}},"description":"Error","exampleType":"generated"}},"security":{"6eaf9b3e-ecc8-4824-9f49-a90cc24330bb":{"ApiKeyHeader":{"description":"Pass your API key in the X-API-Key header (recommended).","in":"header","name":"X-API-Key","type":"apiKey","scopes":[],"schemeName":"ApiKeyHeader"}},"4a92ee73-3abc-4d82-a0cf-459f8eeb6376":{"BearerAuth":{"description":"Pass your API key as a Bearer token in the Authorization header.","scheme":"bearer","type":"http","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"305202c7-9b3b-4e64-80d7-c552cdc6c008":{"url":"https://api.particle.pro"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"description":"Pass your API key in the X-API-Key header (recommended).","in":"header","name":"X-API-Key","type":"apiKey","scopes":[],"schemeName":"ApiKeyHeader"},"schema":{"title":"X-API-Key","type":"string","description":"Pass your API key in the X-API-Key header (recommended).","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyHeader","name":"X-API-Key"}],"title":"ApiKeyHeader"},{"schemes":[{"scheme":{"description":"Pass your API key as a Bearer token in the Authorization header.","scheme":"bearer","type":"http","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Pass your API key as a Bearer token in the Authorization header.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"particle-c40da4e2","siteName":"Particle API","title":"Compare how subjects are spoken of - Particle API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-27T10:14:55.137Z","originalFileLocation":"api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Sets two to five entities\u0026#x27; or companies\u0026#x27; share of voice by one speaker statement characteristics axis side by side, over the same window, speakers and filter: how NVIDIA is spoken of next to AMD and Intel. Each subject is exactly the split GET /v1/podcasts/mentions/share-of-voice returns for it with by set to the axis: one group per label, each a share of the subject\u0026#x27;s scored_mentions and flagged low_sample below 20. Subjects are returned in the order given. A subject that matches nothing, or a company with no linked entity, is a 422 naming it. by defaults to sentiment; breakdown splits each label group by a second axis. For which professions say it, use the share of voice with by=occupation, one subject at a time.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Particle API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/particle-c40da4e2/Uccj8-qi0DrvBDRY/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/particle-c40da4e2/Uccj8-qi0DrvBDRY/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/particle-c40da4e2/Uccj8-qi0DrvBDRY/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/particle-c40da4e2/Uccj8-qi0DrvBDRY/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/particle-c40da4e2/Uccj8-qi0DrvBDRY/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/particle-c40da4e2/Uccj8-qi0DrvBDRY/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/particle-c40da4e2/Uccj8-qi0DrvBDRY/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/particle-c40da4e2/Uccj8-qi0DrvBDRY/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/particle-c40da4e2/Uccj8-qi0DrvBDRY/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Compare how subjects are spoken of - Particle API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Sets two to five entities\u0026#x27; or companies\u0026#x27; share of voice by one speaker statement characteristics axis side by side, over the same window, speakers and filter: how NVIDIA is spoken of next to AMD and Intel. Each subject is exactly the split GET /v1/podcasts/mentions/share-of-voice returns for it with by set to the axis: one group per label, each a share of the subject\u0026#x27;s scored_mentions and flagged low_sample below 20. Subjects are returned in the order given. A subject that matches nothing, or a company with no linked entity, is a 422 naming it. by defaults to sentiment; breakdown splits each label group by a second axis. For which professions say it, use the share of voice with by=occupation, one subject at a time.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Particle API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.particle.pro/api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://particle-c40da4e2.mintlify.app/_mintlify/api/og/v2?division=Podcast+Episode+Search\u0026amp;title=Compare+how+subjects+are+spoken+of\u0026amp;description=Sets+two+to+five+entities%27+or+companies%27+share+of+voice+by+one+speaker+statement+characteristics+axis+side+by+side%2C+over+the+same+window%2C+speakers+and+filter%3A+h\u0026amp;theme=cc76b59effb7ea31e0037892\u0026amp;signature=ac0023c126bbd9ca91a2de3a3e7aeed303f752983af50a0112857cb1dc1e634c\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Compare how subjects are spoken of - Particle API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Sets two to five entities\u0026#x27; or companies\u0026#x27; share of voice by one speaker statement characteristics axis side by side, over the same window, speakers and filter: how NVIDIA is spoken of next to AMD and Intel. Each subject is exactly the split GET /v1/podcasts/mentions/share-of-voice returns for it with by set to the axis: one group per label, each a share of the subject\u0026#x27;s scored_mentions and flagged low_sample below 20. Subjects are returned in the order given. A subject that matches nothing, or a company with no linked entity, is a 422 naming it. by defaults to sentiment; breakdown splits each label group by a second axis. For which professions say it, use the share of voice with by=occupation, one subject at a time.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://particle-c40da4e2.mintlify.app/_mintlify/api/og/v2?division=Podcast+Episode+Search\u0026amp;title=Compare+how+subjects+are+spoken+of\u0026amp;description=Sets+two+to+five+entities%27+or+companies%27+share+of+voice+by+one+speaker+statement+characteristics+axis+side+by+side%2C+over+the+same+window%2C+speakers+and+filter%3A+h\u0026amp;theme=cc76b59effb7ea31e0037892\u0026amp;signature=ac0023c126bbd9ca91a2de3a3e7aeed303f752983af50a0112857cb1dc1e634c\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/particle-c40da4e2/Uccj8-qi0DrvBDRY/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Particle API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0369a1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.particle.pro/api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.particle.pro/#organization\",\"name\":\"Particle API\",\"url\":\"https://docs.particle.pro\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/particle-c40da4e2/tk5mmLn_iJIxNhbI/logo/light.svg?fit=max\u0026auto=format\u0026n=tk5mmLn_iJIxNhbI\u0026q=85\u0026s=a659784e597694177292b154cc1808f4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.particle.pro#website\",\"name\":\"Particle API\",\"url\":\"https://docs.particle.pro\",\"publisher\":{\"@id\":\"https://docs.particle.pro/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.particle.pro/api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of#webpage\",\"url\":\"https://docs.particle.pro/api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of\",\"name\":\"Compare how subjects are spoken of\",\"description\":\"Sets two to five entities' or companies' share of voice by one speaker statement characteristics axis side by side, over the same window, speakers and filter: how NVIDIA is spoken of next to AMD and Intel. Each subject is exactly the split GET /v1/podcasts/mentions/share-of-voice returns for it with by set to the axis: one group per label, each a share of the subject's scored_mentions and flagged low_sample below 20. Subjects are returned in the order given. A subject that matches nothing, or a company with no linked entity, is a 422 naming it. by defaults to sentiment; breakdown splits each label group by a second axis. For which professions say it, use the share of voice with by=occupation, one subject at a time.\",\"dateModified\":\"2026-10-27T10:14:55.137Z\",\"isPartOf\":{\"@id\":\"https://docs.particle.pro#website\"},\"breadcrumb\":{\"@id\":\"https://docs.particle.pro/api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.particle.pro/api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Podcast Episode Search\",\"item\":\"https://docs.particle.pro/api-reference/podcast-episode-search/search-podcast-episode-content\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Compare how subjects are spoken of\",\"item\":\"https://docs.particle.pro/api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.particle.pro/api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of#apireference\",\"headline\":\"Compare how subjects are spoken of\",\"name\":\"Compare how subjects are spoken of\",\"description\":\"Sets two to five entities' or companies' share of voice by one speaker statement characteristics axis side by side, over the same window, speakers and filter: how NVIDIA is spoken of next to AMD and Intel. Each subject is exactly the split GET /v1/podcasts/mentions/share-of-voice returns for it with by set to the axis: one group per label, each a share of the subject's scored_mentions and flagged low_sample below 20. Subjects are returned in the order given. A subject that matches nothing, or a company with no linked entity, is a 422 naming it. by defaults to sentiment; breakdown splits each label group by a second axis. For which professions say it, use the share of voice with by=occupation, one subject at a time.\",\"url\":\"https://docs.particle.pro/api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of\",\"mainEntityOfPage\":{\"@id\":\"https://docs.particle.pro/api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of#webpage\"},\"dateModified\":\"2026-10-27T10:14:55.137Z\",\"publisher\":{\"@id\":\"https://docs.particle.pro/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.particle.pro#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Particle API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Particle API","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API reference","groups":[{"group":"API documentation","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"title":"Alerts","sidebarTitle":"Alerts overview","icon":"bell","href":"/api-reference/alerts"}]},{"group":"Alerts","pages":[{"title":"Get a single alert delivery","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/alerts/deliveries/{id}","href":"/api-reference/alerts/get-a-single-alert-delivery"},{"title":"Get the exact JSON a webhook delivery POSTed","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/alerts/deliveries/{id}/webhook-payload","href":"/api-reference/alerts/get-the-exact-json-a-webhook-delivery-posted"},{"title":"Preview alert disable action","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/alerts/disable","href":"/api-reference/alerts/preview-alert-disable-action"},{"title":"Disable an alert via email-footer token","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/alerts/disable","href":"/api-reference/alerts/disable-an-alert-via-email-footer-token"},{"title":"Get a single alert match","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/alerts/matches/{id}","href":"/api-reference/alerts/get-a-single-alert-match"},{"title":"Get the status and result of an alert preview","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/alerts/preview/{previewId}","href":"/api-reference/alerts/get-the-status-and-result-of-an-alert-preview"},{"title":"Get an alert","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/alerts/{id}","href":"/api-reference/alerts/get-an-alert"},{"title":"Delete an alert","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/alerts/{id}","href":"/api-reference/alerts/delete-an-alert"},{"title":"Update an alert","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/alerts/{id}","href":"/api-reference/alerts/update-an-alert"},{"title":"List deliveries for an alert","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/alerts/{id}/deliveries","href":"/api-reference/alerts/list-deliveries-for-an-alert"},{"title":"List matches for an alert","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/alerts/{id}/matches","href":"/api-reference/alerts/list-matches-for-an-alert"},{"title":"Send a test webhook","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/alerts/{id}/test-webhook","href":"/api-reference/alerts/send-a-test-webhook"},{"title":"List alerts","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{projectId}/alerts","href":"/api-reference/alerts/list-alerts"},{"title":"Create an alert","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{projectId}/alerts","href":"/api-reference/alerts/create-an-alert"},{"title":"Preview match frequency for an alert before creating it","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{projectId}/alerts/preview","href":"/api-reference/alerts/preview-match-frequency-for-an-alert-before-creating-it"}]},{"group":"Companies","pages":[{"title":"List companies","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/companies","href":"/api-reference/companies/list-companies"},{"title":"Get a company","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/companies/{id}","href":"/api-reference/companies/get-a-company"},{"title":"List company competitors","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/companies/{id}/competitors","href":"/api-reference/companies/list-company-competitors"},{"title":"List a company's external profiles","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/companies/{id}/external-links","href":"/api-reference/companies/list-a-companys-external-profiles"},{"title":"List company people","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/companies/{id}/people","href":"/api-reference/companies/list-company-people"},{"title":"Get company advertising profile","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/companies/{id}/podcast/advertising","href":"/api-reference/companies/get-company-advertising-profile"},{"title":"List company podcast advertising placements","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/companies/{id}/podcast/advertising/placements","href":"/api-reference/companies/list-company-podcast-advertising-placements"},{"title":"List podcasts carrying company advertising","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/companies/{id}/podcast/advertising/podcasts","href":"/api-reference/companies/list-podcasts-carrying-company-advertising"},{"title":"List podcasts a company could advertise on next","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/companies/{id}/podcast/recommendations","href":"/api-reference/companies/list-podcasts-a-company-could-advertise-on-next"},{"title":"List company products","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/companies/{id}/products","href":"/api-reference/companies/list-company-products"}]},{"group":"Embed","pages":[{"title":"Get clip embed","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/embed/clips/{id}","href":"/api-reference/embed/get-clip-embed"},{"title":"Get clip embed transcript","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/embed/clips/{id}/transcript","href":"/api-reference/embed/get-clip-embed-transcript"},{"title":"Get episode embed code","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/embed/episodes/{episode_id}/code","href":"/api-reference/embed/get-episode-embed-code"}]},{"group":"Entities","pages":[{"title":"List entities","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/entities","href":"/api-reference/entities/list-entities"},{"title":"Look up people and companies by external identifier","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/entities/lookup","href":"/api-reference/entities/look-up-people-and-companies-by-external-identifier"},{"title":"Search entities","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/entities/search","href":"/api-reference/entities/search-entities"},{"title":"List entity types","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/entities/types","href":"/api-reference/entities/list-entity-types"},{"title":"Get an entity","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/entities/{id}","href":"/api-reference/entities/get-an-entity"}]},{"group":"Account","pages":[{"title":"Identify your API key","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/me","href":"/api-reference/account/identify-your-api-key"},{"title":"Get your API key's usage","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/me/usage","href":"/api-reference/account/get-your-api-keys-usage"}]},{"group":"People","pages":[{"title":"Find experts","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/people/expertise","href":"/api-reference/people/find-experts"},{"title":"List fields of research","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/people/fields","href":"/api-reference/people/list-fields-of-research"},{"title":"Get a field of research","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/people/fields/{code}","href":"/api-reference/people/get-a-field-of-research"},{"title":"Rank a field of research's guests","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/people/fields/{code}/guests","href":"/api-reference/people/rank-a-field-of-researchs-guests"},{"title":"Rank the podcasts that book a field of research","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/people/fields/{code}/podcasts","href":"/api-reference/people/rank-the-podcasts-that-book-a-field-of-research"},{"title":"List occupations","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/people/occupations","href":"/api-reference/people/list-occupations"},{"title":"Get an occupation","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/people/occupations/{code}","href":"/api-reference/people/get-an-occupation"},{"title":"Rank an occupation's guests","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/people/occupations/{code}/guests","href":"/api-reference/people/rank-an-occupations-guests"},{"title":"Rank the podcasts that book an occupation","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/people/occupations/{code}/podcasts","href":"/api-reference/people/rank-the-podcasts-that-book-an-occupation"},{"title":"Get a Person","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/people/{id}","href":"/api-reference/people/get-a-person"},{"title":"Get a Person's expertise","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/people/{id}/expertise","href":"/api-reference/people/get-a-persons-expertise"},{"title":"Get how a Person speaks","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/people/{id}/statement-characteristics","href":"/api-reference/people/get-how-a-person-speaks"},{"title":"List a Person's external profiles","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/people/{slug}/external-links","href":"/api-reference/people/list-a-persons-external-profiles"}]},{"group":"Podcasts","pages":[{"title":"List and search podcasts","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts","href":"/api-reference/podcasts/list-and-search-podcasts"},{"title":"Download the show archive","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/archive/download","href":"/api-reference/podcasts/download-the-show-archive"},{"title":"Look up podcasts by external platform identifier","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/lookup","href":"/api-reference/podcasts/look-up-podcasts-by-external-platform-identifier"},{"title":"Search podcasts","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/search","href":"/api-reference/podcasts/search-podcasts"},{"title":"Get podcast catalog statistics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/stats","href":"/api-reference/podcasts/get-podcast-catalog-statistics"},{"title":"List podcast topics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/topics","href":"/api-reference/podcasts/list-podcast-topics"},{"title":"Get a podcast","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}","href":"/api-reference/podcasts/get-a-podcast"},{"title":"Get podcast advertising profile","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/advertising","href":"/api-reference/podcasts/get-podcast-advertising-profile"},{"title":"Get a podcast's latest bias analysis","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/bias","href":"/api-reference/podcasts/get-a-podcasts-latest-bias-analysis"},{"title":"List episodes for a podcast","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/episodes","href":"/api-reference/podcasts/list-episodes-for-a-podcast"},{"title":"List a podcast's third-party platform presences","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/external-links","href":"/api-reference/podcasts/list-a-podcasts-third-party-platform-presences"},{"title":"Get a podcast's format profile","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/format","href":"/api-reference/podcasts/get-a-podcasts-format-profile"},{"title":"List entity mentions in a podcast","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/mentions","href":"/api-reference/podcasts/list-entity-mentions-in-a-podcast"},{"title":"List sponsors a podcast could pitch","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/recommendations/sponsors","href":"/api-reference/podcasts/list-sponsors-a-podcast-could-pitch"},{"title":"List related podcasts","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/related","href":"/api-reference/podcasts/list-related-podcasts"},{"title":"Get a podcast's latest brand suitability assessment","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/suitability","href":"/api-reference/podcasts/get-a-podcasts-latest-brand-suitability-assessment"}]},{"group":"Podcast Advertising","pages":[{"title":"Get sponsor co-occurrence","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/advertising/co-occurrence","href":"/api-reference/podcast-advertising/get-sponsor-co-occurrence"},{"title":"Get advertising leaderboard","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/advertising/leaderboard","href":"/api-reference/podcast-advertising/get-advertising-leaderboard"},{"title":"Get advertising leaderboard preview","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/advertising/leaderboard/preview","href":"/api-reference/podcast-advertising/get-advertising-leaderboard-preview"},{"title":"Get publisher advertising leaderboard","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/advertising/publishers/leaderboard","href":"/api-reference/podcast-advertising/get-publisher-advertising-leaderboard"},{"title":"List sponsors","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/advertising/sponsors","href":"/api-reference/podcast-advertising/list-sponsors"},{"title":"List trending sponsors","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/advertising/sponsors/trends","href":"/api-reference/podcast-advertising/list-trending-sponsors"},{"title":"Get a sponsor","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/advertising/sponsors/{id}","href":"/api-reference/podcast-advertising/get-a-sponsor"},{"title":"List podcasts for a sponsor","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/advertising/sponsors/{id}/podcasts","href":"/api-reference/podcast-advertising/list-podcasts-for-a-sponsor"},{"title":"List publishers for a sponsor","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/advertising/sponsors/{id}/publishers","href":"/api-reference/podcast-advertising/list-publishers-for-a-sponsor"},{"title":"List ad segments for a sponsor","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/advertising/sponsors/{id}/segments","href":"/api-reference/podcast-advertising/list-ad-segments-for-a-sponsor"},{"title":"Get advertising timeseries","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/advertising/timeseries","href":"/api-reference/podcast-advertising/get-advertising-timeseries"},{"title":"Get publisher advertising profile","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/publishers/{id}/advertising","href":"/api-reference/podcast-advertising/get-publisher-advertising-profile"},{"title":"List publisher's podcasts ranked by ad volume","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/publishers/{id}/advertising/podcasts","href":"/api-reference/podcast-advertising/list-publishers-podcasts-ranked-by-ad-volume"},{"title":"List sponsors for a publisher","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/publishers/{id}/advertising/sponsors","href":"/api-reference/podcast-advertising/list-sponsors-for-a-publisher"},{"title":"List sponsors advertising on a podcast","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/advertising/sponsors","href":"/api-reference/podcast-advertising/list-sponsors-advertising-on-a-podcast"}]},{"group":"Podcast Bias","pages":[{"title":"Rank publishers by political bias metric","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/bias/publishers/leaderboard","href":"/api-reference/podcast-bias/rank-publishers-by-political-bias-metric"},{"title":"List publishers with podcasts in a bias bucket","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/bias/{result}/publishers","href":"/api-reference/podcast-bias/list-publishers-with-podcasts-in-a-bias-bucket"},{"title":"Get publisher political bias profile","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/publishers/{id}/bias","href":"/api-reference/podcast-bias/get-publisher-political-bias-profile"},{"title":"List analyzed podcasts for a publisher","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/publishers/{id}/bias/podcasts","href":"/api-reference/podcast-bias/list-analyzed-podcasts-for-a-publisher"}]},{"group":"Podcast Clips","pages":[{"title":"List clips","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/clips","href":"/api-reference/podcast-clips/list-clips"},{"title":"Get a clip","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/clips/{id}","href":"/api-reference/podcast-clips/get-a-clip"},{"title":"List clips for an episode","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/{id}/clips","href":"/api-reference/podcast-clips/list-clips-for-an-episode"}]},{"group":"Podcast Transcripts","pages":[{"title":"Get clip transcript","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/clips/{id}/transcript","href":"/api-reference/podcast-transcripts/get-clip-transcript"},{"title":"Get episode transcript","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/{id}/transcript","href":"/api-reference/podcast-transcripts/get-episode-transcript"},{"title":"Get entity mentions in transcript","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/{id}/transcript/mentions","href":"/api-reference/podcast-transcripts/get-entity-mentions-in-transcript"},{"title":"Get a transcript excerpt around a moment","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/{id}/transcript/preview","href":"/api-reference/podcast-transcripts/get-a-transcript-excerpt-around-a-moment"},{"title":"Get word-level transcript","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/{id}/transcript/words","href":"/api-reference/podcast-transcripts/get-word-level-transcript"},{"title":"Get segment transcript","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/segments/{id}/transcript","href":"/api-reference/podcast-transcripts/get-segment-transcript"}]},{"group":"Entity Charts","pages":[{"title":"List entity charts","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/entities/charts","href":"/api-reference/entity-charts/list-entity-charts"},{"title":"Get an entity chart","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/entities/charts/{category}","href":"/api-reference/entity-charts/get-an-entity-chart"}]},{"group":"Podcast Episodes","pages":[{"title":"List episodes","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes","href":"/api-reference/podcast-episodes/list-episodes"},{"title":"List the episode archive","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/archive","href":"/api-reference/podcast-episodes/list-the-episode-archive"},{"title":"Download the episode archive","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/archive/download","href":"/api-reference/podcast-episodes/download-the-episode-archive"},{"title":"Replay the episode archive","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/archive/stream","href":"/api-reference/podcast-episodes/replay-the-episode-archive"},{"title":"Poll the episode feed","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/feed","href":"/api-reference/podcast-episodes/poll-the-episode-feed"},{"title":"Look up episodes by external identifier","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/lookup","href":"/api-reference/podcast-episodes/look-up-episodes-by-external-identifier"},{"title":"Stream episodes","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/stream","href":"/api-reference/podcast-episodes/stream-episodes"},{"title":"Stream episodes (POST)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/podcasts/episodes/stream","href":"/api-reference/podcast-episodes/stream-episodes-post"},{"title":"Get episode timeseries","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/timeseries","href":"/api-reference/podcast-episodes/get-episode-timeseries"},{"title":"Get an episode","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/{id}","href":"/api-reference/podcast-episodes/get-an-episode"},{"title":"List ads in an episode","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/{id}/ads","href":"/api-reference/podcast-episodes/list-ads-in-an-episode"},{"title":"List entities in an episode","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/{id}/entities","href":"/api-reference/podcast-episodes/list-entities-in-an-episode"},{"title":"List an episode's guest expertise","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/{id}/expertise","href":"/api-reference/podcast-episodes/list-an-episodes-guest-expertise"},{"title":"List related episodes","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/{id}/related","href":"/api-reference/podcast-episodes/list-related-episodes"},{"title":"List speakers in an episode","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/{id}/speakers","href":"/api-reference/podcast-episodes/list-speakers-in-an-episode"},{"title":"List topics for an episode","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/{id}/topics","href":"/api-reference/podcast-episodes/list-topics-for-an-episode"}]},{"group":"Podcast Episode Search","pages":[{"title":"Search podcast episode content","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/search","href":"/api-reference/podcast-episode-search/search-podcast-episode-content"},{"title":"Search podcast dialogue for entity mentions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/mentions","href":"/api-reference/podcast-episode-search/search-podcast-dialogue-for-entity-mentions"},{"title":"List an entity's mentions by podcast","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/mentions/by-podcast","href":"/api-reference/podcast-episode-search/list-an-entitys-mentions-by-podcast"},{"title":"Get mention share of voice","description":"Splits the podcast lines mentioning an entity by the occupations or fields of the people who said them: what share of what is said about it comes from, say, journalists or economists. A line counts when its speaker is linked to a person with an expertise reading and, for a guest, the appearance read does not doubt it is them; a person counts under every code listed for them, so shares can sum past 1. Ad reads are excluded unless include_ads. The window defaults to the last 30 days and may span 365; interval adds each group's mentions per bucket. Requires entity_id or company_id. For the mentions themselves, use GET /v1/podcasts/mentions; for their counts over time, GET /v1/podcasts/mentions/timeseries.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/mentions/share-of-voice","href":"/api-reference/podcast-episode-search/get-mention-share-of-voice"},{"title":"Compare how subjects are spoken of","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/mentions/share-of-voice/compare","href":"/api-reference/podcast-episode-search/compare-how-subjects-are-spoken-of"},{"title":"Get mention timeseries","description":"Returns time-bucketed counts of episodes mentioning an entity, plus per-bucket mention line and distinct podcast counts and range totals — the aggregate twin of `/v1/podcasts/mentions`. For windows the search can fully enumerate, bucket counts match what it returns: mentions inside ad reads are excluded by default (pass `include_ads=true` to count them), so use this for mention trend charts instead of paging the search once per period. Buckets are UTC-aligned, zero-filled, and Monday-aligned for weeks; a bucket the window cuts through, such as the current week of a window running to now, is marked `partial`, so compare full buckets with each other. Requires entity_id or company_id. Omitting since aggregates all time. Ranges are capped at 1000 buckets.\n\nFor which podcasts carried the mentions, compared with the period before, use `/v1/podcasts/mentions/by-podcast`. For appearance trends by speaker role across episode-level filters (language, duration, keyword_search) use `/v1/podcasts/episodes/timeseries` instead; its `role=mention` counts include ad reads.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/mentions/timeseries","href":"/api-reference/podcast-episode-search/get-mention-timeseries"}]},{"group":"Podcast Segments","pages":[{"title":"List segments for an episode","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/episodes/{id}/segments","href":"/api-reference/podcast-segments/list-segments-for-an-episode"},{"title":"List segments","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/segments","href":"/api-reference/podcast-segments/list-segments"},{"title":"Get a segment","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/segments/{id}","href":"/api-reference/podcast-segments/get-a-segment"}]},{"group":"Podcast Guests","pages":[{"title":"List podcast guests","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/guests","href":"/api-reference/podcast-guests/list-podcast-guests"},{"title":"List trending podcast guests","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/guests/trends","href":"/api-reference/podcast-guests/list-trending-podcast-guests"},{"title":"Get a podcast guest profile","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/guests/{id}","href":"/api-reference/podcast-guests/get-a-podcast-guest-profile"},{"title":"List appearances for a podcast guest","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/guests/{id}/appearances","href":"/api-reference/podcast-guests/list-appearances-for-a-podcast-guest"},{"title":"List podcasts a guest has appeared on","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/guests/{id}/podcasts","href":"/api-reference/podcast-guests/list-podcasts-a-guest-has-appeared-on"},{"title":"List podcasts a guest could plausibly appear on next","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/guests/{id}/recommendations/podcasts","href":"/api-reference/podcast-guests/list-podcasts-a-guest-could-plausibly-appear-on-next"},{"title":"Get a guest's brand-suitability exposure profile","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/guests/{id}/suitability","href":"/api-reference/podcast-guests/get-a-guests-brand-suitability-exposure-profile"},{"title":"List the guest roster for a podcast","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/guests","href":"/api-reference/podcast-guests/list-the-guest-roster-for-a-podcast"},{"title":"Get the expertise of a podcast's guests","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/guests/expertise","href":"/api-reference/podcast-guests/get-the-expertise-of-a-podcasts-guests"},{"title":"List a podcast's guests in an occupation or field","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/guests/expertise/{code}","href":"/api-reference/podcast-guests/list-a-podcasts-guests-in-an-occupation-or-field"},{"title":"List guests a podcast could plausibly book","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/recommendations/guests","href":"/api-reference/podcast-guests/list-guests-a-podcast-could-plausibly-book"}]},{"group":"Podcast Publishers","pages":[{"title":"List podcast publishers","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/publishers","href":"/api-reference/podcast-publishers/list-podcast-publishers"},{"title":"Get a podcast publisher","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/publishers/{id}","href":"/api-reference/podcast-publishers/get-a-podcast-publisher"},{"title":"List podcasts for a publisher","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/publishers/{id}/podcasts","href":"/api-reference/podcast-publishers/list-podcasts-for-a-publisher"},{"title":"Get a publisher's brand suitability profile","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/publishers/{id}/suitability","href":"/api-reference/podcast-publishers/get-a-publishers-brand-suitability-profile"},{"title":"List a publisher's podcasts with their suitability verdicts","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/publishers/{id}/suitability/podcasts","href":"/api-reference/podcast-publishers/list-a-publishers-podcasts-with-their-suitability-verdicts"}]},{"group":"Podcast Rankings","pages":[{"title":"List podcast rankings","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/rankings","href":"/api-reference/podcast-rankings/list-podcast-rankings"},{"title":"List ranking categories","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/rankings/categories","href":"/api-reference/podcast-rankings/list-ranking-categories"},{"title":"List ranking countries","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/rankings/countries","href":"/api-reference/podcast-rankings/list-ranking-countries"},{"title":"Get chart slot history","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/rankings/history","href":"/api-reference/podcast-rankings/get-chart-slot-history"},{"title":"List ranking movers","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/rankings/movers","href":"/api-reference/podcast-rankings/list-ranking-movers"},{"title":"List ranking sources","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/rankings/sources","href":"/api-reference/podcast-rankings/list-ranking-sources"},{"title":"List current rankings for a podcast","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/rankings","href":"/api-reference/podcast-rankings/list-current-rankings-for-a-podcast"},{"title":"Get historical rankings for a podcast","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/rankings/history","href":"/api-reference/podcast-rankings/get-historical-rankings-for-a-podcast"},{"title":"Summarize a podcast's chart presence","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/rankings/summary","href":"/api-reference/podcast-rankings/summarize-a-podcasts-chart-presence"}]},{"group":"Podcast Requests","pages":[{"title":"List podcast requests","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/requests","href":"/api-reference/podcast-requests/list-podcast-requests"},{"title":"Request a podcast we don't index","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/podcasts/requests","href":"/api-reference/podcast-requests/request-a-podcast-we-dont-index"},{"title":"Get a podcast request","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/requests/{id}","href":"/api-reference/podcast-requests/get-a-podcast-request"}]},{"group":"Podcast Brand Suitability","pages":[{"title":"Get publishers ranked by exposure to a brand-safety category","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/suitability/categories/{code}/publishers","href":"/api-reference/podcast-brand-suitability/get-publishers-ranked-by-exposure-to-a-brand-safety-category"},{"title":"Get a cross-publisher suitability leaderboard","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/suitability/publishers/leaderboard","href":"/api-reference/podcast-brand-suitability/get-a-cross-publisher-suitability-leaderboard"}]},{"group":"Podcast Transcription","pages":[{"title":"List transcription requests","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/transcription/requests","href":"/api-reference/podcast-transcription/list-transcription-requests"},{"title":"Request an episode's transcription","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/podcasts/transcription/requests","href":"/api-reference/podcast-transcription/request-an-episodes-transcription"},{"title":"Get a transcription request","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/transcription/requests/{id}","href":"/api-reference/podcast-transcription/get-a-transcription-request"}]},{"group":"Podcast Ratings","pages":[{"title":"List ratings for a podcast","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/ratings","href":"/api-reference/podcast-ratings/list-ratings-for-a-podcast"},{"title":"Summarize a podcast's ratings","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/podcasts/{id}/ratings/summary","href":"/api-reference/podcast-ratings/summarize-a-podcasts-ratings"}]},{"group":"Slack Connections","pages":[{"title":"List Slack connections for a project","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{projectId}/slack/connections","href":"/api-reference/slack-connections/list-slack-connections-for-a-project"},{"title":"Initiate a Slack workspace OAuth install","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{projectId}/slack/connections/initiate","href":"/api-reference/slack-connections/initiate-a-slack-workspace-oauth-install"},{"title":"Delete a Slack connection","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{projectId}/slack/connections/{id}","href":"/api-reference/slack-connections/delete-a-slack-connection"},{"title":"List channels for a Slack connection","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{projectId}/slack/connections/{id}/channels","href":"/api-reference/slack-connections/list-channels-for-a-slack-connection"},{"title":"Complete a Slack workspace OAuth install","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/slack/connections/callback","href":"/api-reference/slack-connections/complete-a-slack-workspace-oauth-install"}]},{"group":"Webhook Connections","pages":[{"title":"List webhook connections for a project","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{projectId}/webhooks/connections","href":"/api-reference/webhook-connections/list-webhook-connections-for-a-project"},{"title":"Create a webhook connection","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{projectId}/webhooks/connections","href":"/api-reference/webhook-connections/create-a-webhook-connection"},{"title":"Get a webhook connection","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/projects/{projectId}/webhooks/connections/{id}","href":"/api-reference/webhook-connections/get-a-webhook-connection"},{"title":"Delete a webhook connection","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/projects/{projectId}/webhooks/connections/{id}","href":"/api-reference/webhook-connections/delete-a-webhook-connection"},{"title":"Rotate a webhook connection's signing secret","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{projectId}/webhooks/connections/{id}/secret/rotate","href":"/api-reference/webhook-connections/rotate-a-webhook-connections-signing-secret"}]},{"group":"Topics","pages":[{"title":"List topics","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/topics","href":"/api-reference/topics/list-topics"},{"title":"Get a topic","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/topics/{id}","href":"/api-reference/topics/get-a-topic"}]}]},{"tab":"MCP server","pages":[{"title":"MCP server","href":"/mcp/overview"}]}]},"title":"Compare how subjects are spoken of - Particle API","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-rfhihCWU.js","utils-BmH1XFxk.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BcNsxPKB.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BAES3tkd.js","snippetPresets-DCMQBKLP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D6l_bzE9.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BOktbnNh.js","shallow-BCs8SgM7.js","getApiPlaygroundDisplay-DEmW5bJB.js","CodeSnippet-CpZOpB9C.js","CodeSnippets-BOBDqibl.js","Page-D5fEM6aW.js","getPastedJson-DH2JBvmr.js","icon-BBJH-kKh.js","MethodPill-D2Sd5NLC.js","DuplicateIcon-CGgfL2qN.js","createIcon-BKudBBzi.js","DynamicMarkdown-85clUA0i.js","SectionHeading-D0JiMgDx.js","axios-vUo_bRtp.js","Markdown-Cfiy0xZO.js","clsx-rL8ZCCw4.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-aeztFa9U.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BywkCr5C.js"]}