Create an alert that watches a single entity and emails the configured address whenever the entity is mentioned on a podcast episode. To cover several entities, create one alert per entity. Alerts are not covered by zero data retention: the alert’s definition and its matched results are stored as part of the alerts feature.
Prefer the terminal? This endpoint is also a command in the Particle CLI: pick Particle CLI in the request example’s language menu. Install the Particle CLI.
A key you choose, such as a UUID, to retry this request safely. Resend the same key with the same request and the first response is returned with Idempotent-Replayed: true instead of the request running again, for 24 hours after it succeeded. The same key with a different request returns 422 idempotency_key_reused; a retry while the first request is still running returns 409 idempotency_key_in_use. A request that fails does not use up its key.
Delivery channels for match notifications. Mix of EMAIL and SLACK destinations is allowed. SLACK destinations require a previously-installed Slack workspace connection (see POST /v1/projects/{projectId}/slack/connections/initiate) and a channel id from the connection's channel listing.
How often matches are delivered: REALTIME (a separate email per match), DAILY (one bundled email each morning at 13:00 UTC), or WEEKLY (one bundled email Monday 13:00 UTC). Defaults to REALTIME.
The entity to watch — exactly one for ENTITY_MENTION and PODCAST_SPEAKER alerts; an alert watches a single entity, so create a separate alert per entity. Omit for KEYWORD_MENTION alerts. v1 matches across podcast episodes only.
Persistent narrowing applied to every surface the alert produces (matches list, realtime email, digest). Omit (or send an empty object) for no filters.
KEYWORD_MENTION alerts only, and required for them: the phrase to watch, e.g. Lightfield. It matches the way a double-quoted keyword search phrase does — the words adjacent and in order, ignoring case and punctuation, on whole words — within topic-discussion and interview segments, never in ad reads, intros, or outros. Set description to say what the phrase means (e.g. 'Lightfield, the AI-native CRM') — it is how same-name mentions of something else get filtered out. A phrase that matched more than 700 podcast episodes in the past week is rejected as too broad.
What signal the alert watches for. Defaults to ENTITY_MENTION (fires on any mention of a watched entity). PODCAST_SPEAKER fires only when a watched entity is themself an identified speaker on the episode, in one of the alert's speaker roles: by default GUEST, PANELIST, CORRESPONDENT, AUDIENCE, and SOUNDBITE_SPEAKER (an excerpted clip of them played on the episode); raw STT/LLM labels like CALLER, LISTENER, REPORTER are normalized into these buckets on write. HOST is excluded by default because hosting the show isn't an appearance. speaker_roles replaces the default set. KEYWORD_MENTION fires whenever the keyword is spoken in a podcast episode — use it for brands, products, or terms the entity resolvers don't know; it takes keyword instead of entities.
How often matches are delivered: REALTIME (a separate email per match), DAILY (one bundled email each morning at 13:00 UTC), or WEEKLY (one bundled email Monday 13:00 UTC). Defaults to REALTIME.
What signal the alert watches for. ENTITY_MENTION fires whenever a watched entity is mentioned in a podcast episode. PODCAST_SPEAKER fires only when a watched entity is themself an identified speaker on the episode, in one of the alert's speaker roles. By default those are GUEST, PANELIST, CORRESPONDENT, AUDIENCE (which absorbs callers, listeners, and other audience-side roles after server-side canonicalization), and SOUNDBITE_SPEAKER (an excerpted clip of them played on the episode); HOST is excluded by default because hosting the show isn't an appearance. speaker_roles replaces the default set. KEYWORD_MENTION fires whenever the alert's keyword is spoken in a podcast episode, for names the entity resolvers don't know; it watches a keyword instead of entities. Kind is fixed at creation.
Persistent narrowing applied to every surface the alert produces: the matches list, the realtime email, and the daily/weekly digest. Absent = no filters (every detected match is surfaced).
KEYWORD_MENTION alerts only: the phrase the alert watches (see the create request's keyword for how it matches). Absent on entity alerts.
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":"6ae50444bbaf7eb08d127dd1","collectionId":"a4bcb438-95e1-4f42-a5b0-5c37fe24cb33","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae50444bbaf7eb08d127dd1"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae50444bbaf7eb08d127dd1","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API reference","count":169},{"language":"default","tag":"Guides","count":126},{"language":"default","tag":"Errors","count":70},{"language":"default","tag":"MCP server","count":58},{"language":"default","tag":"Podcasts","count":58},{"language":"default","tag":"Tools","count":51},{"language":"default","tag":"Billing \u0026 subscription","count":30},{"language":"default","tag":"Alerts","count":27},{"language":"default","tag":"People","count":21},{"language":"default","tag":"Companies","count":17}]},"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":"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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"turbopuffer-dual-write","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},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":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/alerts/create-an-alert","slug":"/api-reference/alerts/create-an-alert","pageMetadata":{"title":"Create an alert","description":"Create an alert that watches a single entity and emails the configured address whenever the entity is mentioned on a podcast episode. To cover several entities, create one alert per entity. Alerts are not covered by zero data retention: the alert's definition and its matched results are stored as part of the alerts feature.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{projectId}/alerts","href":"/api-reference/alerts/create-an-alert","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: \"Create an alert that watches a single entity and emails the configured address whenever the entity is mentioned on a podcast episode. To cover several entities, create one alert per entity. Alerts are not covered by zero data retention: the alert’s definition and its matched results are stored as part of the alerts feature.\"\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{jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,strong:`strong`,..._provideComponents(),...props.components},{Tip}=_components;if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(Tip,{children:[`Prefer the terminal? This endpoint is also a command in the Particle CLI: pick `,_jsx(_components.strong,{children:`Particle CLI`}),` in the request example’s language menu. `,_jsx(_components.a,{href:`https://cli.particle.pro`,children:`Install the Particle CLI`}),`.`]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Create an alert","description":"Create an alert that watches a single entity and emails the configured address whenever the entity is mentioned on a podcast episode. To cover several entities, create one alert per entity. Alerts are not covered by zero data retention: the alert's definition and its matched results are stored as part of the alerts feature.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/projects/{projectId}/alerts","href":"/api-reference/alerts/create-an-alert","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Create an alert that watches a single entity and emails the configured address whenever the entity is mentioned on a podcast episode. To cover several entities, create one alert per entity. Alerts are not covered by zero data retention: the alert's definition and its matched results are stored as part of the alerts feature.","operationId":"create-alert","parameters":["c94d6537-683a-4f1a-a2b8-967ab216d251","a4067636-83a0-4ed4-9fe4-0d7a8b18bdc3"],"requestBody":"c6066ea6-2375-4dca-9135-a4d8c77ffada","responses":{"200":"1137ce09-e61b-4ca3-9f6d-87845bde4081","default":"aa48ee0a-b68a-44cd-b18c-ca24ee53ef0e"},"summary":"Create an alert","tags":["Alerts","tier:standard"],"x-codeSamples":[{"label":"cURL","lang":"curl","source":"curl -X POST \\\n -H \"X-API-Key: $PARTICLE_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"entities\": [\n {\n \"entity_id\": \"3CensCwu5G2oKCFgPrNf89\",\n \"entity_type\": \"COMPANY\"\n }\n ],\n \"notifications\": [\n {\n \"email\": \"you@example.com\",\n \"type\": \"EMAIL\"\n }\n ],\n \"title\": \"Nvidia mentions on podcasts\"\n}' \\\n \"https://api.particle.pro/v1/projects/{projectId}/alerts\""},{"label":"Particle CLI","lang":"bash","source":"# Install: https://cli.particle.pro\nparticle alert create \\\n --entities '[{\"entity_id\":\"3CensCwu5G2oKCFgPrNf89\",\"entity_type\":\"COMPANY\"}]' \\\n --notifications '[{\"email\":\"you@example.com\",\"type\":\"EMAIL\"}]' \\\n --title 'Nvidia mentions on podcasts'"}],"x-cost-weight":1,"x-entitlement-priced":true,"x-idempotent":true,"x-mint":{"content":"\u003cTip>Prefer the terminal? This endpoint is also a command in the Particle CLI: pick **Particle CLI** in the request example's language menu. [Install the Particle CLI](https://cli.particle.pro).\u003c/Tip>"},"x-pagination":"none","x-tier":"standard","method":"post","type":"path","servers":["bc7c60ad-8b90-43eb-b968-32aa4dec56b4"],"security":["a5428769-866c-42c7-a004-c213d9b7ee43","0ced4d8f-1c3f-4d2a-8de5-c63f277c6d53"],"path":"/v1/projects/{projectId}/alerts","baseUrlOptions":["https://api.particle.pro"],"title":"Create an alert","codeSamples":[{"label":"cURL","lang":"curl","source":"curl -X POST \\\n -H \"X-API-Key: $PARTICLE_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"entities\": [\n {\n \"entity_id\": \"3CensCwu5G2oKCFgPrNf89\",\n \"entity_type\": \"COMPANY\"\n }\n ],\n \"notifications\": [\n {\n \"email\": \"you@example.com\",\n \"type\": \"EMAIL\"\n }\n ],\n \"title\": \"Nvidia mentions on podcasts\"\n}' \\\n \"https://api.particle.pro/v1/projects/{projectId}/alerts\""},{"label":"Particle CLI","lang":"bash","source":"# Install: https://cli.particle.pro\nparticle alert create \\\n --entities '[{\"entity_id\":\"3CensCwu5G2oKCFgPrNf89\",\"entity_type\":\"COMPANY\"}]' \\\n --notifications '[{\"email\":\"you@example.com\",\"type\":\"EMAIL\"}]' \\\n --title 'Nvidia mentions on podcasts'"}],"requestExampleLanguages":["bash","bash"],"requiredOnlyExamples":false,"disableCodeSampleGeneration":true,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"c94d6537-683a-4f1a-a2b8-967ab216d251":{"description":"A key you choose, such as a UUID, to retry this request safely. Resend the same key with the same request and the first response is returned with `Idempotent-Replayed: true` instead of the request running again, for 24 hours after it succeeded. The same key with a different request returns 422 `idempotency_key_reused`; a retry while the first request is still running returns 409 `idempotency_key_in_use`. A request that fails does not use up its key.","example":"4f9d1c2a-6b1e-4f7a-9d3c-2e8b5a7c1d40","in":"header","name":"Idempotency-Key","schema":{"maxLength":128,"minLength":8,"type":"string","description":"A key you choose, such as a UUID, to retry this request safely. Resend the same key with the same request and the first response is returned with `Idempotent-Replayed: true` instead of the request running again, for 24 hours after it succeeded. The same key with a different request returns 422 `idempotency_key_reused`; a retry while the first request is still running returns 409 `idempotency_key_in_use`. A request that fails does not use up its key.","uniqueKey":"","typeLabel":"string"}},"a4067636-83a0-4ed4-9fe4-0d7a8b18bdc3":{"description":"Project ID.","in":"path","name":"projectId","required":true,"schema":{"description":"Project ID.","type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"example":{"entities":[{"entity_id":"3CensCwu5G2oKCFgPrNf89","entity_type":"COMPANY"}],"notifications":[{"email":"you@example.com","type":"EMAIL"}],"title":"Nvidia mentions on podcasts"},"schema":{"additionalProperties":false,"properties":{"notifications":{"oneOf":[{"description":"Delivery channels for match notifications. Mix of EMAIL and SLACK destinations is allowed. SLACK destinations require a previously-installed Slack workspace connection (see POST /v1/projects/{projectId}/slack/connections/initiate) and a channel id from the connection's channel listing.","items":{"additionalProperties":false,"properties":{"type":{"description":"Delivery channel type. EMAIL writes to email; SLACK posts a message to a channel in a connected Slack workspace; WEBHOOK POSTs a signed JSON payload to a configured webhook connection.","enum":["EMAIL","SLACK","WEBHOOK"],"type":"string","isRequired":true,"uniqueKey":"notifications.oneOf.0.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"created_by":{"additionalProperties":false,"properties":{"id":{"description":"Creator's user ID","type":"string","isRequired":true,"uniqueKey":"notifications.oneOf.0.items.[INDEX].created_by.id","typeLabel":"string"},"name":{"description":"Creator's display name","type":"string","isRequired":true,"uniqueKey":"notifications.oneOf.0.items.[INDEX].created_by.name","typeLabel":"string"}},"required":["id","name"],"type":"object","description":"User who added this destination. Server-populated.","uniqueKey":"notifications.oneOf.0.items.[INDEX].created_by","typeLabel":"object"},"email":{"description":"Required when type=EMAIL.","format":"email","type":"string","uniqueKey":"notifications.oneOf.0.items.[INDEX].email","typeLabel":"string\u003cemail>"},"id":{"type":"string","uniqueKey":"notifications.oneOf.0.items.[INDEX].id","typeLabel":"string"},"slack_channel_id":{"description":"Required when type=SLACK. Slack vendor channel id (e.g. C01234XYZ for public channels, G... for private channels). Must be a channel returned by GET /v1/projects/{projectId}/slack/connections/{id}/channels.","type":"string","uniqueKey":"notifications.oneOf.0.items.[INDEX].slack_channel_id","typeLabel":"string"},"slack_channel_name":{"description":"Optional. Display label for the destination channel. The server overwrites this from the cached slack_channels row on save, so clients do not need to supply it.","type":"string","uniqueKey":"notifications.oneOf.0.items.[INDEX].slack_channel_name","typeLabel":"string"},"slack_connection_id":{"description":"Required when type=SLACK. The Slack workspace connection that owns the channel. Any active connection belonging to the alert's project is accepted, whichever surface installed it, so an alert created in one app can be managed from the other.","type":"string","uniqueKey":"notifications.oneOf.0.items.[INDEX].slack_connection_id","typeLabel":"string"},"webhook_connection_id":{"description":"Required when type=WEBHOOK. The webhook connection that receives the signed payload.","type":"string","uniqueKey":"notifications.oneOf.0.items.[INDEX].webhook_connection_id","typeLabel":"string"}},"required":["type"],"type":"object","uniqueKey":"notifications.oneOf.0.items.[INDEX]","typeLabel":"object"},"maxItems":20,"minItems":1,"type":"array","isRequired":true,"uniqueKey":"notifications.oneOf.0","typeLabel":"object[]"},{"description":"Delivery channels for match notifications. Mix of EMAIL and SLACK destinations is allowed. SLACK destinations require a previously-installed Slack workspace connection (see POST /v1/projects/{projectId}/slack/connections/initiate) and a channel id from the connection's channel listing.","items":{"additionalProperties":false,"properties":{"created_by":{"additionalProperties":false,"properties":{"id":{"description":"Creator's user ID","type":"string"},"name":{"description":"Creator's display name","type":"string"}},"required":["id","name"],"type":"object","description":"User who added this destination. Server-populated."},"email":{"description":"Required when type=EMAIL.","format":"email","type":"string"},"id":{"type":"string"},"slack_channel_id":{"description":"Required when type=SLACK. Slack vendor channel id (e.g. C01234XYZ for public channels, G... for private channels). Must be a channel returned by GET /v1/projects/{projectId}/slack/connections/{id}/channels.","type":"string"},"slack_channel_name":{"description":"Optional. Display label for the destination channel. The server overwrites this from the cached slack_channels row on save, so clients do not need to supply it.","type":"string"},"slack_connection_id":{"description":"Required when type=SLACK. The Slack workspace connection that owns the channel. Any active connection belonging to the alert's project is accepted, whichever surface installed it, so an alert created in one app can be managed from the other.","type":"string"},"type":{"description":"Delivery channel type. EMAIL writes to email; SLACK posts a message to a channel in a connected Slack workspace; WEBHOOK POSTs a signed JSON payload to a configured webhook connection.","enum":["EMAIL","SLACK","WEBHOOK"],"type":"string"},"webhook_connection_id":{"description":"Required when type=WEBHOOK. The webhook connection that receives the signed payload.","type":"string"}},"required":["type"],"type":"object"},"maxItems":20,"minItems":1,"type":"null","isRequired":true,"uniqueKey":"notifications.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"notifications","typeLabel":"object[] | null"},"title":{"description":"Human-readable title","maxLength":200,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"delivery_cadence":{"description":"How often matches are delivered: REALTIME (a separate email per match), DAILY (one bundled email each morning at 13:00 UTC), or WEEKLY (one bundled email Monday 13:00 UTC). Defaults to REALTIME.","enum":["REALTIME","DAILY","WEEKLY"],"type":"string","uniqueKey":"delivery_cadence","typeLabel":"enum\u003cstring>"},"description":{"maxLength":2000,"type":"string","uniqueKey":"description","typeLabel":"string"},"entities":{"oneOf":[{"description":"The entity to watch — exactly one for ENTITY_MENTION and PODCAST_SPEAKER alerts; an alert watches a single entity, so create a separate alert per entity. Omit for KEYWORD_MENTION alerts. v1 matches across podcast episodes only.","items":{"additionalProperties":false,"properties":{"entity_id":{"type":"string","isRequired":true,"uniqueKey":"entities.oneOf.0.items.[INDEX].entity_id","typeLabel":"string"},"entity_type":{"enum":["PERSON","COMPANY","KNOWLEDGE_GRAPH_ENTITY"],"type":"string","isRequired":true,"uniqueKey":"entities.oneOf.0.items.[INDEX].entity_type","typeLabel":"enum\u003cstring>"},"image_url":{"description":"Image URL for the watched entity (headshot for PERSON, logo for COMPANY, image for KGE). Omitted from the response when no image is available.","type":"string","uniqueKey":"entities.oneOf.0.items.[INDEX].image_url","typeLabel":"string"},"name":{"description":"Display name of the watched entity. Omitted from the response when the underlying record cannot be resolved (e.g. deleted).","type":"string","uniqueKey":"entities.oneOf.0.items.[INDEX].name","typeLabel":"string"}},"required":["entity_type","entity_id"],"type":"object","uniqueKey":"entities.oneOf.0.items.[INDEX]","typeLabel":"object"},"maxItems":1,"minItems":1,"type":"array","uniqueKey":"entities.oneOf.0","typeLabel":"object[]"},{"description":"The entity to watch — exactly one for ENTITY_MENTION and PODCAST_SPEAKER alerts; an alert watches a single entity, so create a separate alert per entity. Omit for KEYWORD_MENTION alerts. v1 matches across podcast episodes only.","items":{"additionalProperties":false,"properties":{"entity_id":{"type":"string"},"entity_type":{"enum":["PERSON","COMPANY","KNOWLEDGE_GRAPH_ENTITY"],"type":"string"},"image_url":{"description":"Image URL for the watched entity (headshot for PERSON, logo for COMPANY, image for KGE). Omitted from the response when no image is available.","type":"string"},"name":{"description":"Display name of the watched entity. Omitted from the response when the underlying record cannot be resolved (e.g. deleted).","type":"string"}},"required":["entity_type","entity_id"],"type":"object"},"maxItems":1,"minItems":1,"type":"null","uniqueKey":"entities.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities","typeLabel":"object[] | null"},"filters":{"additionalProperties":false,"properties":{"languages":{"oneOf":[{"description":"Primary language tags the source episode must be in. Accepts a 2-3 letter primary tag (e.g. 'en', 'de', 'sma') and tolerates an optional 2-4 char region or script subtag for readability (e.g. 'pt-BR', 'zh-Hant'); matching is on the PRIMARY tag only, so 'pt-BR' surfaces every Portuguese episode regardless of region and 'pt-BR' + 'pt-PT' collapse to one. Empty or missing means all languages are surfaced. Codes are compared case-insensitively; the API echoes back the canonical primary-tag form.","items":{"type":"string","uniqueKey":"filters.languages.oneOf.0.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"filters.languages.oneOf.0","typeLabel":"string[]"},{"description":"Primary language tags the source episode must be in. Accepts a 2-3 letter primary tag (e.g. 'en', 'de', 'sma') and tolerates an optional 2-4 char region or script subtag for readability (e.g. 'pt-BR', 'zh-Hant'); matching is on the PRIMARY tag only, so 'pt-BR' surfaces every Portuguese episode regardless of region and 'pt-BR' + 'pt-PT' collapse to one. Empty or missing means all languages are surfaced. Codes are compared case-insensitively; the API echoes back the canonical primary-tag form.","items":{"type":"string"},"type":"null","uniqueKey":"filters.languages.oneOf.1","typeLabel":"null"}],"uniqueKey":"filters.languages","typeLabel":"string[] | null"},"relevance":{"description":"EVERYTHING (the default) returns both on-target and incidental matches — the watched entity is correctly identified in both, only the depth of discussion differs. RELEVANT narrows to on-target only: matches where the watched entity is the subject being discussed, dropping passing mentions. Wrong-entity matches (knowledge-graph name collisions, e.g. the podcast 'Truckie' for an alert on the town 'Truckee') are globally suppressed before any filter runs.","enum":["EVERYTHING","RELEVANT"],"type":"string","uniqueKey":"filters.relevance","typeLabel":"enum\u003cstring>"},"source_popularity":{"description":"ANY (the default) keeps matches from every source. POPULAR keeps only matches whose source podcast scores in the top 5% by chart-popularity percentile (Podcast.Popularity >= 0.95; cume_dist over current chart entries, multi-region weighted). Podcasts that aren't currently charting drop out.","enum":["ANY","POPULAR"],"type":"string","uniqueKey":"filters.source_popularity","typeLabel":"enum\u003cstring>"},"speaker_roles":{"oneOf":[{"description":"PODCAST_SPEAKER alerts only. REPLACES (not intersects with) the default appearance set the alert matches against. Default when omitted is GUEST, PANELIST, CORRESPONDENT, AUDIENCE, SOUNDBITE_SPEAKER — HOST is intentionally excluded because hosting the show isn't an appearance. Setting ['HOST'] flips that — only HOST appearances match. Setting ['GUEST'] alone narrows further. Sending this on an ENTITY_MENTION alert returns 422 — the wire layer can't tell at validation time, so the handler boundary rejects it once the parent kind is known. Input casing is not significant — 'guest' and 'GUEST' are the same value — and the filter is persisted and echoed back in canonical uppercase form. Raw STT/LLM labels like CALLER or REPORTER are not accepted because podcast_episode_speakers.role canonicalizes to the buckets above at write time.","items":{"enum":["HOST","GUEST","PANELIST","CORRESPONDENT","AUDIENCE","SOUNDBITE_SPEAKER"],"type":"string","uniqueKey":"filters.speaker_roles.oneOf.0.items.[INDEX]","typeLabel":"enum\u003cstring>"},"type":"array","uniqueKey":"filters.speaker_roles.oneOf.0","typeLabel":"enum\u003cstring>[]"},{"description":"PODCAST_SPEAKER alerts only. REPLACES (not intersects with) the default appearance set the alert matches against. Default when omitted is GUEST, PANELIST, CORRESPONDENT, AUDIENCE, SOUNDBITE_SPEAKER — HOST is intentionally excluded because hosting the show isn't an appearance. Setting ['HOST'] flips that — only HOST appearances match. Setting ['GUEST'] alone narrows further. Sending this on an ENTITY_MENTION alert returns 422 — the wire layer can't tell at validation time, so the handler boundary rejects it once the parent kind is known. Input casing is not significant — 'guest' and 'GUEST' are the same value — and the filter is persisted and echoed back in canonical uppercase form. Raw STT/LLM labels like CALLER or REPORTER are not accepted because podcast_episode_speakers.role canonicalizes to the buckets above at write time.","items":{"enum":["HOST","GUEST","PANELIST","CORRESPONDENT","AUDIENCE","SOUNDBITE_SPEAKER"],"type":"string"},"type":"null","uniqueKey":"filters.speaker_roles.oneOf.1","typeLabel":"null"}],"uniqueKey":"filters.speaker_roles","typeLabel":"enum\u003cstring>[] | null"},"speaker_statement_characteristics":{"description":"ENTITY_MENTION alerts only. Keeps a match only when one of its mention lines was said the way you ask: keys are axes (sentiment, certainty, specificity, temporal_orientation), values comma-separated labels, e.g. {\"sentiment\": \"negative\"} for criticism of the watched entity or {\"specificity\": \"specific\", \"temporal_orientation\": \"future\"} for concrete predictions about it. Labels on one axis OR together, axes AND. Mention lines the filter does not accept are not marked is_mention, and mention_count counts only the accepted ones. A mention line that carries no labels (outside topic and interview segments, or too short to read) never matches. Sending this on a PODCAST_SPEAKER or KEYWORD_MENTION alert returns 422. See https://docs.particle.pro/podcasts/speaker-statement-characteristics.","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":"filters.speaker_statement_characteristics.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":"filters.speaker_statement_characteristics.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":"filters.speaker_statement_characteristics.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":"filters.speaker_statement_characteristics.temporal_orientation","typeLabel":"string"}},"type":"object","uniqueKey":"filters.speaker_statement_characteristics","typeLabel":"object"}},"type":"object","description":"Persistent narrowing applied to every surface the alert produces (matches list, realtime email, digest). Omit (or send an empty object) for no filters.","uniqueKey":"filters","typeLabel":"object"},"is_active":{"description":"Whether the alert produces matches. Defaults to true. Disabling stops new matches without losing the alert — re-enable to resume.","type":"boolean","uniqueKey":"is_active","typeLabel":"boolean"},"keyword":{"description":"KEYWORD_MENTION alerts only, and required for them: the phrase to watch, e.g. Lightfield. It matches the way a double-quoted keyword search phrase does — the words adjacent and in order, ignoring case and punctuation, on whole words — within topic-discussion and interview segments, never in ad reads, intros, or outros. Set description to say what the phrase means (e.g. 'Lightfield, the AI-native CRM') — it is how same-name mentions of something else get filtered out. A phrase that matched more than 700 podcast episodes in the past week is rejected as too broad.","maxLength":100,"type":"string","uniqueKey":"keyword","typeLabel":"string"},"kind":{"description":"What signal the alert watches for. Defaults to ENTITY_MENTION (fires on any mention of a watched entity). PODCAST_SPEAKER fires only when a watched entity is themself an identified speaker on the episode, in one of the alert's speaker roles: by default GUEST, PANELIST, CORRESPONDENT, AUDIENCE, and SOUNDBITE_SPEAKER (an excerpted clip of them played on the episode); raw STT/LLM labels like CALLER, LISTENER, REPORTER are normalized into these buckets on write. HOST is excluded by default because hosting the show isn't an appearance. speaker_roles replaces the default set. KEYWORD_MENTION fires whenever the keyword is spoken in a podcast episode — use it for brands, products, or terms the entity resolvers don't know; it takes keyword instead of entities.","enum":["ENTITY_MENTION","PODCAST_SPEAKER","KEYWORD_MENTION"],"type":"string","uniqueKey":"kind","typeLabel":"enum\u003cstring>"}},"required":["title","notifications"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"entities":[{"entity_id":"3CensCwu5G2oKCFgPrNf89","entity_type":"COMPANY"}],"notifications":[{"email":"you@example.com","type":"EMAIL"}],"title":"Nvidia mentions on podcasts"}}},"exampleType":"examples"}},"required":true,"exampleType":"examples"},"responses":{"1137ce09-e61b-4ca3-9f6d-87845bde4081":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"delivery_cadence":{"description":"How often matches are delivered: REALTIME (a separate email per match), DAILY (one bundled email each morning at 13:00 UTC), or WEEKLY (one bundled email Monday 13:00 UTC). Defaults to REALTIME.","type":"string","isRequired":true,"uniqueKey":"delivery_cadence","typeLabel":"string"},"entities":{"oneOf":[{"items":{"additionalProperties":false,"properties":{"entity_id":{"type":"string","isRequired":true,"uniqueKey":"entities.oneOf.0.items.[INDEX].entity_id","typeLabel":"string"},"entity_type":{"enum":["PERSON","COMPANY","KNOWLEDGE_GRAPH_ENTITY"],"type":"string","isRequired":true,"uniqueKey":"entities.oneOf.0.items.[INDEX].entity_type","typeLabel":"enum\u003cstring>"},"image_url":{"description":"Image URL for the watched entity (headshot for PERSON, logo for COMPANY, image for KGE). Omitted from the response when no image is available.","type":"string","uniqueKey":"entities.oneOf.0.items.[INDEX].image_url","typeLabel":"string"},"name":{"description":"Display name of the watched entity. Omitted from the response when the underlying record cannot be resolved (e.g. deleted).","type":"string","uniqueKey":"entities.oneOf.0.items.[INDEX].name","typeLabel":"string"}},"required":["entity_type","entity_id"],"type":"object","uniqueKey":"entities.oneOf.0.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"entities.oneOf.0","typeLabel":"object[]"},{"items":{"additionalProperties":false,"properties":{"entity_id":{"type":"string"},"entity_type":{"enum":["PERSON","COMPANY","KNOWLEDGE_GRAPH_ENTITY"],"type":"string"},"image_url":{"description":"Image URL for the watched entity (headshot for PERSON, logo for COMPANY, image for KGE). Omitted from the response when no image is available.","type":"string"},"name":{"description":"Display name of the watched entity. Omitted from the response when the underlying record cannot be resolved (e.g. deleted).","type":"string"}},"required":["entity_type","entity_id"],"type":"object"},"type":"null","isRequired":true,"uniqueKey":"entities.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"entities","typeLabel":"object[] | null"},"id":{"type":"string","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"is_active":{"description":"Whether the alert produces matches. Disabled alerts retain history but accumulate no new matches until re-enabled.","type":"boolean","isRequired":true,"uniqueKey":"is_active","typeLabel":"boolean"},"kind":{"description":"What signal the alert watches for. ENTITY_MENTION fires whenever a watched entity is mentioned in a podcast episode. PODCAST_SPEAKER fires only when a watched entity is themself an identified speaker on the episode, in one of the alert's speaker roles. By default those are GUEST, PANELIST, CORRESPONDENT, AUDIENCE (which absorbs callers, listeners, and other audience-side roles after server-side canonicalization), and SOUNDBITE_SPEAKER (an excerpted clip of them played on the episode); HOST is excluded by default because hosting the show isn't an appearance. speaker_roles replaces the default set. KEYWORD_MENTION fires whenever the alert's keyword is spoken in a podcast episode, for names the entity resolvers don't know; it watches a keyword instead of entities. Kind is fixed at creation.","enum":["ENTITY_MENTION","PODCAST_SPEAKER","KEYWORD_MENTION"],"type":"string","isRequired":true,"uniqueKey":"kind","typeLabel":"enum\u003cstring>"},"notifications":{"oneOf":[{"items":{"additionalProperties":false,"properties":{"type":{"description":"Delivery channel type. EMAIL writes to email; SLACK posts a message to a channel in a connected Slack workspace; WEBHOOK POSTs a signed JSON payload to a configured webhook connection.","enum":["EMAIL","SLACK","WEBHOOK"],"type":"string","isRequired":true,"uniqueKey":"notifications.oneOf.0.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"created_by":{"additionalProperties":false,"properties":{"id":{"description":"Creator's user ID","type":"string","isRequired":true,"uniqueKey":"notifications.oneOf.0.items.[INDEX].created_by.id","typeLabel":"string"},"name":{"description":"Creator's display name","type":"string","isRequired":true,"uniqueKey":"notifications.oneOf.0.items.[INDEX].created_by.name","typeLabel":"string"}},"required":["id","name"],"type":"object","description":"User who added this destination. Server-populated.","uniqueKey":"notifications.oneOf.0.items.[INDEX].created_by","typeLabel":"object"},"email":{"description":"Required when type=EMAIL.","format":"email","type":"string","uniqueKey":"notifications.oneOf.0.items.[INDEX].email","typeLabel":"string\u003cemail>"},"id":{"type":"string","uniqueKey":"notifications.oneOf.0.items.[INDEX].id","typeLabel":"string"},"slack_channel_id":{"description":"Required when type=SLACK. Slack vendor channel id (e.g. C01234XYZ for public channels, G... for private channels). Must be a channel returned by GET /v1/projects/{projectId}/slack/connections/{id}/channels.","type":"string","uniqueKey":"notifications.oneOf.0.items.[INDEX].slack_channel_id","typeLabel":"string"},"slack_channel_name":{"description":"Optional. Display label for the destination channel. The server overwrites this from the cached slack_channels row on save, so clients do not need to supply it.","type":"string","uniqueKey":"notifications.oneOf.0.items.[INDEX].slack_channel_name","typeLabel":"string"},"slack_connection_id":{"description":"Required when type=SLACK. The Slack workspace connection that owns the channel. Any active connection belonging to the alert's project is accepted, whichever surface installed it, so an alert created in one app can be managed from the other.","type":"string","uniqueKey":"notifications.oneOf.0.items.[INDEX].slack_connection_id","typeLabel":"string"},"webhook_connection_id":{"description":"Required when type=WEBHOOK. The webhook connection that receives the signed payload.","type":"string","uniqueKey":"notifications.oneOf.0.items.[INDEX].webhook_connection_id","typeLabel":"string"}},"required":["type"],"type":"object","uniqueKey":"notifications.oneOf.0.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"notifications.oneOf.0","typeLabel":"object[]"},{"items":{"additionalProperties":false,"properties":{"created_by":{"additionalProperties":false,"properties":{"id":{"description":"Creator's user ID","type":"string"},"name":{"description":"Creator's display name","type":"string"}},"required":["id","name"],"type":"object","description":"User who added this destination. Server-populated."},"email":{"description":"Required when type=EMAIL.","format":"email","type":"string"},"id":{"type":"string"},"slack_channel_id":{"description":"Required when type=SLACK. Slack vendor channel id (e.g. C01234XYZ for public channels, G... for private channels). Must be a channel returned by GET /v1/projects/{projectId}/slack/connections/{id}/channels.","type":"string"},"slack_channel_name":{"description":"Optional. Display label for the destination channel. The server overwrites this from the cached slack_channels row on save, so clients do not need to supply it.","type":"string"},"slack_connection_id":{"description":"Required when type=SLACK. The Slack workspace connection that owns the channel. Any active connection belonging to the alert's project is accepted, whichever surface installed it, so an alert created in one app can be managed from the other.","type":"string"},"type":{"description":"Delivery channel type. EMAIL writes to email; SLACK posts a message to a channel in a connected Slack workspace; WEBHOOK POSTs a signed JSON payload to a configured webhook connection.","enum":["EMAIL","SLACK","WEBHOOK"],"type":"string"},"webhook_connection_id":{"description":"Required when type=WEBHOOK. The webhook connection that receives the signed payload.","type":"string"}},"required":["type"],"type":"object"},"type":"null","isRequired":true,"uniqueKey":"notifications.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"notifications","typeLabel":"object[] | null"},"project_id":{"type":"string","isRequired":true,"uniqueKey":"project_id","typeLabel":"string"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"updated_at":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"},"created_by":{"additionalProperties":false,"properties":{"id":{"description":"Creator's user ID","type":"string","isRequired":true,"uniqueKey":"created_by.id","typeLabel":"string"},"name":{"description":"Creator's display name","type":"string","isRequired":true,"uniqueKey":"created_by.name","typeLabel":"string"}},"required":["id","name"],"type":"object","description":"User who created the alert. Null when the alert was created via an API key.","uniqueKey":"created_by","typeLabel":"object"},"description":{"type":"string","uniqueKey":"description","typeLabel":"string"},"filters":{"additionalProperties":false,"properties":{"languages":{"oneOf":[{"description":"Primary language tags the source episode must be in. Accepts a 2-3 letter primary tag (e.g. 'en', 'de', 'sma') and tolerates an optional 2-4 char region or script subtag for readability (e.g. 'pt-BR', 'zh-Hant'); matching is on the PRIMARY tag only, so 'pt-BR' surfaces every Portuguese episode regardless of region and 'pt-BR' + 'pt-PT' collapse to one. Empty or missing means all languages are surfaced. Codes are compared case-insensitively; the API echoes back the canonical primary-tag form.","items":{"type":"string","uniqueKey":"filters.languages.oneOf.0.items.[INDEX]","typeLabel":"string"},"type":"array","uniqueKey":"filters.languages.oneOf.0","typeLabel":"string[]"},{"description":"Primary language tags the source episode must be in. Accepts a 2-3 letter primary tag (e.g. 'en', 'de', 'sma') and tolerates an optional 2-4 char region or script subtag for readability (e.g. 'pt-BR', 'zh-Hant'); matching is on the PRIMARY tag only, so 'pt-BR' surfaces every Portuguese episode regardless of region and 'pt-BR' + 'pt-PT' collapse to one. Empty or missing means all languages are surfaced. Codes are compared case-insensitively; the API echoes back the canonical primary-tag form.","items":{"type":"string"},"type":"null","uniqueKey":"filters.languages.oneOf.1","typeLabel":"null"}],"uniqueKey":"filters.languages","typeLabel":"string[] | null"},"relevance":{"description":"EVERYTHING (the default) returns both on-target and incidental matches — the watched entity is correctly identified in both, only the depth of discussion differs. RELEVANT narrows to on-target only: matches where the watched entity is the subject being discussed, dropping passing mentions. Wrong-entity matches (knowledge-graph name collisions, e.g. the podcast 'Truckie' for an alert on the town 'Truckee') are globally suppressed before any filter runs.","enum":["EVERYTHING","RELEVANT"],"type":"string","uniqueKey":"filters.relevance","typeLabel":"enum\u003cstring>"},"source_popularity":{"description":"ANY (the default) keeps matches from every source. POPULAR keeps only matches whose source podcast scores in the top 5% by chart-popularity percentile (Podcast.Popularity >= 0.95; cume_dist over current chart entries, multi-region weighted). Podcasts that aren't currently charting drop out.","enum":["ANY","POPULAR"],"type":"string","uniqueKey":"filters.source_popularity","typeLabel":"enum\u003cstring>"},"speaker_roles":{"oneOf":[{"description":"PODCAST_SPEAKER alerts only. REPLACES (not intersects with) the default appearance set the alert matches against. Default when omitted is GUEST, PANELIST, CORRESPONDENT, AUDIENCE, SOUNDBITE_SPEAKER — HOST is intentionally excluded because hosting the show isn't an appearance. Setting ['HOST'] flips that — only HOST appearances match. Setting ['GUEST'] alone narrows further. Sending this on an ENTITY_MENTION alert returns 422 — the wire layer can't tell at validation time, so the handler boundary rejects it once the parent kind is known. Input casing is not significant — 'guest' and 'GUEST' are the same value — and the filter is persisted and echoed back in canonical uppercase form. Raw STT/LLM labels like CALLER or REPORTER are not accepted because podcast_episode_speakers.role canonicalizes to the buckets above at write time.","items":{"enum":["HOST","GUEST","PANELIST","CORRESPONDENT","AUDIENCE","SOUNDBITE_SPEAKER"],"type":"string","uniqueKey":"filters.speaker_roles.oneOf.0.items.[INDEX]","typeLabel":"enum\u003cstring>"},"type":"array","uniqueKey":"filters.speaker_roles.oneOf.0","typeLabel":"enum\u003cstring>[]"},{"description":"PODCAST_SPEAKER alerts only. REPLACES (not intersects with) the default appearance set the alert matches against. Default when omitted is GUEST, PANELIST, CORRESPONDENT, AUDIENCE, SOUNDBITE_SPEAKER — HOST is intentionally excluded because hosting the show isn't an appearance. Setting ['HOST'] flips that — only HOST appearances match. Setting ['GUEST'] alone narrows further. Sending this on an ENTITY_MENTION alert returns 422 — the wire layer can't tell at validation time, so the handler boundary rejects it once the parent kind is known. Input casing is not significant — 'guest' and 'GUEST' are the same value — and the filter is persisted and echoed back in canonical uppercase form. Raw STT/LLM labels like CALLER or REPORTER are not accepted because podcast_episode_speakers.role canonicalizes to the buckets above at write time.","items":{"enum":["HOST","GUEST","PANELIST","CORRESPONDENT","AUDIENCE","SOUNDBITE_SPEAKER"],"type":"string"},"type":"null","uniqueKey":"filters.speaker_roles.oneOf.1","typeLabel":"null"}],"uniqueKey":"filters.speaker_roles","typeLabel":"enum\u003cstring>[] | null"},"speaker_statement_characteristics":{"description":"ENTITY_MENTION alerts only. Keeps a match only when one of its mention lines was said the way you ask: keys are axes (sentiment, certainty, specificity, temporal_orientation), values comma-separated labels, e.g. {\"sentiment\": \"negative\"} for criticism of the watched entity or {\"specificity\": \"specific\", \"temporal_orientation\": \"future\"} for concrete predictions about it. Labels on one axis OR together, axes AND. Mention lines the filter does not accept are not marked is_mention, and mention_count counts only the accepted ones. A mention line that carries no labels (outside topic and interview segments, or too short to read) never matches. Sending this on a PODCAST_SPEAKER or KEYWORD_MENTION alert returns 422. See https://docs.particle.pro/podcasts/speaker-statement-characteristics.","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":"filters.speaker_statement_characteristics.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":"filters.speaker_statement_characteristics.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":"filters.speaker_statement_characteristics.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":"filters.speaker_statement_characteristics.temporal_orientation","typeLabel":"string"}},"type":"object","uniqueKey":"filters.speaker_statement_characteristics","typeLabel":"object"}},"type":"object","description":"Persistent narrowing applied to every surface the alert produces: the matches list, the realtime email, and the daily/weekly digest. Absent = no filters (every detected match is surfaced).","uniqueKey":"filters","typeLabel":"object"},"keyword":{"description":"KEYWORD_MENTION alerts only: the phrase the alert watches (see the create request's keyword for how it matches). Absent on entity alerts.","type":"string","uniqueKey":"keyword","typeLabel":"string"}},"required":["id","project_id","title","kind","delivery_cadence","is_active","entities","notifications","created_at","updated_at"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"created_at":"2023-11-07T05:31:56Z","delivery_cadence":"\u003cstring>","entities":[{"entity_id":"\u003cstring>","entity_type":"PERSON","image_url":"\u003cstring>","name":"\u003cstring>"}],"id":"\u003cstring>","is_active":true,"kind":"ENTITY_MENTION","notifications":[{"type":"EMAIL","created_by":{"id":"\u003cstring>","name":"\u003cstring>"},"email":"jsmith@example.com","id":"\u003cstring>","slack_channel_id":"\u003cstring>","slack_channel_name":"\u003cstring>","slack_connection_id":"\u003cstring>","webhook_connection_id":"\u003cstring>"}],"project_id":"\u003cstring>","title":"\u003cstring>","updated_at":"2023-11-07T05:31:56Z","created_by":{"id":"\u003cstring>","name":"\u003cstring>"},"description":"\u003cstring>","filters":{"languages":["\u003cstring>"],"relevance":"EVERYTHING","source_popularity":"ANY","speaker_roles":["HOST"],"speaker_statement_characteristics":{"certainty":"confident","sentiment":"positive","specificity":"specific","temporal_orientation":"future"}},"keyword":"\u003cstring>"}}},"exampleType":"generated"}},"description":"OK","exampleType":"generated"},"aa48ee0a-b68a-44cd-b18c-ca24ee53ef0e":{"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":{"a5428769-866c-42c7-a004-c213d9b7ee43":{"ApiKeyHeader":{"description":"Pass your API key in the X-API-Key header (recommended).","in":"header","name":"X-API-Key","type":"apiKey","scopes":[],"schemeName":"ApiKeyHeader"}},"0ced4d8f-1c3f-4d2a-8de5-c63f277c6d53":{"BearerAuth":{"description":"Pass your API key as a Bearer token in the Authorization header.","scheme":"bearer","type":"http","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"bc7c60ad-8b90-43eb-b968-32aa4dec56b4":{"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":"Create an alert - Particle API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T20:55:42.741Z","originalFileLocation":"api-reference/alerts/create-an-alert.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=\"Create an alert that watches a single entity and emails the configured address whenever the entity is mentioned on a podcast episode. To cover several entities, create one alert per entity. Alerts are not covered by zero data retention: the alert\u0026#x27;s definition and its matched results are stored as part of the alerts feature.\">\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=\"Create an alert - Particle API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create an alert that watches a single entity and emails the configured address whenever the entity is mentioned on a podcast episode. To cover several entities, create one alert per entity. Alerts are not covered by zero data retention: the alert\u0026#x27;s definition and its matched results are stored as part of the alerts feature.\">\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/alerts/create-an-alert\">\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=Alerts\u0026amp;title=Create+an+alert\u0026amp;description=Create+an+alert+that+watches+a+single+entity+and+emails+the+configured+address+whenever+the+entity+is+mentioned+on+a+podcast+episode.+To+cover+several+entities%2C\u0026amp;theme=cc76b59effb7ea31e0037892\u0026amp;signature=403bbbad5128ffa3008ffd3fd40b3104948618401848674f53bad4ef0545c6f1\">\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=\"Create an alert - Particle API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create an alert that watches a single entity and emails the configured address whenever the entity is mentioned on a podcast episode. To cover several entities, create one alert per entity. Alerts are not covered by zero data retention: the alert\u0026#x27;s definition and its matched results are stored as part of the alerts feature.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://particle-c40da4e2.mintlify.app/_mintlify/api/og/v2?division=Alerts\u0026amp;title=Create+an+alert\u0026amp;description=Create+an+alert+that+watches+a+single+entity+and+emails+the+configured+address+whenever+the+entity+is+mentioned+on+a+podcast+episode.+To+cover+several+entities%2C\u0026amp;theme=cc76b59effb7ea31e0037892\u0026amp;signature=403bbbad5128ffa3008ffd3fd40b3104948618401848674f53bad4ef0545c6f1\">\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/alerts/create-an-alert\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/alerts/create-an-alert.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/alerts/create-an-alert#webpage\",\"url\":\"https://docs.particle.pro/api-reference/alerts/create-an-alert\",\"name\":\"Create an alert\",\"description\":\"Create an alert that watches a single entity and emails the configured address whenever the entity is mentioned on a podcast episode. To cover several entities, create one alert per entity. Alerts are not covered by zero data retention: the alert's definition and its matched results are stored as part of the alerts feature.\",\"dateModified\":\"2026-10-30T20:55:42.741Z\",\"isPartOf\":{\"@id\":\"https://docs.particle.pro#website\"},\"breadcrumb\":{\"@id\":\"https://docs.particle.pro/api-reference/alerts/create-an-alert#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.particle.pro/api-reference/alerts/create-an-alert#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Alerts\",\"item\":\"https://docs.particle.pro/api-reference/alerts/get-a-single-alert-delivery\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create an alert\",\"item\":\"https://docs.particle.pro/api-reference/alerts/create-an-alert\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.particle.pro/api-reference/alerts/create-an-alert#apireference\",\"headline\":\"Create an alert\",\"name\":\"Create an alert\",\"description\":\"Create an alert that watches a single entity and emails the configured address whenever the entity is mentioned on a podcast episode. To cover several entities, create one alert per entity. Alerts are not covered by zero data retention: the alert's definition and its matched results are stored as part of the alerts feature.\",\"url\":\"https://docs.particle.pro/api-reference/alerts/create-an-alert\",\"mainEntityOfPage\":{\"@id\":\"https://docs.particle.pro/api-reference/alerts/create-an-alert#webpage\"},\"dateModified\":\"2026-10-30T20:55:42.741Z\",\"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","description":"List alerts owned by the given project, newest first.","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","description":"Kicks off an asynchronous sweep over the past N days (default 7, max 30) and returns a preview_id. Poll GET /v1/alerts/preview/{previewId} until status is completed (or failed). The result includes the total match count, a per-day breakdown, and a small sample of the most-recent matches with full payload so the UI can show \"if you create this alert, here's what it would have caught.\"","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"},{"title":"Get how a company's people speak","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/companies/{id}/statement-characteristics","href":"/api-reference/companies/get-how-a-companys-people-speak"}]},{"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","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","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"}]}]},"basePath":"","title":"Create an alert - Particle API","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}