Which shows a brand sponsors, and which recommend or mention it. entity_id is required; resolve a name first with GET /v1/entities/resolve, or the call answers 400 id_required naming the parameter. On a plan below Pro+, it returns the brand’s total shows and ad reads and up to 3 of its top shows by ad-read count in shows, each with one receipt: the newest ad read the plan can open, with start_seconds and a timestamped watch_url. Over MCP this is arcmira.recommendations(entityId) through arcmira_execute_read. On Pro+, cursor-paginated commercial mentions (sponsored, organic and neutral mentions) filtered by entity, channel (channel_id), class, confidence, and publication window [after, before). The signed continuation binds the route, filters, caller and visibility; invalid or old cursors return invalid_cursor. A first-page ID fence excludes later insertions, including old-date backfills. Edits and deletions to existing recommendations remain live. Positions are start_seconds and end_seconds (integer seconds). Below Pro+, recommendations is empty, meta.total and meta.ad_reads are the full counts, ties order by show name in code order, then channel id, and access says how many shows and ad reads the slice left out. Below Pro+, a brand can also return its totals with fewer than three shows, or none: shows is shorter or empty, and access says how many shows and ad reads Pro+ lists. On such a plan cursor, after, before, channel_id, class other than sponsored, min_confidence and include_disputed are refused, and the unlock names Pro+.
Only media from this YouTube channel id (UC plus 22 characters). Ids only: a name answers 400 id_required. Resolve names first with GET /v1/entities/resolve.
The commercial class to return. Omit for all three. Values: sponsored (an ad-style promotion heard at that moment: a paid sponsor read, promo code, affiliate plug, thanks for supplied goods or venue, or a show promoting its own product as an ad), organic (an unpaid personal recommendation), mention (a neutral commercial mention).
Only media published at or after this instant. An ISO 8601 date (2026-09-01) or datetime with offset (2026-09-01T00:00:00Z), read in UTC. The window is half-open: after is inclusive, before is exclusive.
Only media published before this instant, so before=2026-09-02 includes all of 2026-09-01. An ISO 8601 date (2026-09-01) or datetime with offset (2026-09-01T00:00:00Z), read in UTC. The window is half-open: after is inclusive, before is exclusive.
The surface making this call. The Arcmira MCP server sends mcp-tool so every unlock link in a gate attributes to the directory install. Omit from your own client.
Present below Pro+: up to 3 of the entity's top shows by ad-read count, most first (a tie goes to the show name, then the channel id), each with one receipt.
The gate that reduced this response. Present only when something was withheld; carries the same code, gate, and unlock an outright refusal would.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Arcmira API","description":"Reference for the Arcmira YouTube transcript search API, MCP server, CLI and SDKs: search, transcripts, monitors, sponsors, keys and usage.","colors":{"primary":"#0f0f0f","light":"#ffffff","dark":"#0f0f0f"},"logo":{"light":"https://mintcdn.com/arcmira/G4qB_YFbtWevtGoh/logo-light.svg?fit=max\u0026auto=format\u0026n=G4qB_YFbtWevtGoh\u0026q=85\u0026s=842a6307f311be80d239b5573e561e17","dark":"https://mintcdn.com/arcmira/G4qB_YFbtWevtGoh/logo-dark.svg?fit=max\u0026auto=format\u0026n=G4qB_YFbtWevtGoh\u0026q=85\u0026s=3dc62c802ae9bf9f684f48754f50640c","href":"https://arcmira.com"},"favicon":"https://mintcdn.com/arcmira/vtXPgATpeM3RiH8U/favicon.svg?fit=max\u0026auto=format\u0026n=vtXPgATpeM3RiH8U\u0026q=85\u0026s=6016135e3058a0b3223ad5bd7388f836","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["javascript","python","curl"]},"mdx":{"auth":{"method":"bearer"}}},"navbar":{"links":[{"href":"https://arcmira.com/dashboard/api","label":"API keys"},{"href":"https://arcmira.com/sign-in","label":"Sign in"}],"primary":{"type":"button","label":"Dashboard","href":"https://arcmira.com/dashboard"}},"footer":{"socials":{"x":"https://x.com/arcmiraAI","github":"https://github.com/arcmira","linkedin":"https://www.linkedin.com/company/arcmira"},"links":[{"header":"Product","items":[{"label":"Pricing","href":"https://arcmira.com/pricing"},{"label":"Dashboard","href":"https://arcmira.com/dashboard"},{"label":"Arcmira MCP","href":"https://arcmira.com/mcp"}]},{"header":"Developers","items":[{"label":"API reference","href":"https://arcmira.com/docs/api-reference"},{"label":"OpenAPI spec","href":"https://api.arcmira.com/v1/openapi.json"},{"label":"Changelog","href":"https://arcmira.com/docs/changelog"},{"label":"MCP server source","href":"https://github.com/arcmira/mcp"},{"label":"Connect your AI","href":"https://arcmira.com/agent-setup"},{"label":"Developer portal","href":"https://arcmira.com/developers"}]},{"header":"Company","items":[{"label":"Contact","href":"mailto:hi@arcmira.com"},{"label":"Privacy","href":"https://arcmira.com/privacy"}]}]},"seo":{"metatags":{"og:site_name":"Arcmira API docs","twitter:site":"@arcmiraAI"},"indexing":"all"},"icons":{"library":"lucide"},"contextual":{"options":["copy","view","mcp","claude","cursor","vscode"],"display":"header"},"markdown":{"instructions":["Arcmira searches podcasts and long-form video on YouTube: spoken passages, mentions of people, companies, products, topics and shows, sponsors and recommendations, and full transcripts. Monitors alert on new mentions.","Discover pages at https://arcmira.com/docs/llms.txt and append .md to any page for markdown. The OpenAPI document is https://api.arcmira.com/v1/openapi.json.","Agents connect the MCP server at https://mcp.arcmira.com/mcp. Its six tools are arcmira_describe (call once), arcmira_execute_read, arcmira_execute_write (monitor writes; never deletes), arcmira_youtube_search, arcmira_youtube_transcript and arcmira_feedback. The docs MCP server at https://arcmira.com/docs/mcp searches these docs without a sign-in.","Auth: Authorization: Bearer arc_sk_.... Never put keys in browser code. Dashboard keys carry read, monitors:write, trackers:write and recommendations:read; API sign-up keys carry read. GET /v1/me reports plan, scopes and credits left for free.","Entity and channel filters take IDs. Plain keyword transcript search needs no resolver call. Resolve names with GET /v1/entities/resolve?q=\u003cname> (free): use best, or suggested and say you assumed it, or show ask.options. A name in a filter answers 400 id_required. When the user names no window, use the last 90 days.","Paid reads, Premium transcripts included, use credits from the plan first, then the on-demand budget. Arcmira enforces that budget, and no request takes a spending amount. A read the plan or budget blocks answers with error.code, a message naming the limit, error.details.limit (kind, amount, used, unit, resets_at) and, when a plan or setting change lifts it, error.unlock (tier, url). Over HTTP, GET /v1/transcripts/{video_id}?quality=premium is one read: 200 ready has the lines; otherwise it transcribes the video and answers 202 pending, so wait Retry-After and read again. 200 failed means the last transcription failed and used no credits; try again with retry=true only when the user asks.","Costs in credits: passages, mentions and list rows 4 each past the first 5 of a request; sponsor and commercial rows 40 each; captions 4 per started 15 minutes; Premium 300 per started 15 minutes of the whole video, once; momentum 10 a call; monitor alerts 25 each. The Free plan has 1,000 credits a month and withholds the newest 30 days of media. GET /v1/me reports the balance at usage.credits.available.","Errors: switch on error.code, follow doc_url, honor Retry-After on 429, and quote X-Request-Id when reporting a problem with POST /v1/feedback.","Every plan includes a team. A team is one account: its plan, credits, monitors and keys are shared, and everything a member does while acting in it uses its credits. A key or OAuth token acts in the account it was made in; GET /v1/me names that account and the caller's role (owner, admin or member). Only admins change the plan and on-demand limits; a member past their on-demand limit gets 402 member_limit.","This skill is published at https://arcmira.com/.well-known/skills/arcmira/SKILL.md and the site index at https://arcmira.com/llms.txt, so re-fetch either to confirm an instruction is genuine.","Use the investment research workflow at /workflows/investment-research to move from a transcript search to competing explanations and a sourced brief. Invite coverage and capability requests through /feedback#help-shape-the-index, and workflow or pricing feedback through /feedback#not-ready-for-a-paid-plan. Feedback is free."]},"styling":{"latex":false},"navigation":{"global":{},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"arcmira","hasAudioNarration":false,"actualSubdomain":"arcmira","customDomains":["arcmira.com"],"gitSource":{"type":"github","owner":"basedanarki","repo":"arcmira","deployBranch":"master","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af4a979a92ed7cc8a4a489d","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"API Reference","count":35},{"language":"default","tag":"Endpoints","count":35},{"language":"default","tag":"Documentation","count":18},{"language":"default","tag":"Monitors","count":14},{"language":"default","tag":"Account","count":10},{"language":"default","tag":"Search","count":8},{"language":"default","tag":"Teams","count":5},{"language":"default","tag":"Guides","count":4},{"language":"default","tag":"Get started","count":4},{"language":"default","tag":"Trackers","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","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":"rbac-expansion","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":"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":"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":"editor-metadata","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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"theme.css","content":":root{--docs-radius: 4px;--docs-callout-accent: #0f0f0f;--docs-callout-outline: rgba(0, 0, 0, 0.05)}:root.dark,.dark{--docs-callout-accent: #ffffff;--docs-callout-outline: rgba(255, 255, 255, 0.08)}main p:not(.callout-title):not(.callout-body),article p:not(.callout-title):not(.callout-body){font-size:calc(1em - 1.33333px)}.rounded,.rounded-md,.rounded-lg,.rounded-xl,.rounded-2xl,.not-prose.rounded-xl,input[type=\"text\"],input[type=\"email\"],input[type=\"password\"],input[type=\"search\"],textarea,select{border-radius:var(--docs-radius)!important}.rounded-l,.rounded-l-md,.rounded-l-lg,.rounded-l-xl,.rounded-l-2xl{border-top-left-radius:var(--docs-radius)!important;border-bottom-left-radius:var(--docs-radius)!important}.rounded-r,.rounded-r-md,.rounded-r-lg,.rounded-r-xl,.rounded-r-2xl{border-top-right-radius:var(--docs-radius)!important;border-bottom-right-radius:var(--docs-radius)!important}.rounded-t,.rounded-t-md,.rounded-t-lg,.rounded-t-xl,.rounded-t-2xl{border-top-left-radius:var(--docs-radius)!important;border-top-right-radius:var(--docs-radius)!important}.rounded-b,.rounded-b-md,.rounded-b-lg,.rounded-b-xl,.rounded-b-2xl{border-bottom-right-radius:var(--docs-radius)!important;border-bottom-left-radius:var(--docs-radius)!important}[role=\"dialog\"].rounded-search{border-radius:calc(var(--docs-radius) + 4px)!important}.accordion:not(:last-child),.accordion:not(:last-child)>summary{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.accordion:not(:first-child),.accordion:not(:first-child)>summary{border-top-left-radius:0!important;border-top-right-radius:0!important}[data-component-part=\"update-label\"]{background:rgba(15, 15, 15, 0.07)!important;color:rgb(15, 15, 15)!important}.dark [data-component-part=\"update-label\"]{background:rgba(255, 255, 255, 0.1)!important;color:rgb(255, 255, 255)!important}.callout-box{padding:1.25rem 1.5rem;margin-top:1.5rem;margin-bottom:2rem;box-shadow:0 2px 8px rgba(0, 0, 0, 0.1),\n 0 0 0 1px var(--docs-callout-outline);border-left:6px solid var(--docs-callout-accent)!important;border-radius:0 2px 2px 0!important}:root.dark .callout-box,.dark .callout-box{box-shadow:0 2px 8px rgba(0, 0, 0, 0.3),\n 0 0 0 1px var(--docs-callout-outline)}.callout-box .callout-title{font-size:1.25rem;font-weight:700;color:rgb(0, 0, 0);margin-bottom:0.375rem}.dark .callout-box .callout-title{color:rgb(255, 255, 255)}.callout-box .callout-body{margin-bottom:0;font-size:1.0625rem;line-height:1.6;color:rgb(75, 85, 99)}.dark .callout-box .callout-body{color:rgb(158, 161, 165)}.callout-box .callout-body a{font-weight:600;text-decoration:underline;text-underline-offset:0.16em}"}],"page":{"pagePath":"api-reference/recommendations/find-which-shows-a-brand-sponsors","slug":"/api-reference/recommendations/find-which-shows-a-brand-sponsors","pageMetadata":{"title":"Find which shows a brand sponsors","description":"Which shows a brand sponsors, and which recommend or mention it. entity_id is required; resolve a name first with GET /v1/entities/resolve, or the call answers 400 id_required naming the parameter. On a plan below Pro+, it returns the brand's total shows and ad reads and up to 3 of its top shows by ad-read count in shows, each with one receipt: the newest ad read the plan can open, with start_seconds and a timestamped watch_url. Over MCP this is arcmira.recommendations(entityId) through arcmira_execute_read. On Pro+, cursor-paginated commercial mentions (sponsored, organic and neutral mentions) filtered by entity, channel (channel_id), class, confidence, and publication window [after, before). The signed continuation binds the route, filters, caller and visibility; invalid or old cursors return invalid_cursor. A first-page ID fence excludes later insertions, including old-date backfills. Edits and deletions to existing recommendations remain live. Positions are start_seconds and end_seconds (integer seconds). Below Pro+, recommendations is empty, meta.total and meta.ad_reads are the full counts, ties order by show name in code order, then channel id, and access says how many shows and ad reads the slice left out. Below Pro+, a brand can also return its totals with fewer than three shows, or none: shows is shorter or empty, and access says how many shows and ad reads Pro+ lists. On such a plan cursor, after, before, channel_id, class other than sponsored, min_confidence and include_disputed are refused, and the unlock names Pro+.","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/recommendations","href":"/api-reference/recommendations/find-which-shows-a-brand-sponsors","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: \"Which shows a brand sponsors, and which recommend or mention it. entity_id is required; resolve a name first with GET /v1/entities/resolve, or the call answers 400 id_required naming the parameter. On a plan below Pro+, it returns the brand’s total shows and ad reads and up to 3 of its top shows by ad-read count in shows, each with one receipt: the newest ad read the plan can open, with start_seconds and a timestamped watch_url. Over MCP this is arcmira.recommendations(entityId) through arcmira_execute_read. On Pro+, cursor-paginated commercial mentions (sponsored, organic and neutral mentions) filtered by entity, channel (channel_id), class, confidence, and publication window [after, before). The signed continuation binds the route, filters, caller and visibility; invalid or old cursors return invalid_cursor. A first-page ID fence excludes later insertions, including old-date backfills. Edits and deletions to existing recommendations remain live. Positions are start_seconds and end_seconds (integer seconds). Below Pro+, recommendations is empty, meta.total and meta.ad_reads are the full counts, ties order by show name in code order, then channel id, and access says how many shows and ad reads the slice left out. Below Pro+, a brand can also return its totals with fewer than three shows, or none: shows is shorter or empty, and access says how many shows and ad reads Pro+ lists. On such a plan cursor, after, before, channel_id, class other than sponsored, min_confidence and include_disputed are refused, and the unlock names Pro+.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Find which shows a brand sponsors","description":"Which shows a brand sponsors, and which recommend or mention it. entity_id is required; resolve a name first with GET /v1/entities/resolve, or the call answers 400 id_required naming the parameter. On a plan below Pro+, it returns the brand's total shows and ad reads and up to 3 of its top shows by ad-read count in shows, each with one receipt: the newest ad read the plan can open, with start_seconds and a timestamped watch_url. Over MCP this is arcmira.recommendations(entityId) through arcmira_execute_read. On Pro+, cursor-paginated commercial mentions (sponsored, organic and neutral mentions) filtered by entity, channel (channel_id), class, confidence, and publication window [after, before). The signed continuation binds the route, filters, caller and visibility; invalid or old cursors return invalid_cursor. A first-page ID fence excludes later insertions, including old-date backfills. Edits and deletions to existing recommendations remain live. Positions are start_seconds and end_seconds (integer seconds). Below Pro+, recommendations is empty, meta.total and meta.ad_reads are the full counts, ties order by show name in code order, then channel id, and access says how many shows and ad reads the slice left out. Below Pro+, a brand can also return its totals with fewer than three shows, or none: shows is shorter or empty, and access says how many shows and ad reads Pro+ lists. On such a plan cursor, after, before, channel_id, class other than sponsored, min_confidence and include_disputed are refused, and the unlock names Pro+.","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/recommendations","href":"/api-reference/recommendations/find-which-shows-a-brand-sponsors","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/arcmira/660e4608bea78d17/posthog.js"],"openApiReferenceData":{"operation":{"tags":["Recommendations"],"operationId":"list_recommendations","summary":"Find which shows a brand sponsors","description":"Which shows a brand sponsors, and which recommend or mention it. entity_id is required; resolve a name first with GET /v1/entities/resolve, or the call answers 400 id_required naming the parameter. On a plan below Pro+, it returns the brand's total shows and ad reads and up to 3 of its top shows by ad-read count in shows, each with one receipt: the newest ad read the plan can open, with start_seconds and a timestamped watch_url. Over MCP this is arcmira.recommendations(entityId) through arcmira_execute_read. On Pro+, cursor-paginated commercial mentions (sponsored, organic and neutral mentions) filtered by entity, channel (channel_id), class, confidence, and publication window [after, before). The signed continuation binds the route, filters, caller and visibility; invalid or old cursors return invalid_cursor. A first-page ID fence excludes later insertions, including old-date backfills. Edits and deletions to existing recommendations remain live. Positions are start_seconds and end_seconds (integer seconds). Below Pro+, recommendations is empty, meta.total and meta.ad_reads are the full counts, ties order by show name in code order, then channel id, and access says how many shows and ad reads the slice left out. Below Pro+, a brand can also return its totals with fewer than three shows, or none: shows is shorter or empty, and access says how many shows and ad reads Pro+ lists. On such a plan cursor, after, before, channel_id, class other than sponsored, min_confidence and include_disputed are refused, and the unlock names Pro+.","security":["80f2c783-56d9-464c-89c1-08601c370bb6"],"parameters":["fd844014-dda4-45dd-966a-8684eabb3b36","f74ac5c7-009a-4d32-9847-6758428365db","b28665a0-a82d-4469-b6eb-f00a8c321eac","3af3b177-ac4d-4d44-98c5-7c90ba437785","fd1f127e-b635-4f2d-add1-bff9fe3fbc7a","8a1b2d85-4b2d-49a3-88a4-673b356dab2c","88414a03-b343-4483-83da-344e8d727174","80a27248-4980-45b3-b825-053cbd1c77f7","453d2df0-5dfc-4fb8-9fce-6b12b4bcf708","7e78e709-ac27-45ed-9c13-626f744f2da7"],"responses":{"200":"b605b372-103a-4c57-883b-9baea7a5c494","400":"d9e8b833-1300-44e7-84d5-ab0d2e703ef5","401":"cd940224-441b-4fdf-96f8-ccb63a3c0e2e","402":"7d367e90-aa1d-4407-ba53-8303fb0f6403","403":"5f515e18-7e88-4ded-8ed5-fbcdde0cbd57","404":"ad64f91c-08c5-41a8-af89-097a212cca8b","429":"d1c03b71-2b98-4e93-9822-f5602c3f9d31","500":"abbd4504-caba-46f2-a107-4afc5fd10c1a"},"method":"get","type":"path","servers":["fa875dfa-551d-464a-8983-3d4bbce29d59"],"path":"/v1/recommendations","baseUrlOptions":["https://api.arcmira.com"],"title":"Find which shows a brand sponsors","codeSamples":[],"requestExampleLanguages":["javascript","python","bash"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"fd844014-dda4-45dd-966a-8684eabb3b36":{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"isRequired":false,"uniqueKey":"","typeLabel":"integer"},"required":false,"name":"limit","in":"query"},"f74ac5c7-009a-4d32-9847-6758428365db":{"schema":{"type":"string","description":"Signed continuation from next_cursor. Bound to this route, normalized query, caller and visibility; invalid or old tokens return invalid_cursor.","isRequired":false,"uniqueKey":"","typeLabel":"string"},"required":false,"description":"Signed continuation from next_cursor. Bound to this route, normalized query, caller and visibility; invalid or old tokens return invalid_cursor.","name":"cursor","in":"query"},"b28665a0-a82d-4469-b6eb-f00a8c321eac":{"schema":{"type":"string","minLength":1,"description":"The entity, as an id like ent_14. Required. Ids only: a name answers 400 id_required. Resolve names first with GET /v1/entities/resolve.","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"description":"The entity, as an id like ent_14. Required. Ids only: a name answers 400 id_required. Resolve names first with GET /v1/entities/resolve.","name":"entity_id","in":"query"},"3af3b177-ac4d-4d44-98c5-7c90ba437785":{"schema":{"type":"string","description":"Only media from this YouTube channel id (UC plus 22 characters). Ids only: a name answers 400 id_required. Resolve names first with GET /v1/entities/resolve.","isRequired":false,"uniqueKey":"","typeLabel":"string"},"required":false,"description":"Only media from this YouTube channel id (UC plus 22 characters). Ids only: a name answers 400 id_required. Resolve names first with GET /v1/entities/resolve.","name":"channel_id","in":"query"},"fd1f127e-b635-4f2d-add1-bff9fe3fbc7a":{"schema":{"type":"string","enum":["sponsored","organic","mention"],"description":"The commercial class to return. Omit for all three. Values: sponsored (an ad-style promotion heard at that moment: a paid sponsor read, promo code, affiliate plug, thanks for supplied goods or venue, or a show promoting its own product as an ad), organic (an unpaid personal recommendation), mention (a neutral commercial mention).","isRequired":false,"uniqueKey":"","typeLabel":"enum\u003cstring>"},"required":false,"description":"The commercial class to return. Omit for all three. Values: sponsored (an ad-style promotion heard at that moment: a paid sponsor read, promo code, affiliate plug, thanks for supplied goods or venue, or a show promoting its own product as an ad), organic (an unpaid personal recommendation), mention (a neutral commercial mention).","name":"class","in":"query"},"8a1b2d85-4b2d-49a3-88a4-673b356dab2c":{"schema":{"oneOf":[{"type":"number","minimum":0,"maximum":1,"default":0.7,"uniqueKey":"oneOf.0","typeLabel":"number"},{"type":"null","minimum":0,"maximum":1,"default":0.7,"uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"number | null"},"required":false,"name":"min_confidence","in":"query"},"88414a03-b343-4483-83da-344e8d727174":{"schema":{"type":"string","description":"Only media published at or after this instant. An ISO 8601 date (2026-09-01) or datetime with offset (2026-09-01T00:00:00Z), read in UTC. The window is half-open: after is inclusive, before is exclusive.","isRequired":false,"uniqueKey":"","typeLabel":"string"},"required":false,"description":"Only media published at or after this instant. An ISO 8601 date (2026-09-01) or datetime with offset (2026-09-01T00:00:00Z), read in UTC. The window is half-open: after is inclusive, before is exclusive.","name":"after","in":"query"},"80a27248-4980-45b3-b825-053cbd1c77f7":{"schema":{"type":"string","description":"Only media published before this instant, so before=2026-09-02 includes all of 2026-09-01. An ISO 8601 date (2026-09-01) or datetime with offset (2026-09-01T00:00:00Z), read in UTC. The window is half-open: after is inclusive, before is exclusive.","isRequired":false,"uniqueKey":"","typeLabel":"string"},"required":false,"description":"Only media published before this instant, so before=2026-09-02 includes all of 2026-09-01. An ISO 8601 date (2026-09-01) or datetime with offset (2026-09-01T00:00:00Z), read in UTC. The window is half-open: after is inclusive, before is exclusive.","name":"before","in":"query"},"453d2df0-5dfc-4fb8-9fce-6b12b4bcf708":{"schema":{"type":"boolean","isRequired":false,"uniqueKey":"","typeLabel":"boolean"},"required":false,"name":"include_disputed","in":"query"},"7e78e709-ac27-45ed-9c13-626f744f2da7":{"schema":{"type":"string","enum":["mcp-tool"],"description":"The surface making this call. The Arcmira MCP server sends mcp-tool so every unlock link in a gate attributes to the directory install. Omit from your own client.","isRequired":false,"uniqueKey":"","typeLabel":"enum\u003cstring>"},"required":false,"description":"The surface making this call. The Arcmira MCP server sends mcp-tool so every unlock link in a gate attributes to the directory install. Omit from your own client.","name":"src","in":"query"}},"responses":{"b605b372-103a-4c57-883b-9baea7a5c494":{"description":"Success","headers":{"X-Request-Id":{"description":"The request id, echoed from an X-Request-Id request header or minted as req_\u003cuuid>. error.request_id carries the same value. Quote it when reporting a problem.","schema":{"type":"string"}},"X-Arcmira-Version":{"description":"The API version that answered. Always v1.","schema":{"type":"string","enum":["v1"]}},"RateLimit-Limit":{"description":"Requests allowed per 60-second window for this credential, as GET /v1/me rate_limit reports.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"An estimate of the requests left in the current window. Limits are counted at each Cloudflare location, so it can read high; a 429 is the final word.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Unix time in seconds when the current window ends.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"recommendations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Public recommendation id in the form \"com_{n}\".","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].id","typeLabel":"string"},"class":{"type":"string","enum":["sponsored","organic","mention"],"description":"Commercial class. Values: sponsored (an ad-style promotion heard at that moment: a paid sponsor read, promo code, affiliate plug, thanks for supplied goods or venue, or a show promoting its own product as an ad), organic (an unpaid personal recommendation), mention (a neutral commercial mention).","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].class","typeLabel":"enum\u003cstring>"},"entity":{"type":"object","properties":{"id":{"type":"string","description":"Public entity id in the form \"ent_{n}\".","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].entity.id","typeLabel":"string"},"name":{"type":"string","description":"Canonical entity name.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].entity.name","typeLabel":"string"},"type":{"type":"string","description":"Entity type. Values: person (an individual), organization (a company or institution; legacy entities may read company or brand), product (a product or service), topic (a subject or theme), channel (a media source such as a YouTube channel), unknown (type was never classified).","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].entity.type","typeLabel":"string"},"slug":{"oneOf":[{"type":"string","description":"URL slug, the site's canonical id for every type but channel. Null when never slugged.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].entity.slug.oneOf.0","typeLabel":"string"},{"type":"null","description":"URL slug, the site's canonical id for every type but channel. Null when never slugged.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].entity.slug.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].entity.slug","typeLabel":"string | null"},"page":{"oneOf":[{"type":"string","description":"The entity's page on arcmira.com, absolute. Link the name to it when you write the entity into an answer. Null for a type the site has no page for.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].entity.page.oneOf.0","typeLabel":"string"},{"type":"null","description":"The entity's page on arcmira.com, absolute. Link the name to it when you write the entity into an answer. Null for a type the site has no page for.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].entity.page.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].entity.page","typeLabel":"string | null"}},"required":["id","name","type","slug","page"],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].entity","typeLabel":"object"},"media":{"type":"object","properties":{"video_id":{"type":"string","description":"YouTube video id (11 characters).","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.video_id","typeLabel":"string"},"title":{"oneOf":[{"type":"string","description":"Video title.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.title.oneOf.0","typeLabel":"string"},{"type":"null","description":"Video title.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.title.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.title","typeLabel":"string | null"},"published_at":{"oneOf":[{"type":"string","description":"Video publish timestamp.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.published_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"Video publish timestamp.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.published_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.published_at","typeLabel":"string | null"},"channel_id":{"oneOf":[{"type":"string","description":"YouTube channel id of the source channel.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.channel_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"YouTube channel id of the source channel.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.channel_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.channel_id","typeLabel":"string | null"},"source_channel":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Public entity id (\"ent_{n}\") of the source channel.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.source_channel.oneOf.0.id","typeLabel":"string"},"name":{"oneOf":[{"type":"string","description":"Source channel name.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.source_channel.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Source channel name.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.source_channel.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.source_channel.oneOf.0.name","typeLabel":"string | null"}},"required":["id","name"],"description":"The channel entity that published the video. Null when the video has not been linked to a channel entity.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.source_channel.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"id":{"type":"string","description":"Public entity id (\"ent_{n}\") of the source channel."},"name":{"oneOf":[{"type":"string","description":"Source channel name."},{"type":"null","description":"Source channel name."}]}},"required":["id","name"],"description":"The channel entity that published the video. Null when the video has not been linked to a channel entity.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.source_channel.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media.source_channel","typeLabel":"object | null"}},"required":["video_id","title","published_at","channel_id","source_channel"],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].media","typeLabel":"object"},"start_seconds":{"oneOf":[{"type":"integer","description":"Start position in the video in integer seconds. 0 means \"full episode / no specific moment\". Null when the analyzer could not place it in time.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].start_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Start position in the video in integer seconds. 0 means \"full episode / no specific moment\". Null when the analyzer could not place it in time.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].start_seconds.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].start_seconds","typeLabel":"integer | null"},"end_seconds":{"oneOf":[{"type":"integer","description":"End position in the video in integer seconds. 0 means \"full episode / no specific moment\". Null when the analyzer could not place it in time.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].end_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","description":"End position in the video in integer seconds. 0 means \"full episode / no specific moment\". Null when the analyzer could not place it in time.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].end_seconds.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].end_seconds","typeLabel":"integer | null"},"verbatim_quote":{"oneOf":[{"type":"string","description":"Verbatim quote from the transcript. Null when no quote was extracted.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].verbatim_quote.oneOf.0","typeLabel":"string"},{"type":"null","description":"Verbatim quote from the transcript. Null when no quote was extracted.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].verbatim_quote.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].verbatim_quote","typeLabel":"string | null"},"promo_code":{"oneOf":[{"type":"string","description":"Promo code read out in the mention. Null unless one was detected.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].promo_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Promo code read out in the mention. Null unless one was detected.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].promo_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].promo_code","typeLabel":"string | null"},"offer":{"oneOf":[{"type":"string","description":"Offer text, e.g. \"20% off your first order\". Null unless one was detected.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].offer.oneOf.0","typeLabel":"string"},{"type":"null","description":"Offer text, e.g. \"20% off your first order\". Null unless one was detected.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].offer.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].offer","typeLabel":"string | null"},"sentiment":{"oneOf":[{"type":"number","deprecated":true,"description":"DEPRECATED: use sentiment_score, which carries the same number. Removal will be announced in the changelog. Raw NUMERIC sentiment score between -1 and 1. Null when not computed.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].sentiment.oneOf.0","typeLabel":"number"},{"type":"null","deprecated":true,"description":"DEPRECATED: use sentiment_score, which carries the same number. Removal will be announced in the changelog. Raw NUMERIC sentiment score between -1 and 1. Null when not computed.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].sentiment.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].sentiment","typeLabel":"number | null"},"sentiment_score":{"oneOf":[{"type":"number","description":"Raw sentiment score between -1 and 1, same semantics as sentiment_score on mentions. Null when not computed.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].sentiment_score.oneOf.0","typeLabel":"number"},{"type":"null","description":"Raw sentiment score between -1 and 1, same semantics as sentiment_score on mentions. Null when not computed.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].sentiment_score.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].sentiment_score","typeLabel":"number | null"},"confidence":{"type":"number","description":"Classifier confidence between 0 and 1. Recommendations below the min_confidence filter (default 0.7) are excluded from list responses.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].confidence","typeLabel":"number"},"speaker_role":{"type":"string","description":"Role of the speaker delivering the mention, e.g. \"host\" or \"guest\".","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].speaker_role","typeLabel":"string"},"conflict_status":{"oneOf":[{"type":"string","description":"Set when community feedback disputes the classification (e.g. \"disputed\"). Null when undisputed. Disputed recommendations are excluded unless include_disputed=true.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].conflict_status.oneOf.0","typeLabel":"string"},{"type":"null","description":"Set when community feedback disputes the classification (e.g. \"disputed\"). Null when undisputed. Disputed recommendations are excluded unless include_disputed=true.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].conflict_status.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].conflict_status","typeLabel":"string | null"},"resolution":{"oneOf":[{"type":"string","description":"How a disputed classification was resolved. Null until a dispute has been resolved.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].resolution.oneOf.0","typeLabel":"string"},{"type":"null","description":"How a disputed classification was resolved. Null until a dispute has been resolved.","isRequired":true,"uniqueKey":"recommendations.items.[INDEX].resolution.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"recommendations.items.[INDEX].resolution","typeLabel":"string | null"}},"required":["id","class","entity","media","start_seconds","end_seconds","verbatim_quote","promo_code","offer","sentiment","sentiment_score","confidence","speaker_role","conflict_status","resolution"],"uniqueKey":"recommendations.items.[INDEX]","typeLabel":"object"},"description":"Newest first. Empty below Pro+, where shows carries the free slice.","isRequired":true,"uniqueKey":"recommendations","typeLabel":"object[]"},"has_more":{"type":"boolean","description":"True when more results exist past this page.","isRequired":true,"uniqueKey":"has_more","typeLabel":"boolean"},"next_cursor":{"oneOf":[{"type":"string","description":"Opaque cursor for the next page. Null on the last page.","isRequired":true,"uniqueKey":"next_cursor.oneOf.0","typeLabel":"string"},{"type":"null","description":"Opaque cursor for the next page. Null on the last page.","isRequired":true,"uniqueKey":"next_cursor.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"next_cursor","typeLabel":"string | null"},"entity":{"type":"object","description":"The resolved entity the recommendations belong to.","required":["id","canonical_id","name","type","platform","url","image_url","image_checked_at","owner_entity_id","is_canonical","merged_from_id","slug","route","page","appearances_page","mentions_page"],"properties":{"id":{"type":"string","description":"Public entity id in the form \"ent_{n}\". Always the canonical entity id.","isRequired":true,"uniqueKey":"entity.id","typeLabel":"string"},"canonical_id":{"type":"string","description":"Public id of the canonical entity. Identical to id.","isRequired":true,"uniqueKey":"entity.canonical_id","typeLabel":"string"},"name":{"type":"string","description":"Canonical entity name.","isRequired":true,"uniqueKey":"entity.name","typeLabel":"string"},"type":{"type":"string","description":"Entity type. Values: person (an individual), organization (a company or institution; legacy entities may read company or brand), product (a product or service), topic (a subject or theme), channel (a media source such as a YouTube channel), unknown (type was never classified).","isRequired":true,"uniqueKey":"entity.type","typeLabel":"string"},"platform":{"oneOf":[{"type":"string","description":"Source platform for channel entities, e.g. \"youtube\". Null unless the entity is platform-bound.","isRequired":true,"uniqueKey":"entity.platform.oneOf.0","typeLabel":"string"},{"type":"null","description":"Source platform for channel entities, e.g. \"youtube\". Null unless the entity is platform-bound.","isRequired":true,"uniqueKey":"entity.platform.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"entity.platform","typeLabel":"string | null"},"url":{"oneOf":[{"type":"string","description":"Canonical external URL for the entity. Null when none is known.","isRequired":true,"uniqueKey":"entity.url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Canonical external URL for the entity. Null when none is known.","isRequired":true,"uniqueKey":"entity.url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"entity.url","typeLabel":"string | null"},"image_url":{"oneOf":[{"type":"string","description":"Entity image URL. Null until an image has been resolved.","isRequired":true,"uniqueKey":"entity.image_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Entity image URL. Null until an image has been resolved.","isRequired":true,"uniqueKey":"entity.image_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"entity.image_url","typeLabel":"string | null"},"image_checked_at":{"oneOf":[{"type":"string","description":"Timestamp of the last image resolution attempt. Null until the image pipeline has visited this entity.","isRequired":true,"uniqueKey":"entity.image_checked_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"Timestamp of the last image resolution attempt. Null until the image pipeline has visited this entity.","isRequired":true,"uniqueKey":"entity.image_checked_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"entity.image_checked_at","typeLabel":"string | null"},"owner_entity_id":{"oneOf":[{"type":"string","description":"Public id (\"ent_{n}\") of the owning entity, e.g. the organization behind a product. Null unless an ownership link exists.","isRequired":true,"uniqueKey":"entity.owner_entity_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Public id (\"ent_{n}\") of the owning entity, e.g. the organization behind a product. Null unless an ownership link exists.","isRequired":true,"uniqueKey":"entity.owner_entity_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"entity.owner_entity_id","typeLabel":"string | null"},"is_canonical":{"type":"boolean","description":"True when the id you supplied is the canonical entity. False when your id was merged into this canonical record.","isRequired":true,"uniqueKey":"entity.is_canonical","typeLabel":"boolean"},"merged_from_id":{"oneOf":[{"type":"string","description":"Public id you supplied when it differs from the canonical entity, i.e. your id was merged into this record. Null unless a merge redirect happened.","isRequired":true,"uniqueKey":"entity.merged_from_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Public id you supplied when it differs from the canonical entity, i.e. your id was merged into this record. Null unless a merge redirect happened.","isRequired":true,"uniqueKey":"entity.merged_from_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"entity.merged_from_id","typeLabel":"string | null"},"slug":{"oneOf":[{"type":"string","description":"URL slug, the site's canonical id for every type but channel. Null when never slugged.","isRequired":true,"uniqueKey":"entity.slug.oneOf.0","typeLabel":"string"},{"type":"null","description":"URL slug, the site's canonical id for every type but channel. Null when never slugged.","isRequired":true,"uniqueKey":"entity.slug.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"entity.slug","typeLabel":"string | null"},"route":{"oneOf":[{"type":"string","description":"Site-relative route of this entity's page on arcmira.com, e.g. \"/org/ramp\", \"/person/jane-doe\", \"/yt/@TBPNLive\". Null for a type the site has no page for.","isRequired":true,"uniqueKey":"entity.route.oneOf.0","typeLabel":"string"},{"type":"null","description":"Site-relative route of this entity's page on arcmira.com, e.g. \"/org/ramp\", \"/person/jane-doe\", \"/yt/@TBPNLive\". Null for a type the site has no page for.","isRequired":true,"uniqueKey":"entity.route.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"entity.route","typeLabel":"string | null"},"page":{"oneOf":[{"type":"string","description":"The entity's page on arcmira.com, absolute. Link the name to it when you write the entity into an answer. Null for a type the site has no page for.","isRequired":true,"uniqueKey":"entity.page.oneOf.0","typeLabel":"string"},{"type":"null","description":"The entity's page on arcmira.com, absolute. Link the name to it when you write the entity into an answer. Null for a type the site has no page for.","isRequired":true,"uniqueKey":"entity.page.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"entity.page","typeLabel":"string | null"},"appearances_page":{"oneOf":[{"type":"string","description":"For a person, the list of their appearances on arcmira.com (their page opens on it). Null for every other type.","isRequired":true,"uniqueKey":"entity.appearances_page.oneOf.0","typeLabel":"string"},{"type":"null","description":"For a person, the list of their appearances on arcmira.com (their page opens on it). Null for every other type.","isRequired":true,"uniqueKey":"entity.appearances_page.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"entity.appearances_page","typeLabel":"string | null"},"mentions_page":{"oneOf":[{"type":"string","description":"For a person, the list of mentions of them on arcmira.com, page/mentions. Null for every other type: their page is the mentions list already.","isRequired":true,"uniqueKey":"entity.mentions_page.oneOf.0","typeLabel":"string"},{"type":"null","description":"For a person, the list of mentions of them on arcmira.com, page/mentions. Null for every other type: their page is the mentions list already.","isRequired":true,"uniqueKey":"entity.mentions_page.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"entity.mentions_page","typeLabel":"string | null"},"appearance_count":{"type":"integer","default":0,"description":"Number of indexed appearances and mentions of this entity. 0 when never counted.","uniqueKey":"entity.appearance_count","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"entity","typeLabel":"object"},"window":{"type":"object","properties":{"after":{"oneOf":[{"type":"string","description":"Inclusive start as an ISO instant. Null when the window has no start.","isRequired":true,"uniqueKey":"window.after.oneOf.0","typeLabel":"string"},{"type":"null","description":"Inclusive start as an ISO instant. Null when the window has no start.","isRequired":true,"uniqueKey":"window.after.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"window.after","typeLabel":"string | null"},"before":{"oneOf":[{"type":"string","description":"Exclusive end as an ISO instant. Null when the window has no end. Earlier than the before you sent when your plan's freshness gate cut the window.","isRequired":true,"uniqueKey":"window.before.oneOf.0","typeLabel":"string"},{"type":"null","description":"Exclusive end as an ISO instant. Null when the window has no end. Earlier than the before you sent when your plan's freshness gate cut the window.","isRequired":true,"uniqueKey":"window.before.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"window.before","typeLabel":"string | null"}},"required":["after","before"],"description":"The publication window the answer covers, [after, before) in UTC, normalized from after and before.","isRequired":true,"uniqueKey":"window","typeLabel":"object"},"shows":{"type":"array","items":{"type":"object","properties":{"channel":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Public entity id (\"ent_{n}\") of the show. Null when the show has no entity record yet.","isRequired":true,"uniqueKey":"shows.items.[INDEX].channel.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Public entity id (\"ent_{n}\") of the show. Null when the show has no entity record yet.","isRequired":true,"uniqueKey":"shows.items.[INDEX].channel.id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"shows.items.[INDEX].channel.id","typeLabel":"string | null"},"youtube_channel_id":{"type":"string","description":"YouTube channel id of the show.","isRequired":true,"uniqueKey":"shows.items.[INDEX].channel.youtube_channel_id","typeLabel":"string"},"name":{"oneOf":[{"type":"string","description":"Show name. Null when the show has no entity record yet.","isRequired":true,"uniqueKey":"shows.items.[INDEX].channel.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Show name. Null when the show has no entity record yet.","isRequired":true,"uniqueKey":"shows.items.[INDEX].channel.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"shows.items.[INDEX].channel.name","typeLabel":"string | null"},"page":{"oneOf":[{"type":"string","description":"The channel's page on arcmira.com, absolute. Null when no channel is known.","isRequired":true,"uniqueKey":"shows.items.[INDEX].channel.page.oneOf.0","typeLabel":"string"},{"type":"null","description":"The channel's page on arcmira.com, absolute. Null when no channel is known.","isRequired":true,"uniqueKey":"shows.items.[INDEX].channel.page.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"shows.items.[INDEX].channel.page","typeLabel":"string | null"}},"required":["id","youtube_channel_id","name","page"],"isRequired":true,"uniqueKey":"shows.items.[INDEX].channel","typeLabel":"object"},"ad_reads":{"type":"integer","description":"Ad reads for the entity on this show, every date counted.","isRequired":true,"uniqueKey":"shows.items.[INDEX].ad_reads","typeLabel":"integer"},"receipt":{"oneOf":[{"type":"object","properties":{"video_id":{"type":"string","description":"YouTube video id (11 characters).","isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt.oneOf.0.video_id","typeLabel":"string"},"title":{"oneOf":[{"type":"string","description":"Video title.","isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt.oneOf.0.title.oneOf.0","typeLabel":"string"},{"type":"null","description":"Video title.","isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt.oneOf.0.title.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt.oneOf.0.title","typeLabel":"string | null"},"published_at":{"oneOf":[{"type":"string","description":"Video publish timestamp.","isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt.oneOf.0.published_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"Video publish timestamp.","isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt.oneOf.0.published_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt.oneOf.0.published_at","typeLabel":"string | null"},"start_seconds":{"oneOf":[{"type":"integer","description":"Where the ad read starts, in integer seconds. 0 means \"full episode / no specific moment\". Null when the analyzer could not place it in time.","isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt.oneOf.0.start_seconds.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Where the ad read starts, in integer seconds. 0 means \"full episode / no specific moment\". Null when the analyzer could not place it in time.","isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt.oneOf.0.start_seconds.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt.oneOf.0.start_seconds","typeLabel":"integer | null"},"verbatim_quote":{"oneOf":[{"type":"string","description":"The ad read as said. Null when no quote was extracted.","isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt.oneOf.0.verbatim_quote.oneOf.0","typeLabel":"string"},{"type":"null","description":"The ad read as said. Null when no quote was extracted.","isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt.oneOf.0.verbatim_quote.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt.oneOf.0.verbatim_quote","typeLabel":"string | null"},"watch_url":{"type":"string","description":"The video on arcmira.com, opened at start_seconds.","isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt.oneOf.0.watch_url","typeLabel":"string"}},"required":["video_id","title","published_at","start_seconds","verbatim_quote","watch_url"],"description":"One of those ad reads, the newest your plan lists. Null when every read on this show is newer than your plan's freshness window.","isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"video_id":{"type":"string","description":"YouTube video id (11 characters)."},"title":{"oneOf":[{"type":"string","description":"Video title."},{"type":"null","description":"Video title."}]},"published_at":{"oneOf":[{"type":"string","description":"Video publish timestamp."},{"type":"null","description":"Video publish timestamp."}]},"start_seconds":{"oneOf":[{"type":"integer","description":"Where the ad read starts, in integer seconds. 0 means \"full episode / no specific moment\". Null when the analyzer could not place it in time."},{"type":"null","description":"Where the ad read starts, in integer seconds. 0 means \"full episode / no specific moment\". Null when the analyzer could not place it in time."}]},"verbatim_quote":{"oneOf":[{"type":"string","description":"The ad read as said. Null when no quote was extracted."},{"type":"null","description":"The ad read as said. Null when no quote was extracted."}]},"watch_url":{"type":"string","description":"The video on arcmira.com, opened at start_seconds."}},"required":["video_id","title","published_at","start_seconds","verbatim_quote","watch_url"],"description":"One of those ad reads, the newest your plan lists. Null when every read on this show is newer than your plan's freshness window.","isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"shows.items.[INDEX].receipt","typeLabel":"object | null"}},"required":["channel","ad_reads","receipt"],"uniqueKey":"shows.items.[INDEX]","typeLabel":"object"},"description":"Present below Pro+: up to 3 of the entity's top shows by ad-read count, most first (a tie goes to the show name, then the channel id), each with one receipt.","uniqueKey":"shows","typeLabel":"object[]"},"meta":{"type":"object","properties":{"count":{"type":"integer","description":"Shows returned.","isRequired":true,"uniqueKey":"meta.count","typeLabel":"integer"},"total":{"type":"integer","description":"Shows that carry an ad read for the entity.","isRequired":true,"uniqueKey":"meta.total","typeLabel":"integer"},"ad_reads":{"type":"integer","description":"Ad reads for the entity across every show.","isRequired":true,"uniqueKey":"meta.ad_reads","typeLabel":"integer"}},"required":["count","total","ad_reads"],"description":"Present with shows: the full counts behind the free slice.","uniqueKey":"meta","typeLabel":"object"},"access":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request_error","authentication_error","permission_error","quota_exceeded","rate_limit_error","not_found","conflict_error","server_error"],"description":"The error class. It fixes the HTTP status: invalid_request_error 400, authentication_error 401, quota_exceeded 402, permission_error 403, not_found 404, conflict_error 409, rate_limit_error 429, server_error 500. Switch on it for retry and gate handling.","isRequired":true,"uniqueKey":"access.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"The specific condition, stable and snake_case; doc_url anchors on it. x-arcmira-codes on this schema lists every code with its type, gate and meaning. The list is open: new codes may appear inside an existing type, so switch on type and gate first.","isRequired":true,"uniqueKey":"access.code","typeLabel":"string"},"message":{"type":"string","description":"One plain line. Names the fix or the unlock.","isRequired":true,"uniqueKey":"access.message","typeLabel":"string"},"doc_url":{"type":"string","isRequired":true,"uniqueKey":"access.doc_url","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"access.request_id","typeLabel":"string"},"reason":{"type":"string","enum":["no_credential","invalid","revoked"],"description":"Only on invalid_api_key. no_credential: nothing was sent. invalid: a credential was sent and is unknown or malformed. revoked: the key exists and is no longer usable.","uniqueKey":"access.reason","typeLabel":"enum\u003cstring>"},"param":{"type":"string","description":"The query or body parameter the gate refused, when one did.","uniqueKey":"access.param","typeLabel":"string"},"gate":{"type":"string","enum":["rows","key","plan","freshness","exposure_law","rate","pagination"],"description":"Which boundary refused. Present on every gate error; switch on it without parsing the message.","uniqueKey":"access.gate","typeLabel":"enum\u003cstring>"},"resource":{"oneOf":[{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","beyond_row"],"properties":{"kind":{"type":"string","enum":["media_rows"],"isRequired":true,"uniqueKey":"access.resource.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"beyond_row":{"type":"integer","isRequired":true,"uniqueKey":"access.resource.oneOf.0.beyond_row","typeLabel":"integer"}},"uniqueKey":"access.resource.oneOf.0","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","window_days","cutoff"],"properties":{"kind":{"type":"string","enum":["fresh_media"],"isRequired":true,"uniqueKey":"access.resource.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"window_days":{"type":"integer","isRequired":true,"uniqueKey":"access.resource.oneOf.1.window_days","typeLabel":"integer"},"cutoff":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"access.resource.oneOf.1.cutoff.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"access.resource.oneOf.1.cutoff.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"access.resource.oneOf.1.cutoff","typeLabel":"string | null"}},"uniqueKey":"access.resource.oneOf.1","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","section","beyond_row"],"properties":{"kind":{"type":"string","enum":["sidebar_rows"],"isRequired":true,"uniqueKey":"access.resource.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"section":{"type":"string","enum":["topics","entities"],"isRequired":true,"uniqueKey":"access.resource.oneOf.2.section","typeLabel":"enum\u003cstring>"},"beyond_row":{"type":"integer","isRequired":true,"uniqueKey":"access.resource.oneOf.2.beyond_row","typeLabel":"integer"}},"uniqueKey":"access.resource.oneOf.2","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["counts"],"isRequired":true,"uniqueKey":"access.resource.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"access.resource.oneOf.3","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["chart"],"isRequired":true,"uniqueKey":"access.resource.oneOf.4.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"access.resource.oneOf.4","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","param"],"properties":{"kind":{"type":"string","enum":["pagination"],"isRequired":true,"uniqueKey":"access.resource.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"param":{"oneOf":[{"type":"string","enum":["offset","cursor",null],"isRequired":true,"uniqueKey":"access.resource.oneOf.5.param.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["offset","cursor",null],"isRequired":true,"uniqueKey":"access.resource.oneOf.5.param.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"access.resource.oneOf.5.param","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"access.resource.oneOf.5","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["premium_transcript"],"isRequired":true,"uniqueKey":"access.resource.oneOf.6.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"access.resource.oneOf.6","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","param"],"properties":{"kind":{"type":"string","enum":["filter"],"isRequired":true,"uniqueKey":"access.resource.oneOf.7.kind","typeLabel":"enum\u003cstring>"},"param":{"type":"string","isRequired":true,"uniqueKey":"access.resource.oneOf.7.param","typeLabel":"string"}},"uniqueKey":"access.resource.oneOf.7","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","what"],"properties":{"kind":{"type":"string","enum":["commercial"],"isRequired":true,"uniqueKey":"access.resource.oneOf.8.kind","typeLabel":"enum\u003cstring>"},"what":{"type":"string","enum":["sponsors","recommendations","mention_details","community_review","paid_split"],"isRequired":true,"uniqueKey":"access.resource.oneOf.8.what","typeLabel":"enum\u003cstring>"}},"uniqueKey":"access.resource.oneOf.8","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","feature"],"properties":{"kind":{"type":"string","enum":["feature"],"isRequired":true,"uniqueKey":"access.resource.oneOf.9.kind","typeLabel":"enum\u003cstring>"},"feature":{"type":"string","enum":["api","export"],"isRequired":true,"uniqueKey":"access.resource.oneOf.9.feature","typeLabel":"enum\u003cstring>"}},"uniqueKey":"access.resource.oneOf.9","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","requested","remaining"],"properties":{"kind":{"type":"string","enum":["rows"],"isRequired":true,"uniqueKey":"access.resource.oneOf.10.kind","typeLabel":"enum\u003cstring>"},"requested":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"access.resource.oneOf.10.requested.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"access.resource.oneOf.10.requested.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"access.resource.oneOf.10.requested","typeLabel":"integer | null"},"remaining":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"access.resource.oneOf.10.remaining.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"access.resource.oneOf.10.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"access.resource.oneOf.10.remaining","typeLabel":"integer | null"}},"uniqueKey":"access.resource.oneOf.10","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","scope"],"properties":{"kind":{"type":"string","enum":["key"],"isRequired":true,"uniqueKey":"access.resource.oneOf.11.kind","typeLabel":"enum\u003cstring>"},"scope":{"oneOf":[{"type":"string","enum":["read","monitors:write","trackers:write","recommendations:read",null],"isRequired":true,"uniqueKey":"access.resource.oneOf.11.scope.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["read","monitors:write","trackers:write","recommendations:read",null],"isRequired":true,"uniqueKey":"access.resource.oneOf.11.scope.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"access.resource.oneOf.11.scope","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"access.resource.oneOf.11","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["requests"],"isRequired":true,"uniqueKey":"access.resource.oneOf.12.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"access.resource.oneOf.12","typeLabel":"object"}],"uniqueKey":"access.resource","typeLabel":"object"},"unlock":{"type":"object","properties":{"tier":{"type":"string","description":"The plan that lifts the gate.","isRequired":true,"uniqueKey":"access.unlock.tier","typeLabel":"string"},"url":{"type":"string","description":"Absolute upgrade or sign-up URL carrying its ?src= attribution. Use it verbatim.","isRequired":true,"uniqueKey":"access.unlock.url","typeLabel":"string"},"offer":{"type":"null","description":"Reserved for the agent-discount offer. Always null today.","isRequired":true,"uniqueKey":"access.unlock.offer","typeLabel":"null"},"action":{"type":"object","properties":{"kind":{"type":"string","description":"What the call does. send_signup_code sends a verification code to an address for an account key.","isRequired":true,"uniqueKey":"access.unlock.action.kind","typeLabel":"string"},"method":{"type":"string","description":"HTTP method to use.","isRequired":true,"uniqueKey":"access.unlock.action.method","typeLabel":"string"},"url":{"type":"string","description":"Absolute endpoint carrying its ?src= attribution. Call it verbatim.","isRequired":true,"uniqueKey":"access.unlock.action.url","typeLabel":"string"}},"required":["kind","method","url"],"description":"The request that lifts the gate with no human, present when the caller can fix this itself. A key gate carries the signup send here; a plan or quota gate has no action and its url is a page a person opens.","uniqueKey":"access.unlock.action","typeLabel":"object"}},"required":["tier","url","offer"],"description":"How to lift the gate. Present when the gate has an unlock.","uniqueKey":"access.unlock","typeLabel":"object"},"retry_after_seconds":{"type":"integer","description":"Present on rate gates. Mirrors the Retry-After header.","uniqueKey":"access.retry_after_seconds","typeLabel":"integer"},"details":{"type":"object","properties":{"quote":{"type":"object","description":"The refused price, on a priced refusal: quota_exceeded, spend_limit_exceeded and paid_plan_required.","required":["quarters","rows"],"properties":{"quarters":{"type":"integer","description":"Number of 15-minute blocks in the video, ceiling'd, minimum 1.","isRequired":true,"uniqueKey":"access.details.quote.quarters","typeLabel":"integer"},"rows":{"type":"integer","description":"Credits the whole video uses, in rows: 300 credits per 15-minute block (75 rows; a row is 4 credits).","isRequired":true,"uniqueKey":"access.details.quote.rows","typeLabel":"integer"},"charge":{"type":"object","properties":{"unit":{"type":"string","enum":["rows","credits"],"isRequired":true,"uniqueKey":"access.details.quote.charge.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","isRequired":true,"uniqueKey":"access.details.quote.charge.amount","typeLabel":"number"},"from":{"type":"string","enum":["included","on_demand","mixed"],"description":"Where the charge would come from at the current balance.","isRequired":true,"uniqueKey":"access.details.quote.charge.from","typeLabel":"enum\u003cstring>"}},"required":["unit","amount","from"],"description":"What the request would charge at the current balance. Absent when no current price could be read.","uniqueKey":"access.details.quote.charge","typeLabel":"object"},"max_on_demand_cents":{"type":"integer","description":"The on-demand usage, in whole cents, this request needs beyond the plan's credits at the current balance.","uniqueKey":"access.details.quote.max_on_demand_cents","typeLabel":"integer"}},"uniqueKey":"access.details.quote","typeLabel":"object"},"limit":{"oneOf":[{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["plan_credits"],"isRequired":true,"uniqueKey":"access.details.limit.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["credits"],"isRequired":true,"uniqueKey":"access.details.limit.oneOf.0.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The plan credits a month. Carried by quota_exceeded when on-demand usage is off.","isRequired":true,"uniqueKey":"access.details.limit.oneOf.0.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in credits.","isRequired":true,"uniqueKey":"access.details.limit.oneOf.0.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"access.details.limit.oneOf.0.resets_at","typeLabel":"string"}},"uniqueKey":"access.details.limit.oneOf.0","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["on_demand_budget"],"isRequired":true,"uniqueKey":"access.details.limit.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["credits"],"isRequired":true,"uniqueKey":"access.details.limit.oneOf.1.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The on-demand budget a month, in credits ($0.002 a credit). Carried by quota_exceeded and spend_limit_exceeded when on-demand usage is on.","isRequired":true,"uniqueKey":"access.details.limit.oneOf.1.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in credits.","isRequired":true,"uniqueKey":"access.details.limit.oneOf.1.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"access.details.limit.oneOf.1.resets_at","typeLabel":"string"}},"uniqueKey":"access.details.limit.oneOf.1","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["member_on_demand"],"isRequired":true,"uniqueKey":"access.details.limit.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["cents"],"isRequired":true,"uniqueKey":"access.details.limit.oneOf.2.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The monthly on-demand limit an admin set for the person the key or token acts for, in US cents. Carried by member_limit.","isRequired":true,"uniqueKey":"access.details.limit.oneOf.2.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in cents.","isRequired":true,"uniqueKey":"access.details.limit.oneOf.2.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"access.details.limit.oneOf.2.resets_at","typeLabel":"string"}},"uniqueKey":"access.details.limit.oneOf.2","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["premium_hours"],"isRequired":true,"uniqueKey":"access.details.limit.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["hours"],"isRequired":true,"uniqueKey":"access.details.limit.oneOf.3.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The Premium transcript hours Ultra plan credits cover a month. Carried by fair_use_cap.","isRequired":true,"uniqueKey":"access.details.limit.oneOf.3.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in hours.","isRequired":true,"uniqueKey":"access.details.limit.oneOf.3.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"access.details.limit.oneOf.3.resets_at","typeLabel":"string"}},"uniqueKey":"access.details.limit.oneOf.3","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","delay_days","served_through"],"properties":{"delay_days":{"type":"integer","description":"Days after publication before this plan reads a video.","isRequired":true,"uniqueKey":"access.details.limit.oneOf.4.delay_days","typeLabel":"integer"},"served_through":{"type":"string","description":"YYYY-MM-DD (UTC). Results on this plan stop at this publish date; media published after it is not read.","isRequired":true,"uniqueKey":"access.details.limit.oneOf.4.served_through","typeLabel":"string"},"kind":{"type":"string","enum":["freshness"],"isRequired":true,"uniqueKey":"access.details.limit.oneOf.4.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"access.details.limit.oneOf.4","typeLabel":"object"}],"uniqueKey":"access.details.limit","typeLabel":"object"},"url":{"type":"string","description":"On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page.","uniqueKey":"access.details.url","typeLabel":"string"}},"description":"Machine data the refusal carries for you to act on. Present only on the codes that name a field here.","uniqueKey":"access.details","typeLabel":"object"}},"required":["type","code","message","doc_url","request_id"],"description":"The gate that reduced this response. Present only when something was withheld; carries the same code, gate, and unlock an outright refusal would.","uniqueKey":"access","typeLabel":"object"}},"required":["recommendations","has_more","next_cursor","entity","window"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"recommendations":[{"id":"\u003cstring>","class":"sponsored","entity":{"id":"\u003cstring>","name":"\u003cstring>","type":"\u003cstring>","slug":"\u003cstring>","page":"\u003cstring>"},"media":{"video_id":"\u003cstring>","title":"\u003cstring>","published_at":"\u003cstring>","channel_id":"\u003cstring>","source_channel":{"id":"\u003cstring>","name":"\u003cstring>"}},"start_seconds":123,"end_seconds":123,"verbatim_quote":"\u003cstring>","promo_code":"\u003cstring>","offer":"\u003cstring>","sentiment":123,"sentiment_score":123,"confidence":123,"speaker_role":"\u003cstring>","conflict_status":"\u003cstring>","resolution":"\u003cstring>"}],"has_more":true,"next_cursor":"\u003cstring>","entity":{"id":"\u003cstring>","canonical_id":"\u003cstring>","name":"\u003cstring>","type":"\u003cstring>","platform":"\u003cstring>","url":"\u003cstring>","image_url":"\u003cstring>","image_checked_at":"\u003cstring>","owner_entity_id":"\u003cstring>","is_canonical":true,"merged_from_id":"\u003cstring>","slug":"\u003cstring>","route":"\u003cstring>","page":"\u003cstring>","appearances_page":"\u003cstring>","mentions_page":"\u003cstring>","appearance_count":0},"window":{"after":"\u003cstring>","before":"\u003cstring>"},"shows":[{"channel":{"id":"\u003cstring>","youtube_channel_id":"\u003cstring>","name":"\u003cstring>","page":"\u003cstring>"},"ad_reads":123,"receipt":{"video_id":"\u003cstring>","title":"\u003cstring>","published_at":"\u003cstring>","start_seconds":123,"verbatim_quote":"\u003cstring>","watch_url":"\u003cstring>"}}],"meta":{"count":123,"total":123,"ad_reads":123},"access":{"type":"invalid_request_error","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","reason":"no_credential","param":"\u003cstring>","gate":"rows","resource":{"kind":"media_rows","beyond_row":123},"unlock":{"tier":"\u003cstring>","url":"\u003cstring>","offer":null,"action":{"kind":"\u003cstring>","method":"\u003cstring>","url":"\u003cstring>"}},"retry_after_seconds":123,"details":{"quote":{"quarters":123,"rows":123,"charge":{"unit":"rows","amount":123,"from":"included"},"max_on_demand_cents":123},"limit":{"kind":"plan_credits","unit":"credits","amount":123,"used":123,"resets_at":"\u003cstring>"},"url":"\u003cstring>"}}}}},"exampleType":"generated"}},"exampleType":"generated"},"d9e8b833-1300-44e7-84d5-ab0d2e703ef5":{"description":"Invalid request","headers":{"X-Request-Id":{"description":"The request id, echoed from an X-Request-Id request header or minted as req_\u003cuuid>. error.request_id carries the same value. Quote it when reporting a problem.","schema":{"type":"string"}},"X-Arcmira-Version":{"description":"The API version that answered. Always v1.","schema":{"type":"string","enum":["v1"]}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request_error","authentication_error","permission_error","quota_exceeded","rate_limit_error","not_found","conflict_error","server_error"],"description":"The error class. It fixes the HTTP status: invalid_request_error 400, authentication_error 401, quota_exceeded 402, permission_error 403, not_found 404, conflict_error 409, rate_limit_error 429, server_error 500. Switch on it for retry and gate handling.","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"The specific condition, stable and snake_case; doc_url anchors on it. x-arcmira-codes on this schema lists every code with its type, gate and meaning. The list is open: new codes may appear inside an existing type, so switch on type and gate first.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"One plain line. Names the fix or the unlock.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"reason":{"type":"string","enum":["no_credential","invalid","revoked"],"description":"Only on invalid_api_key. no_credential: nothing was sent. invalid: a credential was sent and is unknown or malformed. revoked: the key exists and is no longer usable.","uniqueKey":"error.reason","typeLabel":"enum\u003cstring>"},"param":{"type":"string","description":"The query or body parameter the gate refused, when one did.","uniqueKey":"error.param","typeLabel":"string"},"gate":{"type":"string","enum":["rows","key","plan","freshness","exposure_law","rate","pagination"],"description":"Which boundary refused. Present on every gate error; switch on it without parsing the message.","uniqueKey":"error.gate","typeLabel":"enum\u003cstring>"},"resource":{"oneOf":[{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","beyond_row"],"properties":{"kind":{"type":"string","enum":["media_rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"beyond_row":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.0.beyond_row","typeLabel":"integer"}},"uniqueKey":"error.resource.oneOf.0","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","window_days","cutoff"],"properties":{"kind":{"type":"string","enum":["fresh_media"],"isRequired":true,"uniqueKey":"error.resource.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"window_days":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.1.window_days","typeLabel":"integer"},"cutoff":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff","typeLabel":"string | null"}},"uniqueKey":"error.resource.oneOf.1","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","section","beyond_row"],"properties":{"kind":{"type":"string","enum":["sidebar_rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"section":{"type":"string","enum":["topics","entities"],"isRequired":true,"uniqueKey":"error.resource.oneOf.2.section","typeLabel":"enum\u003cstring>"},"beyond_row":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.2.beyond_row","typeLabel":"integer"}},"uniqueKey":"error.resource.oneOf.2","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["counts"],"isRequired":true,"uniqueKey":"error.resource.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.3","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["chart"],"isRequired":true,"uniqueKey":"error.resource.oneOf.4.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.4","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","param"],"properties":{"kind":{"type":"string","enum":["pagination"],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"param":{"oneOf":[{"type":"string","enum":["offset","cursor",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["offset","cursor",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"error.resource.oneOf.5","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["premium_transcript"],"isRequired":true,"uniqueKey":"error.resource.oneOf.6.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.6","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","param"],"properties":{"kind":{"type":"string","enum":["filter"],"isRequired":true,"uniqueKey":"error.resource.oneOf.7.kind","typeLabel":"enum\u003cstring>"},"param":{"type":"string","isRequired":true,"uniqueKey":"error.resource.oneOf.7.param","typeLabel":"string"}},"uniqueKey":"error.resource.oneOf.7","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","what"],"properties":{"kind":{"type":"string","enum":["commercial"],"isRequired":true,"uniqueKey":"error.resource.oneOf.8.kind","typeLabel":"enum\u003cstring>"},"what":{"type":"string","enum":["sponsors","recommendations","mention_details","community_review","paid_split"],"isRequired":true,"uniqueKey":"error.resource.oneOf.8.what","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.8","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","feature"],"properties":{"kind":{"type":"string","enum":["feature"],"isRequired":true,"uniqueKey":"error.resource.oneOf.9.kind","typeLabel":"enum\u003cstring>"},"feature":{"type":"string","enum":["api","export"],"isRequired":true,"uniqueKey":"error.resource.oneOf.9.feature","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.9","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","requested","remaining"],"properties":{"kind":{"type":"string","enum":["rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.kind","typeLabel":"enum\u003cstring>"},"requested":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested","typeLabel":"integer | null"},"remaining":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining","typeLabel":"integer | null"}},"uniqueKey":"error.resource.oneOf.10","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","scope"],"properties":{"kind":{"type":"string","enum":["key"],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.kind","typeLabel":"enum\u003cstring>"},"scope":{"oneOf":[{"type":"string","enum":["read","monitors:write","trackers:write","recommendations:read",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["read","monitors:write","trackers:write","recommendations:read",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"error.resource.oneOf.11","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["requests"],"isRequired":true,"uniqueKey":"error.resource.oneOf.12.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.12","typeLabel":"object"}],"uniqueKey":"error.resource","typeLabel":"object"},"unlock":{"type":"object","properties":{"tier":{"type":"string","description":"The plan that lifts the gate.","isRequired":true,"uniqueKey":"error.unlock.tier","typeLabel":"string"},"url":{"type":"string","description":"Absolute upgrade or sign-up URL carrying its ?src= attribution. Use it verbatim.","isRequired":true,"uniqueKey":"error.unlock.url","typeLabel":"string"},"offer":{"type":"null","description":"Reserved for the agent-discount offer. Always null today.","isRequired":true,"uniqueKey":"error.unlock.offer","typeLabel":"null"},"action":{"type":"object","properties":{"kind":{"type":"string","description":"What the call does. send_signup_code sends a verification code to an address for an account key.","isRequired":true,"uniqueKey":"error.unlock.action.kind","typeLabel":"string"},"method":{"type":"string","description":"HTTP method to use.","isRequired":true,"uniqueKey":"error.unlock.action.method","typeLabel":"string"},"url":{"type":"string","description":"Absolute endpoint carrying its ?src= attribution. Call it verbatim.","isRequired":true,"uniqueKey":"error.unlock.action.url","typeLabel":"string"}},"required":["kind","method","url"],"description":"The request that lifts the gate with no human, present when the caller can fix this itself. A key gate carries the signup send here; a plan or quota gate has no action and its url is a page a person opens.","uniqueKey":"error.unlock.action","typeLabel":"object"}},"required":["tier","url","offer"],"description":"How to lift the gate. Present when the gate has an unlock.","uniqueKey":"error.unlock","typeLabel":"object"},"retry_after_seconds":{"type":"integer","description":"Present on rate gates. Mirrors the Retry-After header.","uniqueKey":"error.retry_after_seconds","typeLabel":"integer"},"details":{"type":"object","properties":{"quote":{"type":"object","description":"The refused price, on a priced refusal: quota_exceeded, spend_limit_exceeded and paid_plan_required.","required":["quarters","rows"],"properties":{"quarters":{"type":"integer","description":"Number of 15-minute blocks in the video, ceiling'd, minimum 1.","isRequired":true,"uniqueKey":"error.details.quote.quarters","typeLabel":"integer"},"rows":{"type":"integer","description":"Credits the whole video uses, in rows: 300 credits per 15-minute block (75 rows; a row is 4 credits).","isRequired":true,"uniqueKey":"error.details.quote.rows","typeLabel":"integer"},"charge":{"type":"object","properties":{"unit":{"type":"string","enum":["rows","credits"],"isRequired":true,"uniqueKey":"error.details.quote.charge.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","isRequired":true,"uniqueKey":"error.details.quote.charge.amount","typeLabel":"number"},"from":{"type":"string","enum":["included","on_demand","mixed"],"description":"Where the charge would come from at the current balance.","isRequired":true,"uniqueKey":"error.details.quote.charge.from","typeLabel":"enum\u003cstring>"}},"required":["unit","amount","from"],"description":"What the request would charge at the current balance. Absent when no current price could be read.","uniqueKey":"error.details.quote.charge","typeLabel":"object"},"max_on_demand_cents":{"type":"integer","description":"The on-demand usage, in whole cents, this request needs beyond the plan's credits at the current balance.","uniqueKey":"error.details.quote.max_on_demand_cents","typeLabel":"integer"}},"uniqueKey":"error.details.quote","typeLabel":"object"},"limit":{"oneOf":[{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["plan_credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The plan credits a month. Carried by quota_exceeded when on-demand usage is off.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in credits.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.0","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["on_demand_budget"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The on-demand budget a month, in credits ($0.002 a credit). Carried by quota_exceeded and spend_limit_exceeded when on-demand usage is on.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in credits.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.1","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["member_on_demand"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["cents"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The monthly on-demand limit an admin set for the person the key or token acts for, in US cents. Carried by member_limit.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in cents.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.2","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["premium_hours"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["hours"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The Premium transcript hours Ultra plan credits cover a month. Carried by fair_use_cap.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in hours.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.3","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","delay_days","served_through"],"properties":{"delay_days":{"type":"integer","description":"Days after publication before this plan reads a video.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.delay_days","typeLabel":"integer"},"served_through":{"type":"string","description":"YYYY-MM-DD (UTC). Results on this plan stop at this publish date; media published after it is not read.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.served_through","typeLabel":"string"},"kind":{"type":"string","enum":["freshness"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.details.limit.oneOf.4","typeLabel":"object"}],"uniqueKey":"error.details.limit","typeLabel":"object"},"url":{"type":"string","description":"On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page.","uniqueKey":"error.details.url","typeLabel":"string"}},"description":"Machine data the refusal carries for you to act on. Present only on the codes that name a field here.","uniqueKey":"error.details","typeLabel":"object"}},"required":["type","code","message","doc_url","request_id"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"x-arcmira-codes":[{"code":"alert_not_found","type":"not_found","description":"A referenced alert does not exist or belongs to another account."},{"code":"api_not_enabled","type":"permission_error","gate":"plan","description":"The plan does not include API access. unlock.url names the plan that does."},{"code":"appearances_person_only","type":"invalid_request_error","description":"Appearance filtering applies to person entities only."},{"code":"channel_not_found","type":"not_found","description":"No channel matches the id or slug."},{"code":"email_verification_required","type":"permission_error","description":"Verify the account email before adding recipients."},{"code":"entity_not_found","type":"not_found","description":"No entity matches the id, slug, or name."},{"code":"fair_use_cap","type":"quota_exceeded","description":"A fair-use cap on the plan's credits is reached for this use this month, and the account has no granted or on-demand credits to use instead. Nothing was charged. details.limit carries the cap and what is used. An admin turns on on-demand usage or raises its budget, or the cap resets with the month."},{"code":"feature_not_available","type":"permission_error","gate":"plan","description":"The plan does not include this feature. unlock.url names the plan that does."},{"code":"feedback_not_found","type":"not_found","description":"No feedback submission with this id for this account."},{"code":"filter_requires_paid","type":"permission_error","gate":"plan","description":"The parameter in param needs a paid plan; omit it for the free answer."},{"code":"forbidden","type":"permission_error","description":"The caller may not perform this operation on this resource."},{"code":"freshness_requires_paid","type":"permission_error","gate":"freshness","description":"The date window starts after results on this plan stop. details.limit carries delay_days and served_through; move the window to served_through or earlier, or open unlock.url for the plan that reads newer media."},{"code":"id_required","type":"invalid_request_error","description":"A filter in param received a name where it takes an id (ent_{n} or UC...). Resolve the name first with GET /v1/entities/resolve and pass best.id or best.youtube_channel_id."},{"code":"idempotency_conflict","type":"conflict_error","description":"The Idempotency-Key was sent before with a different request body. Send a new key for a new request."},{"code":"idempotency_result_expired","type":"conflict_error","description":"The original one-time signing secret is no longer valid. Use a new request key for a new rotation."},{"code":"insufficient_scope","type":"permission_error","gate":"key","description":"The key lacks the scope this route needs."},{"code":"invalid_api_key","type":"authentication_error","gate":"key","description":"No usable credential. reason says whether none was sent, it is unknown, or it was revoked."},{"code":"invalid_body","type":"invalid_request_error","description":"The JSON body failed validation; message names the field."},{"code":"invalid_cursor","type":"invalid_request_error","description":"The continuation is invalid, expired, or belongs to another query. Restart without cursor."},{"code":"invalid_email_recipients","type":"invalid_request_error","description":"Email recipients failed validation."},{"code":"invalid_feedback_request","type":"invalid_request_error","description":"The feedback query or corrections do not fit the feedback type."},{"code":"invalid_idempotency_key","type":"invalid_request_error","description":"Idempotency-Key must be 1 to 255 printable ASCII characters (0x21 to 0x7E). param is Idempotency-Key."},{"code":"invalid_query","type":"invalid_request_error","description":"A query parameter failed validation; message names it."},{"code":"invalid_slack_integration","type":"invalid_request_error","description":"Choose an active Slack integration owned by the account."},{"code":"invalid_video_id","type":"invalid_request_error","description":"The video_id path segment is not an 11-character YouTube id."},{"code":"job_requires_account","type":"authentication_error","gate":"key","description":"Transcription jobs belong to an account; sign up for a key."},{"code":"member_limit","type":"quota_exceeded","gate":"rows","description":"The account's included credits are used up and the person the key or token acts for has reached their monthly on-demand limit in it. Nothing was charged, and there is no unlock. details.limit carries the limit and what is used, in US cents. An admin raises the limit on the Team page (https://arcmira.com/dashboard/members), or it resets with the month."},{"code":"monitor_creation_unavailable","type":"server_error","description":"Monitor creation is temporarily unavailable. Retry the same request with the same key."},{"code":"monitor_creation_unconfirmed","type":"server_error","description":"Monitor creation could not be confirmed. Retry the same request with the same key."},{"code":"monitor_not_found","type":"not_found","description":"No monitor with this id on the account."},{"code":"not_found","type":"not_found","description":"No route or resource at this path."},{"code":"on_demand_paused","type":"quota_exceeded","gate":"rows","description":"The account's included credits are used up and its on-demand usage is paused, because a payment for an on-demand invoice was declined. Nothing was charged, and there is no unlock. On-demand resumes once the invoice is paid. An admin updates the card on the Billing \u0026 Invoices page (https://arcmira.com/dashboard/billing), which retries the payment."},{"code":"owner_only","type":"permission_error","description":"Only an admin of the account may do this. Everyone in a team can create, edit, pause, delete and restore monitors."},{"code":"owner_plan_required","type":"permission_error","description":"A team account follows its owner's plan, which does not include this. An admin can upgrade; a member's own plan does not apply."},{"code":"pagination_gated","type":"permission_error","gate":"pagination","description":"Results past the free window need a paid plan."},{"code":"paid_plan_required","type":"permission_error","description":"The operation needs a paid plan. unlock.url names the plan that does."},{"code":"premium_transcript_requested","type":"permission_error","gate":"exposure_law","description":"Premium transcript text needs a plan with Premium transcripts."},{"code":"quota_exceeded","type":"quota_exceeded","gate":"rows","description":"The read needs more credits than the plan, then the on-demand budget, have left. Nothing was charged. details.limit carries the plan credits or the on-demand budget the read met, with what is used and when it resets. unlock.url upgrades the plan or raises the budget."},{"code":"rate_limited","type":"rate_limit_error","gate":"rate","description":"Too many requests in the window. Retry-After carries the wait."},{"code":"recipient_upgrade_required","type":"permission_error","description":"The requested email recipient count exceeds the plan allowance."},{"code":"recommendations_not_enabled","type":"permission_error","gate":"plan","description":"Commercial data needs a Pro+ plan."},{"code":"resource_conflict","type":"conflict_error","description":"The operation conflicts with existing resource state."},{"code":"scope_too_broad","type":"invalid_request_error","description":"The requested exact video scope exceeds the search filename cap; narrow by channel or date."},{"code":"search_unavailable","type":"server_error","description":"Transcript search is unavailable (HTTP 503). Retry-After carries the wait."},{"code":"server_error","type":"server_error","description":"Unexpected failure. Retry with backoff and quote request_id if it persists."},{"code":"service_unavailable","type":"server_error","description":"The database was briefly overloaded or restarting (HTTP 503). Retry-After carries the wait; send the same request again."},{"code":"signup_code_invalid","type":"invalid_request_error","description":"The signup code is wrong, expired, or spent; message names the attempts left."},{"code":"signup_send_limited","type":"rate_limit_error","description":"Verification code sends hit a per-address, per-IP, or per-client cap. Retry-After carries the wait."},{"code":"spend_limit_exceeded","type":"quota_exceeded","description":"The request would take on-demand usage past the account's on-demand budget this month. Nothing was charged. details.limit carries the budget and what is used. Raise the budget on the Spending page or wait for the month to reset; then read again, or send a POST /v1/transcriptions request again with a new Idempotency-Key."},{"code":"team_id_retired","type":"invalid_request_error","description":"team_id is retired: a monitor belongs to the account the key acts in. Omit team_id or send null."},{"code":"terms_acceptance_required","type":"permission_error","description":"The person the key or token acts for has not accepted the updated Terms of Service. details.url is the page where they accept; the key or token works again as soon as they do."},{"code":"terms_updated","type":"permission_error","description":"The Terms of Service changed since the person the key or token acts for last accepted them. This call was not run. Continuing to use the API accepts the updated terms, so the same call succeeds when sent again. details.url is the terms page. Sent once per person."},{"code":"tracker_create_retired","type":"invalid_request_error","description":"POST /v1/trackers is retired (HTTP 410): a tracker lives inside a monitor. Follow an entity id or an exact name with POST /v1/monitors/{id}/entities, which creates the tracker in that monitor."},{"code":"tracker_delivery_retired","type":"invalid_request_error","description":"Trackers have no delivery of their own: a tracker alerts through its monitor. Omit notify_email, notify_webhook, notify_slack, webhook_url, slack_channel_id and slack_integration_id, or send the value that means the monitor's delivery (true for notify_email, false or null for the rest), and set delivery with PATCH /v1/monitors/{id}. param names the field."},{"code":"tracker_not_found","type":"not_found","description":"No tracker with this id on the account."},{"code":"transcript_fetching","type":"server_error","description":"The caption track is being fetched, or the transcript translated, now (HTTP 503). Retry-After carries the wait; nothing was charged."},{"code":"transcript_requires_account","type":"authentication_error","gate":"key","description":"Full transcripts need an account key; unlock.action sends a signup code."},{"code":"transcript_unavailable","type":"not_found","description":"The video has no transcript in the requested lane or language; languages lists what exists."},{"code":"unknown_entity","type":"invalid_request_error","description":"An explicit entity_ids value does not resolve to a searchable entity."},{"code":"webhook_not_configured","type":"conflict_error","description":"The monitor has no webhook to rotate a secret for. Set webhook_url first."}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request_error","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","reason":"no_credential","param":"\u003cstring>","gate":"rows","resource":{"kind":"media_rows","beyond_row":123},"unlock":{"tier":"\u003cstring>","url":"\u003cstring>","offer":null,"action":{"kind":"\u003cstring>","method":"\u003cstring>","url":"\u003cstring>"}},"retry_after_seconds":123,"details":{"quote":{"quarters":123,"rows":123,"charge":{"unit":"rows","amount":123,"from":"included"},"max_on_demand_cents":123},"limit":{"kind":"plan_credits","unit":"credits","amount":123,"used":123,"resets_at":"\u003cstring>"},"url":"\u003cstring>"}}}}},"exampleType":"generated"}},"exampleType":"generated"},"cd940224-441b-4fdf-96f8-ccb63a3c0e2e":{"description":"Authentication error","headers":{"X-Request-Id":{"description":"The request id, echoed from an X-Request-Id request header or minted as req_\u003cuuid>. error.request_id carries the same value. Quote it when reporting a problem.","schema":{"type":"string"}},"X-Arcmira-Version":{"description":"The API version that answered. Always v1.","schema":{"type":"string","enum":["v1"]}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request_error","authentication_error","permission_error","quota_exceeded","rate_limit_error","not_found","conflict_error","server_error"],"description":"The error class. It fixes the HTTP status: invalid_request_error 400, authentication_error 401, quota_exceeded 402, permission_error 403, not_found 404, conflict_error 409, rate_limit_error 429, server_error 500. Switch on it for retry and gate handling.","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"The specific condition, stable and snake_case; doc_url anchors on it. x-arcmira-codes on this schema lists every code with its type, gate and meaning. The list is open: new codes may appear inside an existing type, so switch on type and gate first.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"One plain line. Names the fix or the unlock.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"reason":{"type":"string","enum":["no_credential","invalid","revoked"],"description":"Only on invalid_api_key. no_credential: nothing was sent. invalid: a credential was sent and is unknown or malformed. revoked: the key exists and is no longer usable.","uniqueKey":"error.reason","typeLabel":"enum\u003cstring>"},"param":{"type":"string","description":"The query or body parameter the gate refused, when one did.","uniqueKey":"error.param","typeLabel":"string"},"gate":{"type":"string","enum":["rows","key","plan","freshness","exposure_law","rate","pagination"],"description":"Which boundary refused. Present on every gate error; switch on it without parsing the message.","uniqueKey":"error.gate","typeLabel":"enum\u003cstring>"},"resource":{"oneOf":[{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","beyond_row"],"properties":{"kind":{"type":"string","enum":["media_rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"beyond_row":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.0.beyond_row","typeLabel":"integer"}},"uniqueKey":"error.resource.oneOf.0","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","window_days","cutoff"],"properties":{"kind":{"type":"string","enum":["fresh_media"],"isRequired":true,"uniqueKey":"error.resource.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"window_days":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.1.window_days","typeLabel":"integer"},"cutoff":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff","typeLabel":"string | null"}},"uniqueKey":"error.resource.oneOf.1","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","section","beyond_row"],"properties":{"kind":{"type":"string","enum":["sidebar_rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"section":{"type":"string","enum":["topics","entities"],"isRequired":true,"uniqueKey":"error.resource.oneOf.2.section","typeLabel":"enum\u003cstring>"},"beyond_row":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.2.beyond_row","typeLabel":"integer"}},"uniqueKey":"error.resource.oneOf.2","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["counts"],"isRequired":true,"uniqueKey":"error.resource.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.3","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["chart"],"isRequired":true,"uniqueKey":"error.resource.oneOf.4.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.4","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","param"],"properties":{"kind":{"type":"string","enum":["pagination"],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"param":{"oneOf":[{"type":"string","enum":["offset","cursor",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["offset","cursor",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"error.resource.oneOf.5","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["premium_transcript"],"isRequired":true,"uniqueKey":"error.resource.oneOf.6.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.6","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","param"],"properties":{"kind":{"type":"string","enum":["filter"],"isRequired":true,"uniqueKey":"error.resource.oneOf.7.kind","typeLabel":"enum\u003cstring>"},"param":{"type":"string","isRequired":true,"uniqueKey":"error.resource.oneOf.7.param","typeLabel":"string"}},"uniqueKey":"error.resource.oneOf.7","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","what"],"properties":{"kind":{"type":"string","enum":["commercial"],"isRequired":true,"uniqueKey":"error.resource.oneOf.8.kind","typeLabel":"enum\u003cstring>"},"what":{"type":"string","enum":["sponsors","recommendations","mention_details","community_review","paid_split"],"isRequired":true,"uniqueKey":"error.resource.oneOf.8.what","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.8","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","feature"],"properties":{"kind":{"type":"string","enum":["feature"],"isRequired":true,"uniqueKey":"error.resource.oneOf.9.kind","typeLabel":"enum\u003cstring>"},"feature":{"type":"string","enum":["api","export"],"isRequired":true,"uniqueKey":"error.resource.oneOf.9.feature","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.9","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","requested","remaining"],"properties":{"kind":{"type":"string","enum":["rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.kind","typeLabel":"enum\u003cstring>"},"requested":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested","typeLabel":"integer | null"},"remaining":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining","typeLabel":"integer | null"}},"uniqueKey":"error.resource.oneOf.10","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","scope"],"properties":{"kind":{"type":"string","enum":["key"],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.kind","typeLabel":"enum\u003cstring>"},"scope":{"oneOf":[{"type":"string","enum":["read","monitors:write","trackers:write","recommendations:read",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["read","monitors:write","trackers:write","recommendations:read",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"error.resource.oneOf.11","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["requests"],"isRequired":true,"uniqueKey":"error.resource.oneOf.12.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.12","typeLabel":"object"}],"uniqueKey":"error.resource","typeLabel":"object"},"unlock":{"type":"object","properties":{"tier":{"type":"string","description":"The plan that lifts the gate.","isRequired":true,"uniqueKey":"error.unlock.tier","typeLabel":"string"},"url":{"type":"string","description":"Absolute upgrade or sign-up URL carrying its ?src= attribution. Use it verbatim.","isRequired":true,"uniqueKey":"error.unlock.url","typeLabel":"string"},"offer":{"type":"null","description":"Reserved for the agent-discount offer. Always null today.","isRequired":true,"uniqueKey":"error.unlock.offer","typeLabel":"null"},"action":{"type":"object","properties":{"kind":{"type":"string","description":"What the call does. send_signup_code sends a verification code to an address for an account key.","isRequired":true,"uniqueKey":"error.unlock.action.kind","typeLabel":"string"},"method":{"type":"string","description":"HTTP method to use.","isRequired":true,"uniqueKey":"error.unlock.action.method","typeLabel":"string"},"url":{"type":"string","description":"Absolute endpoint carrying its ?src= attribution. Call it verbatim.","isRequired":true,"uniqueKey":"error.unlock.action.url","typeLabel":"string"}},"required":["kind","method","url"],"description":"The request that lifts the gate with no human, present when the caller can fix this itself. A key gate carries the signup send here; a plan or quota gate has no action and its url is a page a person opens.","uniqueKey":"error.unlock.action","typeLabel":"object"}},"required":["tier","url","offer"],"description":"How to lift the gate. Present when the gate has an unlock.","uniqueKey":"error.unlock","typeLabel":"object"},"retry_after_seconds":{"type":"integer","description":"Present on rate gates. Mirrors the Retry-After header.","uniqueKey":"error.retry_after_seconds","typeLabel":"integer"},"details":{"type":"object","properties":{"quote":{"type":"object","description":"The refused price, on a priced refusal: quota_exceeded, spend_limit_exceeded and paid_plan_required.","required":["quarters","rows"],"properties":{"quarters":{"type":"integer","description":"Number of 15-minute blocks in the video, ceiling'd, minimum 1.","isRequired":true,"uniqueKey":"error.details.quote.quarters","typeLabel":"integer"},"rows":{"type":"integer","description":"Credits the whole video uses, in rows: 300 credits per 15-minute block (75 rows; a row is 4 credits).","isRequired":true,"uniqueKey":"error.details.quote.rows","typeLabel":"integer"},"charge":{"type":"object","properties":{"unit":{"type":"string","enum":["rows","credits"],"isRequired":true,"uniqueKey":"error.details.quote.charge.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","isRequired":true,"uniqueKey":"error.details.quote.charge.amount","typeLabel":"number"},"from":{"type":"string","enum":["included","on_demand","mixed"],"description":"Where the charge would come from at the current balance.","isRequired":true,"uniqueKey":"error.details.quote.charge.from","typeLabel":"enum\u003cstring>"}},"required":["unit","amount","from"],"description":"What the request would charge at the current balance. Absent when no current price could be read.","uniqueKey":"error.details.quote.charge","typeLabel":"object"},"max_on_demand_cents":{"type":"integer","description":"The on-demand usage, in whole cents, this request needs beyond the plan's credits at the current balance.","uniqueKey":"error.details.quote.max_on_demand_cents","typeLabel":"integer"}},"uniqueKey":"error.details.quote","typeLabel":"object"},"limit":{"oneOf":[{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["plan_credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The plan credits a month. Carried by quota_exceeded when on-demand usage is off.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in credits.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.0","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["on_demand_budget"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The on-demand budget a month, in credits ($0.002 a credit). Carried by quota_exceeded and spend_limit_exceeded when on-demand usage is on.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in credits.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.1","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["member_on_demand"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["cents"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The monthly on-demand limit an admin set for the person the key or token acts for, in US cents. Carried by member_limit.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in cents.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.2","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["premium_hours"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["hours"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The Premium transcript hours Ultra plan credits cover a month. Carried by fair_use_cap.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in hours.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.3","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","delay_days","served_through"],"properties":{"delay_days":{"type":"integer","description":"Days after publication before this plan reads a video.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.delay_days","typeLabel":"integer"},"served_through":{"type":"string","description":"YYYY-MM-DD (UTC). Results on this plan stop at this publish date; media published after it is not read.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.served_through","typeLabel":"string"},"kind":{"type":"string","enum":["freshness"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.details.limit.oneOf.4","typeLabel":"object"}],"uniqueKey":"error.details.limit","typeLabel":"object"},"url":{"type":"string","description":"On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page.","uniqueKey":"error.details.url","typeLabel":"string"}},"description":"Machine data the refusal carries for you to act on. Present only on the codes that name a field here.","uniqueKey":"error.details","typeLabel":"object"}},"required":["type","code","message","doc_url","request_id"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"x-arcmira-codes":[{"code":"alert_not_found","type":"not_found","description":"A referenced alert does not exist or belongs to another account."},{"code":"api_not_enabled","type":"permission_error","gate":"plan","description":"The plan does not include API access. unlock.url names the plan that does."},{"code":"appearances_person_only","type":"invalid_request_error","description":"Appearance filtering applies to person entities only."},{"code":"channel_not_found","type":"not_found","description":"No channel matches the id or slug."},{"code":"email_verification_required","type":"permission_error","description":"Verify the account email before adding recipients."},{"code":"entity_not_found","type":"not_found","description":"No entity matches the id, slug, or name."},{"code":"fair_use_cap","type":"quota_exceeded","description":"A fair-use cap on the plan's credits is reached for this use this month, and the account has no granted or on-demand credits to use instead. Nothing was charged. details.limit carries the cap and what is used. An admin turns on on-demand usage or raises its budget, or the cap resets with the month."},{"code":"feature_not_available","type":"permission_error","gate":"plan","description":"The plan does not include this feature. unlock.url names the plan that does."},{"code":"feedback_not_found","type":"not_found","description":"No feedback submission with this id for this account."},{"code":"filter_requires_paid","type":"permission_error","gate":"plan","description":"The parameter in param needs a paid plan; omit it for the free answer."},{"code":"forbidden","type":"permission_error","description":"The caller may not perform this operation on this resource."},{"code":"freshness_requires_paid","type":"permission_error","gate":"freshness","description":"The date window starts after results on this plan stop. details.limit carries delay_days and served_through; move the window to served_through or earlier, or open unlock.url for the plan that reads newer media."},{"code":"id_required","type":"invalid_request_error","description":"A filter in param received a name where it takes an id (ent_{n} or UC...). Resolve the name first with GET /v1/entities/resolve and pass best.id or best.youtube_channel_id."},{"code":"idempotency_conflict","type":"conflict_error","description":"The Idempotency-Key was sent before with a different request body. Send a new key for a new request."},{"code":"idempotency_result_expired","type":"conflict_error","description":"The original one-time signing secret is no longer valid. Use a new request key for a new rotation."},{"code":"insufficient_scope","type":"permission_error","gate":"key","description":"The key lacks the scope this route needs."},{"code":"invalid_api_key","type":"authentication_error","gate":"key","description":"No usable credential. reason says whether none was sent, it is unknown, or it was revoked."},{"code":"invalid_body","type":"invalid_request_error","description":"The JSON body failed validation; message names the field."},{"code":"invalid_cursor","type":"invalid_request_error","description":"The continuation is invalid, expired, or belongs to another query. Restart without cursor."},{"code":"invalid_email_recipients","type":"invalid_request_error","description":"Email recipients failed validation."},{"code":"invalid_feedback_request","type":"invalid_request_error","description":"The feedback query or corrections do not fit the feedback type."},{"code":"invalid_idempotency_key","type":"invalid_request_error","description":"Idempotency-Key must be 1 to 255 printable ASCII characters (0x21 to 0x7E). param is Idempotency-Key."},{"code":"invalid_query","type":"invalid_request_error","description":"A query parameter failed validation; message names it."},{"code":"invalid_slack_integration","type":"invalid_request_error","description":"Choose an active Slack integration owned by the account."},{"code":"invalid_video_id","type":"invalid_request_error","description":"The video_id path segment is not an 11-character YouTube id."},{"code":"job_requires_account","type":"authentication_error","gate":"key","description":"Transcription jobs belong to an account; sign up for a key."},{"code":"member_limit","type":"quota_exceeded","gate":"rows","description":"The account's included credits are used up and the person the key or token acts for has reached their monthly on-demand limit in it. Nothing was charged, and there is no unlock. details.limit carries the limit and what is used, in US cents. An admin raises the limit on the Team page (https://arcmira.com/dashboard/members), or it resets with the month."},{"code":"monitor_creation_unavailable","type":"server_error","description":"Monitor creation is temporarily unavailable. Retry the same request with the same key."},{"code":"monitor_creation_unconfirmed","type":"server_error","description":"Monitor creation could not be confirmed. Retry the same request with the same key."},{"code":"monitor_not_found","type":"not_found","description":"No monitor with this id on the account."},{"code":"not_found","type":"not_found","description":"No route or resource at this path."},{"code":"on_demand_paused","type":"quota_exceeded","gate":"rows","description":"The account's included credits are used up and its on-demand usage is paused, because a payment for an on-demand invoice was declined. Nothing was charged, and there is no unlock. On-demand resumes once the invoice is paid. An admin updates the card on the Billing \u0026 Invoices page (https://arcmira.com/dashboard/billing), which retries the payment."},{"code":"owner_only","type":"permission_error","description":"Only an admin of the account may do this. Everyone in a team can create, edit, pause, delete and restore monitors."},{"code":"owner_plan_required","type":"permission_error","description":"A team account follows its owner's plan, which does not include this. An admin can upgrade; a member's own plan does not apply."},{"code":"pagination_gated","type":"permission_error","gate":"pagination","description":"Results past the free window need a paid plan."},{"code":"paid_plan_required","type":"permission_error","description":"The operation needs a paid plan. unlock.url names the plan that does."},{"code":"premium_transcript_requested","type":"permission_error","gate":"exposure_law","description":"Premium transcript text needs a plan with Premium transcripts."},{"code":"quota_exceeded","type":"quota_exceeded","gate":"rows","description":"The read needs more credits than the plan, then the on-demand budget, have left. Nothing was charged. details.limit carries the plan credits or the on-demand budget the read met, with what is used and when it resets. unlock.url upgrades the plan or raises the budget."},{"code":"rate_limited","type":"rate_limit_error","gate":"rate","description":"Too many requests in the window. Retry-After carries the wait."},{"code":"recipient_upgrade_required","type":"permission_error","description":"The requested email recipient count exceeds the plan allowance."},{"code":"recommendations_not_enabled","type":"permission_error","gate":"plan","description":"Commercial data needs a Pro+ plan."},{"code":"resource_conflict","type":"conflict_error","description":"The operation conflicts with existing resource state."},{"code":"scope_too_broad","type":"invalid_request_error","description":"The requested exact video scope exceeds the search filename cap; narrow by channel or date."},{"code":"search_unavailable","type":"server_error","description":"Transcript search is unavailable (HTTP 503). Retry-After carries the wait."},{"code":"server_error","type":"server_error","description":"Unexpected failure. Retry with backoff and quote request_id if it persists."},{"code":"service_unavailable","type":"server_error","description":"The database was briefly overloaded or restarting (HTTP 503). Retry-After carries the wait; send the same request again."},{"code":"signup_code_invalid","type":"invalid_request_error","description":"The signup code is wrong, expired, or spent; message names the attempts left."},{"code":"signup_send_limited","type":"rate_limit_error","description":"Verification code sends hit a per-address, per-IP, or per-client cap. Retry-After carries the wait."},{"code":"spend_limit_exceeded","type":"quota_exceeded","description":"The request would take on-demand usage past the account's on-demand budget this month. Nothing was charged. details.limit carries the budget and what is used. Raise the budget on the Spending page or wait for the month to reset; then read again, or send a POST /v1/transcriptions request again with a new Idempotency-Key."},{"code":"team_id_retired","type":"invalid_request_error","description":"team_id is retired: a monitor belongs to the account the key acts in. Omit team_id or send null."},{"code":"terms_acceptance_required","type":"permission_error","description":"The person the key or token acts for has not accepted the updated Terms of Service. details.url is the page where they accept; the key or token works again as soon as they do."},{"code":"terms_updated","type":"permission_error","description":"The Terms of Service changed since the person the key or token acts for last accepted them. This call was not run. Continuing to use the API accepts the updated terms, so the same call succeeds when sent again. details.url is the terms page. Sent once per person."},{"code":"tracker_create_retired","type":"invalid_request_error","description":"POST /v1/trackers is retired (HTTP 410): a tracker lives inside a monitor. Follow an entity id or an exact name with POST /v1/monitors/{id}/entities, which creates the tracker in that monitor."},{"code":"tracker_delivery_retired","type":"invalid_request_error","description":"Trackers have no delivery of their own: a tracker alerts through its monitor. Omit notify_email, notify_webhook, notify_slack, webhook_url, slack_channel_id and slack_integration_id, or send the value that means the monitor's delivery (true for notify_email, false or null for the rest), and set delivery with PATCH /v1/monitors/{id}. param names the field."},{"code":"tracker_not_found","type":"not_found","description":"No tracker with this id on the account."},{"code":"transcript_fetching","type":"server_error","description":"The caption track is being fetched, or the transcript translated, now (HTTP 503). Retry-After carries the wait; nothing was charged."},{"code":"transcript_requires_account","type":"authentication_error","gate":"key","description":"Full transcripts need an account key; unlock.action sends a signup code."},{"code":"transcript_unavailable","type":"not_found","description":"The video has no transcript in the requested lane or language; languages lists what exists."},{"code":"unknown_entity","type":"invalid_request_error","description":"An explicit entity_ids value does not resolve to a searchable entity."},{"code":"webhook_not_configured","type":"conflict_error","description":"The monitor has no webhook to rotate a secret for. Set webhook_url first."}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request_error","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","reason":"no_credential","param":"\u003cstring>","gate":"rows","resource":{"kind":"media_rows","beyond_row":123},"unlock":{"tier":"\u003cstring>","url":"\u003cstring>","offer":null,"action":{"kind":"\u003cstring>","method":"\u003cstring>","url":"\u003cstring>"}},"retry_after_seconds":123,"details":{"quote":{"quarters":123,"rows":123,"charge":{"unit":"rows","amount":123,"from":"included"},"max_on_demand_cents":123},"limit":{"kind":"plan_credits","unit":"credits","amount":123,"used":123,"resets_at":"\u003cstring>"},"url":"\u003cstring>"}}}}},"exampleType":"generated"}},"exampleType":"generated"},"7d367e90-aa1d-4407-ba53-8303fb0f6403":{"description":"Quota exceeded","headers":{"X-Request-Id":{"description":"The request id, echoed from an X-Request-Id request header or minted as req_\u003cuuid>. error.request_id carries the same value. Quote it when reporting a problem.","schema":{"type":"string"}},"X-Arcmira-Version":{"description":"The API version that answered. Always v1.","schema":{"type":"string","enum":["v1"]}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request_error","authentication_error","permission_error","quota_exceeded","rate_limit_error","not_found","conflict_error","server_error"],"description":"The error class. It fixes the HTTP status: invalid_request_error 400, authentication_error 401, quota_exceeded 402, permission_error 403, not_found 404, conflict_error 409, rate_limit_error 429, server_error 500. Switch on it for retry and gate handling.","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"The specific condition, stable and snake_case; doc_url anchors on it. x-arcmira-codes on this schema lists every code with its type, gate and meaning. The list is open: new codes may appear inside an existing type, so switch on type and gate first.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"One plain line. Names the fix or the unlock.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"reason":{"type":"string","enum":["no_credential","invalid","revoked"],"description":"Only on invalid_api_key. no_credential: nothing was sent. invalid: a credential was sent and is unknown or malformed. revoked: the key exists and is no longer usable.","uniqueKey":"error.reason","typeLabel":"enum\u003cstring>"},"param":{"type":"string","description":"The query or body parameter the gate refused, when one did.","uniqueKey":"error.param","typeLabel":"string"},"gate":{"type":"string","enum":["rows","key","plan","freshness","exposure_law","rate","pagination"],"description":"Which boundary refused. Present on every gate error; switch on it without parsing the message.","uniqueKey":"error.gate","typeLabel":"enum\u003cstring>"},"resource":{"oneOf":[{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","beyond_row"],"properties":{"kind":{"type":"string","enum":["media_rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"beyond_row":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.0.beyond_row","typeLabel":"integer"}},"uniqueKey":"error.resource.oneOf.0","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","window_days","cutoff"],"properties":{"kind":{"type":"string","enum":["fresh_media"],"isRequired":true,"uniqueKey":"error.resource.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"window_days":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.1.window_days","typeLabel":"integer"},"cutoff":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff","typeLabel":"string | null"}},"uniqueKey":"error.resource.oneOf.1","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","section","beyond_row"],"properties":{"kind":{"type":"string","enum":["sidebar_rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"section":{"type":"string","enum":["topics","entities"],"isRequired":true,"uniqueKey":"error.resource.oneOf.2.section","typeLabel":"enum\u003cstring>"},"beyond_row":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.2.beyond_row","typeLabel":"integer"}},"uniqueKey":"error.resource.oneOf.2","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["counts"],"isRequired":true,"uniqueKey":"error.resource.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.3","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["chart"],"isRequired":true,"uniqueKey":"error.resource.oneOf.4.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.4","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","param"],"properties":{"kind":{"type":"string","enum":["pagination"],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"param":{"oneOf":[{"type":"string","enum":["offset","cursor",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["offset","cursor",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"error.resource.oneOf.5","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["premium_transcript"],"isRequired":true,"uniqueKey":"error.resource.oneOf.6.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.6","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","param"],"properties":{"kind":{"type":"string","enum":["filter"],"isRequired":true,"uniqueKey":"error.resource.oneOf.7.kind","typeLabel":"enum\u003cstring>"},"param":{"type":"string","isRequired":true,"uniqueKey":"error.resource.oneOf.7.param","typeLabel":"string"}},"uniqueKey":"error.resource.oneOf.7","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","what"],"properties":{"kind":{"type":"string","enum":["commercial"],"isRequired":true,"uniqueKey":"error.resource.oneOf.8.kind","typeLabel":"enum\u003cstring>"},"what":{"type":"string","enum":["sponsors","recommendations","mention_details","community_review","paid_split"],"isRequired":true,"uniqueKey":"error.resource.oneOf.8.what","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.8","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","feature"],"properties":{"kind":{"type":"string","enum":["feature"],"isRequired":true,"uniqueKey":"error.resource.oneOf.9.kind","typeLabel":"enum\u003cstring>"},"feature":{"type":"string","enum":["api","export"],"isRequired":true,"uniqueKey":"error.resource.oneOf.9.feature","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.9","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","requested","remaining"],"properties":{"kind":{"type":"string","enum":["rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.kind","typeLabel":"enum\u003cstring>"},"requested":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested","typeLabel":"integer | null"},"remaining":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining","typeLabel":"integer | null"}},"uniqueKey":"error.resource.oneOf.10","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","scope"],"properties":{"kind":{"type":"string","enum":["key"],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.kind","typeLabel":"enum\u003cstring>"},"scope":{"oneOf":[{"type":"string","enum":["read","monitors:write","trackers:write","recommendations:read",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["read","monitors:write","trackers:write","recommendations:read",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"error.resource.oneOf.11","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["requests"],"isRequired":true,"uniqueKey":"error.resource.oneOf.12.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.12","typeLabel":"object"}],"uniqueKey":"error.resource","typeLabel":"object"},"unlock":{"type":"object","properties":{"tier":{"type":"string","description":"The plan that lifts the gate.","isRequired":true,"uniqueKey":"error.unlock.tier","typeLabel":"string"},"url":{"type":"string","description":"Absolute upgrade or sign-up URL carrying its ?src= attribution. Use it verbatim.","isRequired":true,"uniqueKey":"error.unlock.url","typeLabel":"string"},"offer":{"type":"null","description":"Reserved for the agent-discount offer. Always null today.","isRequired":true,"uniqueKey":"error.unlock.offer","typeLabel":"null"},"action":{"type":"object","properties":{"kind":{"type":"string","description":"What the call does. send_signup_code sends a verification code to an address for an account key.","isRequired":true,"uniqueKey":"error.unlock.action.kind","typeLabel":"string"},"method":{"type":"string","description":"HTTP method to use.","isRequired":true,"uniqueKey":"error.unlock.action.method","typeLabel":"string"},"url":{"type":"string","description":"Absolute endpoint carrying its ?src= attribution. Call it verbatim.","isRequired":true,"uniqueKey":"error.unlock.action.url","typeLabel":"string"}},"required":["kind","method","url"],"description":"The request that lifts the gate with no human, present when the caller can fix this itself. A key gate carries the signup send here; a plan or quota gate has no action and its url is a page a person opens.","uniqueKey":"error.unlock.action","typeLabel":"object"}},"required":["tier","url","offer"],"description":"How to lift the gate. Present when the gate has an unlock.","uniqueKey":"error.unlock","typeLabel":"object"},"retry_after_seconds":{"type":"integer","description":"Present on rate gates. Mirrors the Retry-After header.","uniqueKey":"error.retry_after_seconds","typeLabel":"integer"},"details":{"type":"object","properties":{"quote":{"type":"object","description":"The refused price, on a priced refusal: quota_exceeded, spend_limit_exceeded and paid_plan_required.","required":["quarters","rows"],"properties":{"quarters":{"type":"integer","description":"Number of 15-minute blocks in the video, ceiling'd, minimum 1.","isRequired":true,"uniqueKey":"error.details.quote.quarters","typeLabel":"integer"},"rows":{"type":"integer","description":"Credits the whole video uses, in rows: 300 credits per 15-minute block (75 rows; a row is 4 credits).","isRequired":true,"uniqueKey":"error.details.quote.rows","typeLabel":"integer"},"charge":{"type":"object","properties":{"unit":{"type":"string","enum":["rows","credits"],"isRequired":true,"uniqueKey":"error.details.quote.charge.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","isRequired":true,"uniqueKey":"error.details.quote.charge.amount","typeLabel":"number"},"from":{"type":"string","enum":["included","on_demand","mixed"],"description":"Where the charge would come from at the current balance.","isRequired":true,"uniqueKey":"error.details.quote.charge.from","typeLabel":"enum\u003cstring>"}},"required":["unit","amount","from"],"description":"What the request would charge at the current balance. Absent when no current price could be read.","uniqueKey":"error.details.quote.charge","typeLabel":"object"},"max_on_demand_cents":{"type":"integer","description":"The on-demand usage, in whole cents, this request needs beyond the plan's credits at the current balance.","uniqueKey":"error.details.quote.max_on_demand_cents","typeLabel":"integer"}},"uniqueKey":"error.details.quote","typeLabel":"object"},"limit":{"oneOf":[{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["plan_credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The plan credits a month. Carried by quota_exceeded when on-demand usage is off.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in credits.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.0","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["on_demand_budget"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The on-demand budget a month, in credits ($0.002 a credit). Carried by quota_exceeded and spend_limit_exceeded when on-demand usage is on.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in credits.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.1","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["member_on_demand"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["cents"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The monthly on-demand limit an admin set for the person the key or token acts for, in US cents. Carried by member_limit.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in cents.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.2","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["premium_hours"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["hours"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The Premium transcript hours Ultra plan credits cover a month. Carried by fair_use_cap.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in hours.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.3","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","delay_days","served_through"],"properties":{"delay_days":{"type":"integer","description":"Days after publication before this plan reads a video.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.delay_days","typeLabel":"integer"},"served_through":{"type":"string","description":"YYYY-MM-DD (UTC). Results on this plan stop at this publish date; media published after it is not read.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.served_through","typeLabel":"string"},"kind":{"type":"string","enum":["freshness"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.details.limit.oneOf.4","typeLabel":"object"}],"uniqueKey":"error.details.limit","typeLabel":"object"},"url":{"type":"string","description":"On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page.","uniqueKey":"error.details.url","typeLabel":"string"}},"description":"Machine data the refusal carries for you to act on. Present only on the codes that name a field here.","uniqueKey":"error.details","typeLabel":"object"}},"required":["type","code","message","doc_url","request_id"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"x-arcmira-codes":[{"code":"alert_not_found","type":"not_found","description":"A referenced alert does not exist or belongs to another account."},{"code":"api_not_enabled","type":"permission_error","gate":"plan","description":"The plan does not include API access. unlock.url names the plan that does."},{"code":"appearances_person_only","type":"invalid_request_error","description":"Appearance filtering applies to person entities only."},{"code":"channel_not_found","type":"not_found","description":"No channel matches the id or slug."},{"code":"email_verification_required","type":"permission_error","description":"Verify the account email before adding recipients."},{"code":"entity_not_found","type":"not_found","description":"No entity matches the id, slug, or name."},{"code":"fair_use_cap","type":"quota_exceeded","description":"A fair-use cap on the plan's credits is reached for this use this month, and the account has no granted or on-demand credits to use instead. Nothing was charged. details.limit carries the cap and what is used. An admin turns on on-demand usage or raises its budget, or the cap resets with the month."},{"code":"feature_not_available","type":"permission_error","gate":"plan","description":"The plan does not include this feature. unlock.url names the plan that does."},{"code":"feedback_not_found","type":"not_found","description":"No feedback submission with this id for this account."},{"code":"filter_requires_paid","type":"permission_error","gate":"plan","description":"The parameter in param needs a paid plan; omit it for the free answer."},{"code":"forbidden","type":"permission_error","description":"The caller may not perform this operation on this resource."},{"code":"freshness_requires_paid","type":"permission_error","gate":"freshness","description":"The date window starts after results on this plan stop. details.limit carries delay_days and served_through; move the window to served_through or earlier, or open unlock.url for the plan that reads newer media."},{"code":"id_required","type":"invalid_request_error","description":"A filter in param received a name where it takes an id (ent_{n} or UC...). Resolve the name first with GET /v1/entities/resolve and pass best.id or best.youtube_channel_id."},{"code":"idempotency_conflict","type":"conflict_error","description":"The Idempotency-Key was sent before with a different request body. Send a new key for a new request."},{"code":"idempotency_result_expired","type":"conflict_error","description":"The original one-time signing secret is no longer valid. Use a new request key for a new rotation."},{"code":"insufficient_scope","type":"permission_error","gate":"key","description":"The key lacks the scope this route needs."},{"code":"invalid_api_key","type":"authentication_error","gate":"key","description":"No usable credential. reason says whether none was sent, it is unknown, or it was revoked."},{"code":"invalid_body","type":"invalid_request_error","description":"The JSON body failed validation; message names the field."},{"code":"invalid_cursor","type":"invalid_request_error","description":"The continuation is invalid, expired, or belongs to another query. Restart without cursor."},{"code":"invalid_email_recipients","type":"invalid_request_error","description":"Email recipients failed validation."},{"code":"invalid_feedback_request","type":"invalid_request_error","description":"The feedback query or corrections do not fit the feedback type."},{"code":"invalid_idempotency_key","type":"invalid_request_error","description":"Idempotency-Key must be 1 to 255 printable ASCII characters (0x21 to 0x7E). param is Idempotency-Key."},{"code":"invalid_query","type":"invalid_request_error","description":"A query parameter failed validation; message names it."},{"code":"invalid_slack_integration","type":"invalid_request_error","description":"Choose an active Slack integration owned by the account."},{"code":"invalid_video_id","type":"invalid_request_error","description":"The video_id path segment is not an 11-character YouTube id."},{"code":"job_requires_account","type":"authentication_error","gate":"key","description":"Transcription jobs belong to an account; sign up for a key."},{"code":"member_limit","type":"quota_exceeded","gate":"rows","description":"The account's included credits are used up and the person the key or token acts for has reached their monthly on-demand limit in it. Nothing was charged, and there is no unlock. details.limit carries the limit and what is used, in US cents. An admin raises the limit on the Team page (https://arcmira.com/dashboard/members), or it resets with the month."},{"code":"monitor_creation_unavailable","type":"server_error","description":"Monitor creation is temporarily unavailable. Retry the same request with the same key."},{"code":"monitor_creation_unconfirmed","type":"server_error","description":"Monitor creation could not be confirmed. Retry the same request with the same key."},{"code":"monitor_not_found","type":"not_found","description":"No monitor with this id on the account."},{"code":"not_found","type":"not_found","description":"No route or resource at this path."},{"code":"on_demand_paused","type":"quota_exceeded","gate":"rows","description":"The account's included credits are used up and its on-demand usage is paused, because a payment for an on-demand invoice was declined. Nothing was charged, and there is no unlock. On-demand resumes once the invoice is paid. An admin updates the card on the Billing \u0026 Invoices page (https://arcmira.com/dashboard/billing), which retries the payment."},{"code":"owner_only","type":"permission_error","description":"Only an admin of the account may do this. Everyone in a team can create, edit, pause, delete and restore monitors."},{"code":"owner_plan_required","type":"permission_error","description":"A team account follows its owner's plan, which does not include this. An admin can upgrade; a member's own plan does not apply."},{"code":"pagination_gated","type":"permission_error","gate":"pagination","description":"Results past the free window need a paid plan."},{"code":"paid_plan_required","type":"permission_error","description":"The operation needs a paid plan. unlock.url names the plan that does."},{"code":"premium_transcript_requested","type":"permission_error","gate":"exposure_law","description":"Premium transcript text needs a plan with Premium transcripts."},{"code":"quota_exceeded","type":"quota_exceeded","gate":"rows","description":"The read needs more credits than the plan, then the on-demand budget, have left. Nothing was charged. details.limit carries the plan credits or the on-demand budget the read met, with what is used and when it resets. unlock.url upgrades the plan or raises the budget."},{"code":"rate_limited","type":"rate_limit_error","gate":"rate","description":"Too many requests in the window. Retry-After carries the wait."},{"code":"recipient_upgrade_required","type":"permission_error","description":"The requested email recipient count exceeds the plan allowance."},{"code":"recommendations_not_enabled","type":"permission_error","gate":"plan","description":"Commercial data needs a Pro+ plan."},{"code":"resource_conflict","type":"conflict_error","description":"The operation conflicts with existing resource state."},{"code":"scope_too_broad","type":"invalid_request_error","description":"The requested exact video scope exceeds the search filename cap; narrow by channel or date."},{"code":"search_unavailable","type":"server_error","description":"Transcript search is unavailable (HTTP 503). Retry-After carries the wait."},{"code":"server_error","type":"server_error","description":"Unexpected failure. Retry with backoff and quote request_id if it persists."},{"code":"service_unavailable","type":"server_error","description":"The database was briefly overloaded or restarting (HTTP 503). Retry-After carries the wait; send the same request again."},{"code":"signup_code_invalid","type":"invalid_request_error","description":"The signup code is wrong, expired, or spent; message names the attempts left."},{"code":"signup_send_limited","type":"rate_limit_error","description":"Verification code sends hit a per-address, per-IP, or per-client cap. Retry-After carries the wait."},{"code":"spend_limit_exceeded","type":"quota_exceeded","description":"The request would take on-demand usage past the account's on-demand budget this month. Nothing was charged. details.limit carries the budget and what is used. Raise the budget on the Spending page or wait for the month to reset; then read again, or send a POST /v1/transcriptions request again with a new Idempotency-Key."},{"code":"team_id_retired","type":"invalid_request_error","description":"team_id is retired: a monitor belongs to the account the key acts in. Omit team_id or send null."},{"code":"terms_acceptance_required","type":"permission_error","description":"The person the key or token acts for has not accepted the updated Terms of Service. details.url is the page where they accept; the key or token works again as soon as they do."},{"code":"terms_updated","type":"permission_error","description":"The Terms of Service changed since the person the key or token acts for last accepted them. This call was not run. Continuing to use the API accepts the updated terms, so the same call succeeds when sent again. details.url is the terms page. Sent once per person."},{"code":"tracker_create_retired","type":"invalid_request_error","description":"POST /v1/trackers is retired (HTTP 410): a tracker lives inside a monitor. Follow an entity id or an exact name with POST /v1/monitors/{id}/entities, which creates the tracker in that monitor."},{"code":"tracker_delivery_retired","type":"invalid_request_error","description":"Trackers have no delivery of their own: a tracker alerts through its monitor. Omit notify_email, notify_webhook, notify_slack, webhook_url, slack_channel_id and slack_integration_id, or send the value that means the monitor's delivery (true for notify_email, false or null for the rest), and set delivery with PATCH /v1/monitors/{id}. param names the field."},{"code":"tracker_not_found","type":"not_found","description":"No tracker with this id on the account."},{"code":"transcript_fetching","type":"server_error","description":"The caption track is being fetched, or the transcript translated, now (HTTP 503). Retry-After carries the wait; nothing was charged."},{"code":"transcript_requires_account","type":"authentication_error","gate":"key","description":"Full transcripts need an account key; unlock.action sends a signup code."},{"code":"transcript_unavailable","type":"not_found","description":"The video has no transcript in the requested lane or language; languages lists what exists."},{"code":"unknown_entity","type":"invalid_request_error","description":"An explicit entity_ids value does not resolve to a searchable entity."},{"code":"webhook_not_configured","type":"conflict_error","description":"The monitor has no webhook to rotate a secret for. Set webhook_url first."}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request_error","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","reason":"no_credential","param":"\u003cstring>","gate":"rows","resource":{"kind":"media_rows","beyond_row":123},"unlock":{"tier":"\u003cstring>","url":"\u003cstring>","offer":null,"action":{"kind":"\u003cstring>","method":"\u003cstring>","url":"\u003cstring>"}},"retry_after_seconds":123,"details":{"quote":{"quarters":123,"rows":123,"charge":{"unit":"rows","amount":123,"from":"included"},"max_on_demand_cents":123},"limit":{"kind":"plan_credits","unit":"credits","amount":123,"used":123,"resets_at":"\u003cstring>"},"url":"\u003cstring>"}}}}},"exampleType":"generated"}},"exampleType":"generated"},"5f515e18-7e88-4ded-8ed5-fbcdde0cbd57":{"description":"Permission error","headers":{"X-Request-Id":{"description":"The request id, echoed from an X-Request-Id request header or minted as req_\u003cuuid>. error.request_id carries the same value. Quote it when reporting a problem.","schema":{"type":"string"}},"X-Arcmira-Version":{"description":"The API version that answered. Always v1.","schema":{"type":"string","enum":["v1"]}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request_error","authentication_error","permission_error","quota_exceeded","rate_limit_error","not_found","conflict_error","server_error"],"description":"The error class. It fixes the HTTP status: invalid_request_error 400, authentication_error 401, quota_exceeded 402, permission_error 403, not_found 404, conflict_error 409, rate_limit_error 429, server_error 500. Switch on it for retry and gate handling.","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"The specific condition, stable and snake_case; doc_url anchors on it. x-arcmira-codes on this schema lists every code with its type, gate and meaning. The list is open: new codes may appear inside an existing type, so switch on type and gate first.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"One plain line. Names the fix or the unlock.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"reason":{"type":"string","enum":["no_credential","invalid","revoked"],"description":"Only on invalid_api_key. no_credential: nothing was sent. invalid: a credential was sent and is unknown or malformed. revoked: the key exists and is no longer usable.","uniqueKey":"error.reason","typeLabel":"enum\u003cstring>"},"param":{"type":"string","description":"The query or body parameter the gate refused, when one did.","uniqueKey":"error.param","typeLabel":"string"},"gate":{"type":"string","enum":["rows","key","plan","freshness","exposure_law","rate","pagination"],"description":"Which boundary refused. Present on every gate error; switch on it without parsing the message.","uniqueKey":"error.gate","typeLabel":"enum\u003cstring>"},"resource":{"oneOf":[{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","beyond_row"],"properties":{"kind":{"type":"string","enum":["media_rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"beyond_row":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.0.beyond_row","typeLabel":"integer"}},"uniqueKey":"error.resource.oneOf.0","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","window_days","cutoff"],"properties":{"kind":{"type":"string","enum":["fresh_media"],"isRequired":true,"uniqueKey":"error.resource.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"window_days":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.1.window_days","typeLabel":"integer"},"cutoff":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff","typeLabel":"string | null"}},"uniqueKey":"error.resource.oneOf.1","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","section","beyond_row"],"properties":{"kind":{"type":"string","enum":["sidebar_rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"section":{"type":"string","enum":["topics","entities"],"isRequired":true,"uniqueKey":"error.resource.oneOf.2.section","typeLabel":"enum\u003cstring>"},"beyond_row":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.2.beyond_row","typeLabel":"integer"}},"uniqueKey":"error.resource.oneOf.2","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["counts"],"isRequired":true,"uniqueKey":"error.resource.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.3","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["chart"],"isRequired":true,"uniqueKey":"error.resource.oneOf.4.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.4","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","param"],"properties":{"kind":{"type":"string","enum":["pagination"],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"param":{"oneOf":[{"type":"string","enum":["offset","cursor",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["offset","cursor",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"error.resource.oneOf.5","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["premium_transcript"],"isRequired":true,"uniqueKey":"error.resource.oneOf.6.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.6","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","param"],"properties":{"kind":{"type":"string","enum":["filter"],"isRequired":true,"uniqueKey":"error.resource.oneOf.7.kind","typeLabel":"enum\u003cstring>"},"param":{"type":"string","isRequired":true,"uniqueKey":"error.resource.oneOf.7.param","typeLabel":"string"}},"uniqueKey":"error.resource.oneOf.7","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","what"],"properties":{"kind":{"type":"string","enum":["commercial"],"isRequired":true,"uniqueKey":"error.resource.oneOf.8.kind","typeLabel":"enum\u003cstring>"},"what":{"type":"string","enum":["sponsors","recommendations","mention_details","community_review","paid_split"],"isRequired":true,"uniqueKey":"error.resource.oneOf.8.what","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.8","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","feature"],"properties":{"kind":{"type":"string","enum":["feature"],"isRequired":true,"uniqueKey":"error.resource.oneOf.9.kind","typeLabel":"enum\u003cstring>"},"feature":{"type":"string","enum":["api","export"],"isRequired":true,"uniqueKey":"error.resource.oneOf.9.feature","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.9","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","requested","remaining"],"properties":{"kind":{"type":"string","enum":["rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.kind","typeLabel":"enum\u003cstring>"},"requested":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested","typeLabel":"integer | null"},"remaining":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining","typeLabel":"integer | null"}},"uniqueKey":"error.resource.oneOf.10","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","scope"],"properties":{"kind":{"type":"string","enum":["key"],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.kind","typeLabel":"enum\u003cstring>"},"scope":{"oneOf":[{"type":"string","enum":["read","monitors:write","trackers:write","recommendations:read",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["read","monitors:write","trackers:write","recommendations:read",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"error.resource.oneOf.11","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["requests"],"isRequired":true,"uniqueKey":"error.resource.oneOf.12.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.12","typeLabel":"object"}],"uniqueKey":"error.resource","typeLabel":"object"},"unlock":{"type":"object","properties":{"tier":{"type":"string","description":"The plan that lifts the gate.","isRequired":true,"uniqueKey":"error.unlock.tier","typeLabel":"string"},"url":{"type":"string","description":"Absolute upgrade or sign-up URL carrying its ?src= attribution. Use it verbatim.","isRequired":true,"uniqueKey":"error.unlock.url","typeLabel":"string"},"offer":{"type":"null","description":"Reserved for the agent-discount offer. Always null today.","isRequired":true,"uniqueKey":"error.unlock.offer","typeLabel":"null"},"action":{"type":"object","properties":{"kind":{"type":"string","description":"What the call does. send_signup_code sends a verification code to an address for an account key.","isRequired":true,"uniqueKey":"error.unlock.action.kind","typeLabel":"string"},"method":{"type":"string","description":"HTTP method to use.","isRequired":true,"uniqueKey":"error.unlock.action.method","typeLabel":"string"},"url":{"type":"string","description":"Absolute endpoint carrying its ?src= attribution. Call it verbatim.","isRequired":true,"uniqueKey":"error.unlock.action.url","typeLabel":"string"}},"required":["kind","method","url"],"description":"The request that lifts the gate with no human, present when the caller can fix this itself. A key gate carries the signup send here; a plan or quota gate has no action and its url is a page a person opens.","uniqueKey":"error.unlock.action","typeLabel":"object"}},"required":["tier","url","offer"],"description":"How to lift the gate. Present when the gate has an unlock.","uniqueKey":"error.unlock","typeLabel":"object"},"retry_after_seconds":{"type":"integer","description":"Present on rate gates. Mirrors the Retry-After header.","uniqueKey":"error.retry_after_seconds","typeLabel":"integer"},"details":{"type":"object","properties":{"quote":{"type":"object","description":"The refused price, on a priced refusal: quota_exceeded, spend_limit_exceeded and paid_plan_required.","required":["quarters","rows"],"properties":{"quarters":{"type":"integer","description":"Number of 15-minute blocks in the video, ceiling'd, minimum 1.","isRequired":true,"uniqueKey":"error.details.quote.quarters","typeLabel":"integer"},"rows":{"type":"integer","description":"Credits the whole video uses, in rows: 300 credits per 15-minute block (75 rows; a row is 4 credits).","isRequired":true,"uniqueKey":"error.details.quote.rows","typeLabel":"integer"},"charge":{"type":"object","properties":{"unit":{"type":"string","enum":["rows","credits"],"isRequired":true,"uniqueKey":"error.details.quote.charge.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","isRequired":true,"uniqueKey":"error.details.quote.charge.amount","typeLabel":"number"},"from":{"type":"string","enum":["included","on_demand","mixed"],"description":"Where the charge would come from at the current balance.","isRequired":true,"uniqueKey":"error.details.quote.charge.from","typeLabel":"enum\u003cstring>"}},"required":["unit","amount","from"],"description":"What the request would charge at the current balance. Absent when no current price could be read.","uniqueKey":"error.details.quote.charge","typeLabel":"object"},"max_on_demand_cents":{"type":"integer","description":"The on-demand usage, in whole cents, this request needs beyond the plan's credits at the current balance.","uniqueKey":"error.details.quote.max_on_demand_cents","typeLabel":"integer"}},"uniqueKey":"error.details.quote","typeLabel":"object"},"limit":{"oneOf":[{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["plan_credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The plan credits a month. Carried by quota_exceeded when on-demand usage is off.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in credits.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.0","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["on_demand_budget"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The on-demand budget a month, in credits ($0.002 a credit). Carried by quota_exceeded and spend_limit_exceeded when on-demand usage is on.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in credits.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.1","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["member_on_demand"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["cents"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The monthly on-demand limit an admin set for the person the key or token acts for, in US cents. Carried by member_limit.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in cents.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.2","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["premium_hours"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["hours"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The Premium transcript hours Ultra plan credits cover a month. Carried by fair_use_cap.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in hours.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.3","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","delay_days","served_through"],"properties":{"delay_days":{"type":"integer","description":"Days after publication before this plan reads a video.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.delay_days","typeLabel":"integer"},"served_through":{"type":"string","description":"YYYY-MM-DD (UTC). Results on this plan stop at this publish date; media published after it is not read.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.served_through","typeLabel":"string"},"kind":{"type":"string","enum":["freshness"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.details.limit.oneOf.4","typeLabel":"object"}],"uniqueKey":"error.details.limit","typeLabel":"object"},"url":{"type":"string","description":"On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page.","uniqueKey":"error.details.url","typeLabel":"string"}},"description":"Machine data the refusal carries for you to act on. Present only on the codes that name a field here.","uniqueKey":"error.details","typeLabel":"object"}},"required":["type","code","message","doc_url","request_id"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"x-arcmira-codes":[{"code":"alert_not_found","type":"not_found","description":"A referenced alert does not exist or belongs to another account."},{"code":"api_not_enabled","type":"permission_error","gate":"plan","description":"The plan does not include API access. unlock.url names the plan that does."},{"code":"appearances_person_only","type":"invalid_request_error","description":"Appearance filtering applies to person entities only."},{"code":"channel_not_found","type":"not_found","description":"No channel matches the id or slug."},{"code":"email_verification_required","type":"permission_error","description":"Verify the account email before adding recipients."},{"code":"entity_not_found","type":"not_found","description":"No entity matches the id, slug, or name."},{"code":"fair_use_cap","type":"quota_exceeded","description":"A fair-use cap on the plan's credits is reached for this use this month, and the account has no granted or on-demand credits to use instead. Nothing was charged. details.limit carries the cap and what is used. An admin turns on on-demand usage or raises its budget, or the cap resets with the month."},{"code":"feature_not_available","type":"permission_error","gate":"plan","description":"The plan does not include this feature. unlock.url names the plan that does."},{"code":"feedback_not_found","type":"not_found","description":"No feedback submission with this id for this account."},{"code":"filter_requires_paid","type":"permission_error","gate":"plan","description":"The parameter in param needs a paid plan; omit it for the free answer."},{"code":"forbidden","type":"permission_error","description":"The caller may not perform this operation on this resource."},{"code":"freshness_requires_paid","type":"permission_error","gate":"freshness","description":"The date window starts after results on this plan stop. details.limit carries delay_days and served_through; move the window to served_through or earlier, or open unlock.url for the plan that reads newer media."},{"code":"id_required","type":"invalid_request_error","description":"A filter in param received a name where it takes an id (ent_{n} or UC...). Resolve the name first with GET /v1/entities/resolve and pass best.id or best.youtube_channel_id."},{"code":"idempotency_conflict","type":"conflict_error","description":"The Idempotency-Key was sent before with a different request body. Send a new key for a new request."},{"code":"idempotency_result_expired","type":"conflict_error","description":"The original one-time signing secret is no longer valid. Use a new request key for a new rotation."},{"code":"insufficient_scope","type":"permission_error","gate":"key","description":"The key lacks the scope this route needs."},{"code":"invalid_api_key","type":"authentication_error","gate":"key","description":"No usable credential. reason says whether none was sent, it is unknown, or it was revoked."},{"code":"invalid_body","type":"invalid_request_error","description":"The JSON body failed validation; message names the field."},{"code":"invalid_cursor","type":"invalid_request_error","description":"The continuation is invalid, expired, or belongs to another query. Restart without cursor."},{"code":"invalid_email_recipients","type":"invalid_request_error","description":"Email recipients failed validation."},{"code":"invalid_feedback_request","type":"invalid_request_error","description":"The feedback query or corrections do not fit the feedback type."},{"code":"invalid_idempotency_key","type":"invalid_request_error","description":"Idempotency-Key must be 1 to 255 printable ASCII characters (0x21 to 0x7E). param is Idempotency-Key."},{"code":"invalid_query","type":"invalid_request_error","description":"A query parameter failed validation; message names it."},{"code":"invalid_slack_integration","type":"invalid_request_error","description":"Choose an active Slack integration owned by the account."},{"code":"invalid_video_id","type":"invalid_request_error","description":"The video_id path segment is not an 11-character YouTube id."},{"code":"job_requires_account","type":"authentication_error","gate":"key","description":"Transcription jobs belong to an account; sign up for a key."},{"code":"member_limit","type":"quota_exceeded","gate":"rows","description":"The account's included credits are used up and the person the key or token acts for has reached their monthly on-demand limit in it. Nothing was charged, and there is no unlock. details.limit carries the limit and what is used, in US cents. An admin raises the limit on the Team page (https://arcmira.com/dashboard/members), or it resets with the month."},{"code":"monitor_creation_unavailable","type":"server_error","description":"Monitor creation is temporarily unavailable. Retry the same request with the same key."},{"code":"monitor_creation_unconfirmed","type":"server_error","description":"Monitor creation could not be confirmed. Retry the same request with the same key."},{"code":"monitor_not_found","type":"not_found","description":"No monitor with this id on the account."},{"code":"not_found","type":"not_found","description":"No route or resource at this path."},{"code":"on_demand_paused","type":"quota_exceeded","gate":"rows","description":"The account's included credits are used up and its on-demand usage is paused, because a payment for an on-demand invoice was declined. Nothing was charged, and there is no unlock. On-demand resumes once the invoice is paid. An admin updates the card on the Billing \u0026 Invoices page (https://arcmira.com/dashboard/billing), which retries the payment."},{"code":"owner_only","type":"permission_error","description":"Only an admin of the account may do this. Everyone in a team can create, edit, pause, delete and restore monitors."},{"code":"owner_plan_required","type":"permission_error","description":"A team account follows its owner's plan, which does not include this. An admin can upgrade; a member's own plan does not apply."},{"code":"pagination_gated","type":"permission_error","gate":"pagination","description":"Results past the free window need a paid plan."},{"code":"paid_plan_required","type":"permission_error","description":"The operation needs a paid plan. unlock.url names the plan that does."},{"code":"premium_transcript_requested","type":"permission_error","gate":"exposure_law","description":"Premium transcript text needs a plan with Premium transcripts."},{"code":"quota_exceeded","type":"quota_exceeded","gate":"rows","description":"The read needs more credits than the plan, then the on-demand budget, have left. Nothing was charged. details.limit carries the plan credits or the on-demand budget the read met, with what is used and when it resets. unlock.url upgrades the plan or raises the budget."},{"code":"rate_limited","type":"rate_limit_error","gate":"rate","description":"Too many requests in the window. Retry-After carries the wait."},{"code":"recipient_upgrade_required","type":"permission_error","description":"The requested email recipient count exceeds the plan allowance."},{"code":"recommendations_not_enabled","type":"permission_error","gate":"plan","description":"Commercial data needs a Pro+ plan."},{"code":"resource_conflict","type":"conflict_error","description":"The operation conflicts with existing resource state."},{"code":"scope_too_broad","type":"invalid_request_error","description":"The requested exact video scope exceeds the search filename cap; narrow by channel or date."},{"code":"search_unavailable","type":"server_error","description":"Transcript search is unavailable (HTTP 503). Retry-After carries the wait."},{"code":"server_error","type":"server_error","description":"Unexpected failure. Retry with backoff and quote request_id if it persists."},{"code":"service_unavailable","type":"server_error","description":"The database was briefly overloaded or restarting (HTTP 503). Retry-After carries the wait; send the same request again."},{"code":"signup_code_invalid","type":"invalid_request_error","description":"The signup code is wrong, expired, or spent; message names the attempts left."},{"code":"signup_send_limited","type":"rate_limit_error","description":"Verification code sends hit a per-address, per-IP, or per-client cap. Retry-After carries the wait."},{"code":"spend_limit_exceeded","type":"quota_exceeded","description":"The request would take on-demand usage past the account's on-demand budget this month. Nothing was charged. details.limit carries the budget and what is used. Raise the budget on the Spending page or wait for the month to reset; then read again, or send a POST /v1/transcriptions request again with a new Idempotency-Key."},{"code":"team_id_retired","type":"invalid_request_error","description":"team_id is retired: a monitor belongs to the account the key acts in. Omit team_id or send null."},{"code":"terms_acceptance_required","type":"permission_error","description":"The person the key or token acts for has not accepted the updated Terms of Service. details.url is the page where they accept; the key or token works again as soon as they do."},{"code":"terms_updated","type":"permission_error","description":"The Terms of Service changed since the person the key or token acts for last accepted them. This call was not run. Continuing to use the API accepts the updated terms, so the same call succeeds when sent again. details.url is the terms page. Sent once per person."},{"code":"tracker_create_retired","type":"invalid_request_error","description":"POST /v1/trackers is retired (HTTP 410): a tracker lives inside a monitor. Follow an entity id or an exact name with POST /v1/monitors/{id}/entities, which creates the tracker in that monitor."},{"code":"tracker_delivery_retired","type":"invalid_request_error","description":"Trackers have no delivery of their own: a tracker alerts through its monitor. Omit notify_email, notify_webhook, notify_slack, webhook_url, slack_channel_id and slack_integration_id, or send the value that means the monitor's delivery (true for notify_email, false or null for the rest), and set delivery with PATCH /v1/monitors/{id}. param names the field."},{"code":"tracker_not_found","type":"not_found","description":"No tracker with this id on the account."},{"code":"transcript_fetching","type":"server_error","description":"The caption track is being fetched, or the transcript translated, now (HTTP 503). Retry-After carries the wait; nothing was charged."},{"code":"transcript_requires_account","type":"authentication_error","gate":"key","description":"Full transcripts need an account key; unlock.action sends a signup code."},{"code":"transcript_unavailable","type":"not_found","description":"The video has no transcript in the requested lane or language; languages lists what exists."},{"code":"unknown_entity","type":"invalid_request_error","description":"An explicit entity_ids value does not resolve to a searchable entity."},{"code":"webhook_not_configured","type":"conflict_error","description":"The monitor has no webhook to rotate a secret for. Set webhook_url first."}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request_error","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","reason":"no_credential","param":"\u003cstring>","gate":"rows","resource":{"kind":"media_rows","beyond_row":123},"unlock":{"tier":"\u003cstring>","url":"\u003cstring>","offer":null,"action":{"kind":"\u003cstring>","method":"\u003cstring>","url":"\u003cstring>"}},"retry_after_seconds":123,"details":{"quote":{"quarters":123,"rows":123,"charge":{"unit":"rows","amount":123,"from":"included"},"max_on_demand_cents":123},"limit":{"kind":"plan_credits","unit":"credits","amount":123,"used":123,"resets_at":"\u003cstring>"},"url":"\u003cstring>"}}}}},"exampleType":"generated"}},"exampleType":"generated"},"ad64f91c-08c5-41a8-af89-097a212cca8b":{"description":"Not found","headers":{"X-Request-Id":{"description":"The request id, echoed from an X-Request-Id request header or minted as req_\u003cuuid>. error.request_id carries the same value. Quote it when reporting a problem.","schema":{"type":"string"}},"X-Arcmira-Version":{"description":"The API version that answered. Always v1.","schema":{"type":"string","enum":["v1"]}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request_error","authentication_error","permission_error","quota_exceeded","rate_limit_error","not_found","conflict_error","server_error"],"description":"The error class. It fixes the HTTP status: invalid_request_error 400, authentication_error 401, quota_exceeded 402, permission_error 403, not_found 404, conflict_error 409, rate_limit_error 429, server_error 500. Switch on it for retry and gate handling.","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"The specific condition, stable and snake_case; doc_url anchors on it. x-arcmira-codes on this schema lists every code with its type, gate and meaning. The list is open: new codes may appear inside an existing type, so switch on type and gate first.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"One plain line. Names the fix or the unlock.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"reason":{"type":"string","enum":["no_credential","invalid","revoked"],"description":"Only on invalid_api_key. no_credential: nothing was sent. invalid: a credential was sent and is unknown or malformed. revoked: the key exists and is no longer usable.","uniqueKey":"error.reason","typeLabel":"enum\u003cstring>"},"param":{"type":"string","description":"The query or body parameter the gate refused, when one did.","uniqueKey":"error.param","typeLabel":"string"},"gate":{"type":"string","enum":["rows","key","plan","freshness","exposure_law","rate","pagination"],"description":"Which boundary refused. Present on every gate error; switch on it without parsing the message.","uniqueKey":"error.gate","typeLabel":"enum\u003cstring>"},"resource":{"oneOf":[{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","beyond_row"],"properties":{"kind":{"type":"string","enum":["media_rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"beyond_row":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.0.beyond_row","typeLabel":"integer"}},"uniqueKey":"error.resource.oneOf.0","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","window_days","cutoff"],"properties":{"kind":{"type":"string","enum":["fresh_media"],"isRequired":true,"uniqueKey":"error.resource.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"window_days":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.1.window_days","typeLabel":"integer"},"cutoff":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff","typeLabel":"string | null"}},"uniqueKey":"error.resource.oneOf.1","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","section","beyond_row"],"properties":{"kind":{"type":"string","enum":["sidebar_rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"section":{"type":"string","enum":["topics","entities"],"isRequired":true,"uniqueKey":"error.resource.oneOf.2.section","typeLabel":"enum\u003cstring>"},"beyond_row":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.2.beyond_row","typeLabel":"integer"}},"uniqueKey":"error.resource.oneOf.2","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["counts"],"isRequired":true,"uniqueKey":"error.resource.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.3","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["chart"],"isRequired":true,"uniqueKey":"error.resource.oneOf.4.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.4","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","param"],"properties":{"kind":{"type":"string","enum":["pagination"],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"param":{"oneOf":[{"type":"string","enum":["offset","cursor",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["offset","cursor",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"error.resource.oneOf.5","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["premium_transcript"],"isRequired":true,"uniqueKey":"error.resource.oneOf.6.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.6","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","param"],"properties":{"kind":{"type":"string","enum":["filter"],"isRequired":true,"uniqueKey":"error.resource.oneOf.7.kind","typeLabel":"enum\u003cstring>"},"param":{"type":"string","isRequired":true,"uniqueKey":"error.resource.oneOf.7.param","typeLabel":"string"}},"uniqueKey":"error.resource.oneOf.7","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","what"],"properties":{"kind":{"type":"string","enum":["commercial"],"isRequired":true,"uniqueKey":"error.resource.oneOf.8.kind","typeLabel":"enum\u003cstring>"},"what":{"type":"string","enum":["sponsors","recommendations","mention_details","community_review","paid_split"],"isRequired":true,"uniqueKey":"error.resource.oneOf.8.what","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.8","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","feature"],"properties":{"kind":{"type":"string","enum":["feature"],"isRequired":true,"uniqueKey":"error.resource.oneOf.9.kind","typeLabel":"enum\u003cstring>"},"feature":{"type":"string","enum":["api","export"],"isRequired":true,"uniqueKey":"error.resource.oneOf.9.feature","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.9","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","requested","remaining"],"properties":{"kind":{"type":"string","enum":["rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.kind","typeLabel":"enum\u003cstring>"},"requested":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested","typeLabel":"integer | null"},"remaining":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining","typeLabel":"integer | null"}},"uniqueKey":"error.resource.oneOf.10","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","scope"],"properties":{"kind":{"type":"string","enum":["key"],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.kind","typeLabel":"enum\u003cstring>"},"scope":{"oneOf":[{"type":"string","enum":["read","monitors:write","trackers:write","recommendations:read",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["read","monitors:write","trackers:write","recommendations:read",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"error.resource.oneOf.11","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["requests"],"isRequired":true,"uniqueKey":"error.resource.oneOf.12.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.12","typeLabel":"object"}],"uniqueKey":"error.resource","typeLabel":"object"},"unlock":{"type":"object","properties":{"tier":{"type":"string","description":"The plan that lifts the gate.","isRequired":true,"uniqueKey":"error.unlock.tier","typeLabel":"string"},"url":{"type":"string","description":"Absolute upgrade or sign-up URL carrying its ?src= attribution. Use it verbatim.","isRequired":true,"uniqueKey":"error.unlock.url","typeLabel":"string"},"offer":{"type":"null","description":"Reserved for the agent-discount offer. Always null today.","isRequired":true,"uniqueKey":"error.unlock.offer","typeLabel":"null"},"action":{"type":"object","properties":{"kind":{"type":"string","description":"What the call does. send_signup_code sends a verification code to an address for an account key.","isRequired":true,"uniqueKey":"error.unlock.action.kind","typeLabel":"string"},"method":{"type":"string","description":"HTTP method to use.","isRequired":true,"uniqueKey":"error.unlock.action.method","typeLabel":"string"},"url":{"type":"string","description":"Absolute endpoint carrying its ?src= attribution. Call it verbatim.","isRequired":true,"uniqueKey":"error.unlock.action.url","typeLabel":"string"}},"required":["kind","method","url"],"description":"The request that lifts the gate with no human, present when the caller can fix this itself. A key gate carries the signup send here; a plan or quota gate has no action and its url is a page a person opens.","uniqueKey":"error.unlock.action","typeLabel":"object"}},"required":["tier","url","offer"],"description":"How to lift the gate. Present when the gate has an unlock.","uniqueKey":"error.unlock","typeLabel":"object"},"retry_after_seconds":{"type":"integer","description":"Present on rate gates. Mirrors the Retry-After header.","uniqueKey":"error.retry_after_seconds","typeLabel":"integer"},"details":{"type":"object","properties":{"quote":{"type":"object","description":"The refused price, on a priced refusal: quota_exceeded, spend_limit_exceeded and paid_plan_required.","required":["quarters","rows"],"properties":{"quarters":{"type":"integer","description":"Number of 15-minute blocks in the video, ceiling'd, minimum 1.","isRequired":true,"uniqueKey":"error.details.quote.quarters","typeLabel":"integer"},"rows":{"type":"integer","description":"Credits the whole video uses, in rows: 300 credits per 15-minute block (75 rows; a row is 4 credits).","isRequired":true,"uniqueKey":"error.details.quote.rows","typeLabel":"integer"},"charge":{"type":"object","properties":{"unit":{"type":"string","enum":["rows","credits"],"isRequired":true,"uniqueKey":"error.details.quote.charge.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","isRequired":true,"uniqueKey":"error.details.quote.charge.amount","typeLabel":"number"},"from":{"type":"string","enum":["included","on_demand","mixed"],"description":"Where the charge would come from at the current balance.","isRequired":true,"uniqueKey":"error.details.quote.charge.from","typeLabel":"enum\u003cstring>"}},"required":["unit","amount","from"],"description":"What the request would charge at the current balance. Absent when no current price could be read.","uniqueKey":"error.details.quote.charge","typeLabel":"object"},"max_on_demand_cents":{"type":"integer","description":"The on-demand usage, in whole cents, this request needs beyond the plan's credits at the current balance.","uniqueKey":"error.details.quote.max_on_demand_cents","typeLabel":"integer"}},"uniqueKey":"error.details.quote","typeLabel":"object"},"limit":{"oneOf":[{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["plan_credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The plan credits a month. Carried by quota_exceeded when on-demand usage is off.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in credits.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.0","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["on_demand_budget"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The on-demand budget a month, in credits ($0.002 a credit). Carried by quota_exceeded and spend_limit_exceeded when on-demand usage is on.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in credits.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.1","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["member_on_demand"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["cents"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The monthly on-demand limit an admin set for the person the key or token acts for, in US cents. Carried by member_limit.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in cents.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.2","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["premium_hours"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["hours"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The Premium transcript hours Ultra plan credits cover a month. Carried by fair_use_cap.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in hours.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.3","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","delay_days","served_through"],"properties":{"delay_days":{"type":"integer","description":"Days after publication before this plan reads a video.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.delay_days","typeLabel":"integer"},"served_through":{"type":"string","description":"YYYY-MM-DD (UTC). Results on this plan stop at this publish date; media published after it is not read.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.served_through","typeLabel":"string"},"kind":{"type":"string","enum":["freshness"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.details.limit.oneOf.4","typeLabel":"object"}],"uniqueKey":"error.details.limit","typeLabel":"object"},"url":{"type":"string","description":"On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page.","uniqueKey":"error.details.url","typeLabel":"string"}},"description":"Machine data the refusal carries for you to act on. Present only on the codes that name a field here.","uniqueKey":"error.details","typeLabel":"object"}},"required":["type","code","message","doc_url","request_id"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"x-arcmira-codes":[{"code":"alert_not_found","type":"not_found","description":"A referenced alert does not exist or belongs to another account."},{"code":"api_not_enabled","type":"permission_error","gate":"plan","description":"The plan does not include API access. unlock.url names the plan that does."},{"code":"appearances_person_only","type":"invalid_request_error","description":"Appearance filtering applies to person entities only."},{"code":"channel_not_found","type":"not_found","description":"No channel matches the id or slug."},{"code":"email_verification_required","type":"permission_error","description":"Verify the account email before adding recipients."},{"code":"entity_not_found","type":"not_found","description":"No entity matches the id, slug, or name."},{"code":"fair_use_cap","type":"quota_exceeded","description":"A fair-use cap on the plan's credits is reached for this use this month, and the account has no granted or on-demand credits to use instead. Nothing was charged. details.limit carries the cap and what is used. An admin turns on on-demand usage or raises its budget, or the cap resets with the month."},{"code":"feature_not_available","type":"permission_error","gate":"plan","description":"The plan does not include this feature. unlock.url names the plan that does."},{"code":"feedback_not_found","type":"not_found","description":"No feedback submission with this id for this account."},{"code":"filter_requires_paid","type":"permission_error","gate":"plan","description":"The parameter in param needs a paid plan; omit it for the free answer."},{"code":"forbidden","type":"permission_error","description":"The caller may not perform this operation on this resource."},{"code":"freshness_requires_paid","type":"permission_error","gate":"freshness","description":"The date window starts after results on this plan stop. details.limit carries delay_days and served_through; move the window to served_through or earlier, or open unlock.url for the plan that reads newer media."},{"code":"id_required","type":"invalid_request_error","description":"A filter in param received a name where it takes an id (ent_{n} or UC...). Resolve the name first with GET /v1/entities/resolve and pass best.id or best.youtube_channel_id."},{"code":"idempotency_conflict","type":"conflict_error","description":"The Idempotency-Key was sent before with a different request body. Send a new key for a new request."},{"code":"idempotency_result_expired","type":"conflict_error","description":"The original one-time signing secret is no longer valid. Use a new request key for a new rotation."},{"code":"insufficient_scope","type":"permission_error","gate":"key","description":"The key lacks the scope this route needs."},{"code":"invalid_api_key","type":"authentication_error","gate":"key","description":"No usable credential. reason says whether none was sent, it is unknown, or it was revoked."},{"code":"invalid_body","type":"invalid_request_error","description":"The JSON body failed validation; message names the field."},{"code":"invalid_cursor","type":"invalid_request_error","description":"The continuation is invalid, expired, or belongs to another query. Restart without cursor."},{"code":"invalid_email_recipients","type":"invalid_request_error","description":"Email recipients failed validation."},{"code":"invalid_feedback_request","type":"invalid_request_error","description":"The feedback query or corrections do not fit the feedback type."},{"code":"invalid_idempotency_key","type":"invalid_request_error","description":"Idempotency-Key must be 1 to 255 printable ASCII characters (0x21 to 0x7E). param is Idempotency-Key."},{"code":"invalid_query","type":"invalid_request_error","description":"A query parameter failed validation; message names it."},{"code":"invalid_slack_integration","type":"invalid_request_error","description":"Choose an active Slack integration owned by the account."},{"code":"invalid_video_id","type":"invalid_request_error","description":"The video_id path segment is not an 11-character YouTube id."},{"code":"job_requires_account","type":"authentication_error","gate":"key","description":"Transcription jobs belong to an account; sign up for a key."},{"code":"member_limit","type":"quota_exceeded","gate":"rows","description":"The account's included credits are used up and the person the key or token acts for has reached their monthly on-demand limit in it. Nothing was charged, and there is no unlock. details.limit carries the limit and what is used, in US cents. An admin raises the limit on the Team page (https://arcmira.com/dashboard/members), or it resets with the month."},{"code":"monitor_creation_unavailable","type":"server_error","description":"Monitor creation is temporarily unavailable. Retry the same request with the same key."},{"code":"monitor_creation_unconfirmed","type":"server_error","description":"Monitor creation could not be confirmed. Retry the same request with the same key."},{"code":"monitor_not_found","type":"not_found","description":"No monitor with this id on the account."},{"code":"not_found","type":"not_found","description":"No route or resource at this path."},{"code":"on_demand_paused","type":"quota_exceeded","gate":"rows","description":"The account's included credits are used up and its on-demand usage is paused, because a payment for an on-demand invoice was declined. Nothing was charged, and there is no unlock. On-demand resumes once the invoice is paid. An admin updates the card on the Billing \u0026 Invoices page (https://arcmira.com/dashboard/billing), which retries the payment."},{"code":"owner_only","type":"permission_error","description":"Only an admin of the account may do this. Everyone in a team can create, edit, pause, delete and restore monitors."},{"code":"owner_plan_required","type":"permission_error","description":"A team account follows its owner's plan, which does not include this. An admin can upgrade; a member's own plan does not apply."},{"code":"pagination_gated","type":"permission_error","gate":"pagination","description":"Results past the free window need a paid plan."},{"code":"paid_plan_required","type":"permission_error","description":"The operation needs a paid plan. unlock.url names the plan that does."},{"code":"premium_transcript_requested","type":"permission_error","gate":"exposure_law","description":"Premium transcript text needs a plan with Premium transcripts."},{"code":"quota_exceeded","type":"quota_exceeded","gate":"rows","description":"The read needs more credits than the plan, then the on-demand budget, have left. Nothing was charged. details.limit carries the plan credits or the on-demand budget the read met, with what is used and when it resets. unlock.url upgrades the plan or raises the budget."},{"code":"rate_limited","type":"rate_limit_error","gate":"rate","description":"Too many requests in the window. Retry-After carries the wait."},{"code":"recipient_upgrade_required","type":"permission_error","description":"The requested email recipient count exceeds the plan allowance."},{"code":"recommendations_not_enabled","type":"permission_error","gate":"plan","description":"Commercial data needs a Pro+ plan."},{"code":"resource_conflict","type":"conflict_error","description":"The operation conflicts with existing resource state."},{"code":"scope_too_broad","type":"invalid_request_error","description":"The requested exact video scope exceeds the search filename cap; narrow by channel or date."},{"code":"search_unavailable","type":"server_error","description":"Transcript search is unavailable (HTTP 503). Retry-After carries the wait."},{"code":"server_error","type":"server_error","description":"Unexpected failure. Retry with backoff and quote request_id if it persists."},{"code":"service_unavailable","type":"server_error","description":"The database was briefly overloaded or restarting (HTTP 503). Retry-After carries the wait; send the same request again."},{"code":"signup_code_invalid","type":"invalid_request_error","description":"The signup code is wrong, expired, or spent; message names the attempts left."},{"code":"signup_send_limited","type":"rate_limit_error","description":"Verification code sends hit a per-address, per-IP, or per-client cap. Retry-After carries the wait."},{"code":"spend_limit_exceeded","type":"quota_exceeded","description":"The request would take on-demand usage past the account's on-demand budget this month. Nothing was charged. details.limit carries the budget and what is used. Raise the budget on the Spending page or wait for the month to reset; then read again, or send a POST /v1/transcriptions request again with a new Idempotency-Key."},{"code":"team_id_retired","type":"invalid_request_error","description":"team_id is retired: a monitor belongs to the account the key acts in. Omit team_id or send null."},{"code":"terms_acceptance_required","type":"permission_error","description":"The person the key or token acts for has not accepted the updated Terms of Service. details.url is the page where they accept; the key or token works again as soon as they do."},{"code":"terms_updated","type":"permission_error","description":"The Terms of Service changed since the person the key or token acts for last accepted them. This call was not run. Continuing to use the API accepts the updated terms, so the same call succeeds when sent again. details.url is the terms page. Sent once per person."},{"code":"tracker_create_retired","type":"invalid_request_error","description":"POST /v1/trackers is retired (HTTP 410): a tracker lives inside a monitor. Follow an entity id or an exact name with POST /v1/monitors/{id}/entities, which creates the tracker in that monitor."},{"code":"tracker_delivery_retired","type":"invalid_request_error","description":"Trackers have no delivery of their own: a tracker alerts through its monitor. Omit notify_email, notify_webhook, notify_slack, webhook_url, slack_channel_id and slack_integration_id, or send the value that means the monitor's delivery (true for notify_email, false or null for the rest), and set delivery with PATCH /v1/monitors/{id}. param names the field."},{"code":"tracker_not_found","type":"not_found","description":"No tracker with this id on the account."},{"code":"transcript_fetching","type":"server_error","description":"The caption track is being fetched, or the transcript translated, now (HTTP 503). Retry-After carries the wait; nothing was charged."},{"code":"transcript_requires_account","type":"authentication_error","gate":"key","description":"Full transcripts need an account key; unlock.action sends a signup code."},{"code":"transcript_unavailable","type":"not_found","description":"The video has no transcript in the requested lane or language; languages lists what exists."},{"code":"unknown_entity","type":"invalid_request_error","description":"An explicit entity_ids value does not resolve to a searchable entity."},{"code":"webhook_not_configured","type":"conflict_error","description":"The monitor has no webhook to rotate a secret for. Set webhook_url first."}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request_error","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","reason":"no_credential","param":"\u003cstring>","gate":"rows","resource":{"kind":"media_rows","beyond_row":123},"unlock":{"tier":"\u003cstring>","url":"\u003cstring>","offer":null,"action":{"kind":"\u003cstring>","method":"\u003cstring>","url":"\u003cstring>"}},"retry_after_seconds":123,"details":{"quote":{"quarters":123,"rows":123,"charge":{"unit":"rows","amount":123,"from":"included"},"max_on_demand_cents":123},"limit":{"kind":"plan_credits","unit":"credits","amount":123,"used":123,"resets_at":"\u003cstring>"},"url":"\u003cstring>"}}}}},"exampleType":"generated"}},"exampleType":"generated"},"d1c03b71-2b98-4e93-9822-f5602c3f9d31":{"description":"Rate limit exceeded. Retry-After carries the wait.","headers":{"X-Request-Id":{"description":"The request id, echoed from an X-Request-Id request header or minted as req_\u003cuuid>. error.request_id carries the same value. Quote it when reporting a problem.","schema":{"type":"string"}},"X-Arcmira-Version":{"description":"The API version that answered. Always v1.","schema":{"type":"string","enum":["v1"]}},"RateLimit-Limit":{"description":"Requests allowed per 60-second window for this credential, as GET /v1/me rate_limit reports.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"An estimate of the requests left in the current window. Limits are counted at each Cloudflare location, so it can read high; a 429 is the final word.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Unix time in seconds when the current window ends.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying. error.retry_after_seconds carries the same value on an error.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request_error","authentication_error","permission_error","quota_exceeded","rate_limit_error","not_found","conflict_error","server_error"],"description":"The error class. It fixes the HTTP status: invalid_request_error 400, authentication_error 401, quota_exceeded 402, permission_error 403, not_found 404, conflict_error 409, rate_limit_error 429, server_error 500. Switch on it for retry and gate handling.","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"The specific condition, stable and snake_case; doc_url anchors on it. x-arcmira-codes on this schema lists every code with its type, gate and meaning. The list is open: new codes may appear inside an existing type, so switch on type and gate first.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"One plain line. Names the fix or the unlock.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"reason":{"type":"string","enum":["no_credential","invalid","revoked"],"description":"Only on invalid_api_key. no_credential: nothing was sent. invalid: a credential was sent and is unknown or malformed. revoked: the key exists and is no longer usable.","uniqueKey":"error.reason","typeLabel":"enum\u003cstring>"},"param":{"type":"string","description":"The query or body parameter the gate refused, when one did.","uniqueKey":"error.param","typeLabel":"string"},"gate":{"type":"string","enum":["rows","key","plan","freshness","exposure_law","rate","pagination"],"description":"Which boundary refused. Present on every gate error; switch on it without parsing the message.","uniqueKey":"error.gate","typeLabel":"enum\u003cstring>"},"resource":{"oneOf":[{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","beyond_row"],"properties":{"kind":{"type":"string","enum":["media_rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"beyond_row":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.0.beyond_row","typeLabel":"integer"}},"uniqueKey":"error.resource.oneOf.0","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","window_days","cutoff"],"properties":{"kind":{"type":"string","enum":["fresh_media"],"isRequired":true,"uniqueKey":"error.resource.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"window_days":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.1.window_days","typeLabel":"integer"},"cutoff":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff","typeLabel":"string | null"}},"uniqueKey":"error.resource.oneOf.1","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","section","beyond_row"],"properties":{"kind":{"type":"string","enum":["sidebar_rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"section":{"type":"string","enum":["topics","entities"],"isRequired":true,"uniqueKey":"error.resource.oneOf.2.section","typeLabel":"enum\u003cstring>"},"beyond_row":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.2.beyond_row","typeLabel":"integer"}},"uniqueKey":"error.resource.oneOf.2","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["counts"],"isRequired":true,"uniqueKey":"error.resource.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.3","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["chart"],"isRequired":true,"uniqueKey":"error.resource.oneOf.4.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.4","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","param"],"properties":{"kind":{"type":"string","enum":["pagination"],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"param":{"oneOf":[{"type":"string","enum":["offset","cursor",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["offset","cursor",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"error.resource.oneOf.5","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["premium_transcript"],"isRequired":true,"uniqueKey":"error.resource.oneOf.6.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.6","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","param"],"properties":{"kind":{"type":"string","enum":["filter"],"isRequired":true,"uniqueKey":"error.resource.oneOf.7.kind","typeLabel":"enum\u003cstring>"},"param":{"type":"string","isRequired":true,"uniqueKey":"error.resource.oneOf.7.param","typeLabel":"string"}},"uniqueKey":"error.resource.oneOf.7","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","what"],"properties":{"kind":{"type":"string","enum":["commercial"],"isRequired":true,"uniqueKey":"error.resource.oneOf.8.kind","typeLabel":"enum\u003cstring>"},"what":{"type":"string","enum":["sponsors","recommendations","mention_details","community_review","paid_split"],"isRequired":true,"uniqueKey":"error.resource.oneOf.8.what","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.8","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","feature"],"properties":{"kind":{"type":"string","enum":["feature"],"isRequired":true,"uniqueKey":"error.resource.oneOf.9.kind","typeLabel":"enum\u003cstring>"},"feature":{"type":"string","enum":["api","export"],"isRequired":true,"uniqueKey":"error.resource.oneOf.9.feature","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.9","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","requested","remaining"],"properties":{"kind":{"type":"string","enum":["rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.kind","typeLabel":"enum\u003cstring>"},"requested":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested","typeLabel":"integer | null"},"remaining":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining","typeLabel":"integer | null"}},"uniqueKey":"error.resource.oneOf.10","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","scope"],"properties":{"kind":{"type":"string","enum":["key"],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.kind","typeLabel":"enum\u003cstring>"},"scope":{"oneOf":[{"type":"string","enum":["read","monitors:write","trackers:write","recommendations:read",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["read","monitors:write","trackers:write","recommendations:read",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"error.resource.oneOf.11","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["requests"],"isRequired":true,"uniqueKey":"error.resource.oneOf.12.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.12","typeLabel":"object"}],"uniqueKey":"error.resource","typeLabel":"object"},"unlock":{"type":"object","properties":{"tier":{"type":"string","description":"The plan that lifts the gate.","isRequired":true,"uniqueKey":"error.unlock.tier","typeLabel":"string"},"url":{"type":"string","description":"Absolute upgrade or sign-up URL carrying its ?src= attribution. Use it verbatim.","isRequired":true,"uniqueKey":"error.unlock.url","typeLabel":"string"},"offer":{"type":"null","description":"Reserved for the agent-discount offer. Always null today.","isRequired":true,"uniqueKey":"error.unlock.offer","typeLabel":"null"},"action":{"type":"object","properties":{"kind":{"type":"string","description":"What the call does. send_signup_code sends a verification code to an address for an account key.","isRequired":true,"uniqueKey":"error.unlock.action.kind","typeLabel":"string"},"method":{"type":"string","description":"HTTP method to use.","isRequired":true,"uniqueKey":"error.unlock.action.method","typeLabel":"string"},"url":{"type":"string","description":"Absolute endpoint carrying its ?src= attribution. Call it verbatim.","isRequired":true,"uniqueKey":"error.unlock.action.url","typeLabel":"string"}},"required":["kind","method","url"],"description":"The request that lifts the gate with no human, present when the caller can fix this itself. A key gate carries the signup send here; a plan or quota gate has no action and its url is a page a person opens.","uniqueKey":"error.unlock.action","typeLabel":"object"}},"required":["tier","url","offer"],"description":"How to lift the gate. Present when the gate has an unlock.","uniqueKey":"error.unlock","typeLabel":"object"},"retry_after_seconds":{"type":"integer","description":"Present on rate gates. Mirrors the Retry-After header.","uniqueKey":"error.retry_after_seconds","typeLabel":"integer"},"details":{"type":"object","properties":{"quote":{"type":"object","description":"The refused price, on a priced refusal: quota_exceeded, spend_limit_exceeded and paid_plan_required.","required":["quarters","rows"],"properties":{"quarters":{"type":"integer","description":"Number of 15-minute blocks in the video, ceiling'd, minimum 1.","isRequired":true,"uniqueKey":"error.details.quote.quarters","typeLabel":"integer"},"rows":{"type":"integer","description":"Credits the whole video uses, in rows: 300 credits per 15-minute block (75 rows; a row is 4 credits).","isRequired":true,"uniqueKey":"error.details.quote.rows","typeLabel":"integer"},"charge":{"type":"object","properties":{"unit":{"type":"string","enum":["rows","credits"],"isRequired":true,"uniqueKey":"error.details.quote.charge.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","isRequired":true,"uniqueKey":"error.details.quote.charge.amount","typeLabel":"number"},"from":{"type":"string","enum":["included","on_demand","mixed"],"description":"Where the charge would come from at the current balance.","isRequired":true,"uniqueKey":"error.details.quote.charge.from","typeLabel":"enum\u003cstring>"}},"required":["unit","amount","from"],"description":"What the request would charge at the current balance. Absent when no current price could be read.","uniqueKey":"error.details.quote.charge","typeLabel":"object"},"max_on_demand_cents":{"type":"integer","description":"The on-demand usage, in whole cents, this request needs beyond the plan's credits at the current balance.","uniqueKey":"error.details.quote.max_on_demand_cents","typeLabel":"integer"}},"uniqueKey":"error.details.quote","typeLabel":"object"},"limit":{"oneOf":[{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["plan_credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The plan credits a month. Carried by quota_exceeded when on-demand usage is off.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in credits.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.0","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["on_demand_budget"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The on-demand budget a month, in credits ($0.002 a credit). Carried by quota_exceeded and spend_limit_exceeded when on-demand usage is on.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in credits.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.1","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["member_on_demand"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["cents"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The monthly on-demand limit an admin set for the person the key or token acts for, in US cents. Carried by member_limit.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in cents.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.2","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["premium_hours"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["hours"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The Premium transcript hours Ultra plan credits cover a month. Carried by fair_use_cap.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in hours.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.3","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","delay_days","served_through"],"properties":{"delay_days":{"type":"integer","description":"Days after publication before this plan reads a video.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.delay_days","typeLabel":"integer"},"served_through":{"type":"string","description":"YYYY-MM-DD (UTC). Results on this plan stop at this publish date; media published after it is not read.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.served_through","typeLabel":"string"},"kind":{"type":"string","enum":["freshness"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.details.limit.oneOf.4","typeLabel":"object"}],"uniqueKey":"error.details.limit","typeLabel":"object"},"url":{"type":"string","description":"On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page.","uniqueKey":"error.details.url","typeLabel":"string"}},"description":"Machine data the refusal carries for you to act on. Present only on the codes that name a field here.","uniqueKey":"error.details","typeLabel":"object"}},"required":["type","code","message","doc_url","request_id"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"x-arcmira-codes":[{"code":"alert_not_found","type":"not_found","description":"A referenced alert does not exist or belongs to another account."},{"code":"api_not_enabled","type":"permission_error","gate":"plan","description":"The plan does not include API access. unlock.url names the plan that does."},{"code":"appearances_person_only","type":"invalid_request_error","description":"Appearance filtering applies to person entities only."},{"code":"channel_not_found","type":"not_found","description":"No channel matches the id or slug."},{"code":"email_verification_required","type":"permission_error","description":"Verify the account email before adding recipients."},{"code":"entity_not_found","type":"not_found","description":"No entity matches the id, slug, or name."},{"code":"fair_use_cap","type":"quota_exceeded","description":"A fair-use cap on the plan's credits is reached for this use this month, and the account has no granted or on-demand credits to use instead. Nothing was charged. details.limit carries the cap and what is used. An admin turns on on-demand usage or raises its budget, or the cap resets with the month."},{"code":"feature_not_available","type":"permission_error","gate":"plan","description":"The plan does not include this feature. unlock.url names the plan that does."},{"code":"feedback_not_found","type":"not_found","description":"No feedback submission with this id for this account."},{"code":"filter_requires_paid","type":"permission_error","gate":"plan","description":"The parameter in param needs a paid plan; omit it for the free answer."},{"code":"forbidden","type":"permission_error","description":"The caller may not perform this operation on this resource."},{"code":"freshness_requires_paid","type":"permission_error","gate":"freshness","description":"The date window starts after results on this plan stop. details.limit carries delay_days and served_through; move the window to served_through or earlier, or open unlock.url for the plan that reads newer media."},{"code":"id_required","type":"invalid_request_error","description":"A filter in param received a name where it takes an id (ent_{n} or UC...). Resolve the name first with GET /v1/entities/resolve and pass best.id or best.youtube_channel_id."},{"code":"idempotency_conflict","type":"conflict_error","description":"The Idempotency-Key was sent before with a different request body. Send a new key for a new request."},{"code":"idempotency_result_expired","type":"conflict_error","description":"The original one-time signing secret is no longer valid. Use a new request key for a new rotation."},{"code":"insufficient_scope","type":"permission_error","gate":"key","description":"The key lacks the scope this route needs."},{"code":"invalid_api_key","type":"authentication_error","gate":"key","description":"No usable credential. reason says whether none was sent, it is unknown, or it was revoked."},{"code":"invalid_body","type":"invalid_request_error","description":"The JSON body failed validation; message names the field."},{"code":"invalid_cursor","type":"invalid_request_error","description":"The continuation is invalid, expired, or belongs to another query. Restart without cursor."},{"code":"invalid_email_recipients","type":"invalid_request_error","description":"Email recipients failed validation."},{"code":"invalid_feedback_request","type":"invalid_request_error","description":"The feedback query or corrections do not fit the feedback type."},{"code":"invalid_idempotency_key","type":"invalid_request_error","description":"Idempotency-Key must be 1 to 255 printable ASCII characters (0x21 to 0x7E). param is Idempotency-Key."},{"code":"invalid_query","type":"invalid_request_error","description":"A query parameter failed validation; message names it."},{"code":"invalid_slack_integration","type":"invalid_request_error","description":"Choose an active Slack integration owned by the account."},{"code":"invalid_video_id","type":"invalid_request_error","description":"The video_id path segment is not an 11-character YouTube id."},{"code":"job_requires_account","type":"authentication_error","gate":"key","description":"Transcription jobs belong to an account; sign up for a key."},{"code":"member_limit","type":"quota_exceeded","gate":"rows","description":"The account's included credits are used up and the person the key or token acts for has reached their monthly on-demand limit in it. Nothing was charged, and there is no unlock. details.limit carries the limit and what is used, in US cents. An admin raises the limit on the Team page (https://arcmira.com/dashboard/members), or it resets with the month."},{"code":"monitor_creation_unavailable","type":"server_error","description":"Monitor creation is temporarily unavailable. Retry the same request with the same key."},{"code":"monitor_creation_unconfirmed","type":"server_error","description":"Monitor creation could not be confirmed. Retry the same request with the same key."},{"code":"monitor_not_found","type":"not_found","description":"No monitor with this id on the account."},{"code":"not_found","type":"not_found","description":"No route or resource at this path."},{"code":"on_demand_paused","type":"quota_exceeded","gate":"rows","description":"The account's included credits are used up and its on-demand usage is paused, because a payment for an on-demand invoice was declined. Nothing was charged, and there is no unlock. On-demand resumes once the invoice is paid. An admin updates the card on the Billing \u0026 Invoices page (https://arcmira.com/dashboard/billing), which retries the payment."},{"code":"owner_only","type":"permission_error","description":"Only an admin of the account may do this. Everyone in a team can create, edit, pause, delete and restore monitors."},{"code":"owner_plan_required","type":"permission_error","description":"A team account follows its owner's plan, which does not include this. An admin can upgrade; a member's own plan does not apply."},{"code":"pagination_gated","type":"permission_error","gate":"pagination","description":"Results past the free window need a paid plan."},{"code":"paid_plan_required","type":"permission_error","description":"The operation needs a paid plan. unlock.url names the plan that does."},{"code":"premium_transcript_requested","type":"permission_error","gate":"exposure_law","description":"Premium transcript text needs a plan with Premium transcripts."},{"code":"quota_exceeded","type":"quota_exceeded","gate":"rows","description":"The read needs more credits than the plan, then the on-demand budget, have left. Nothing was charged. details.limit carries the plan credits or the on-demand budget the read met, with what is used and when it resets. unlock.url upgrades the plan or raises the budget."},{"code":"rate_limited","type":"rate_limit_error","gate":"rate","description":"Too many requests in the window. Retry-After carries the wait."},{"code":"recipient_upgrade_required","type":"permission_error","description":"The requested email recipient count exceeds the plan allowance."},{"code":"recommendations_not_enabled","type":"permission_error","gate":"plan","description":"Commercial data needs a Pro+ plan."},{"code":"resource_conflict","type":"conflict_error","description":"The operation conflicts with existing resource state."},{"code":"scope_too_broad","type":"invalid_request_error","description":"The requested exact video scope exceeds the search filename cap; narrow by channel or date."},{"code":"search_unavailable","type":"server_error","description":"Transcript search is unavailable (HTTP 503). Retry-After carries the wait."},{"code":"server_error","type":"server_error","description":"Unexpected failure. Retry with backoff and quote request_id if it persists."},{"code":"service_unavailable","type":"server_error","description":"The database was briefly overloaded or restarting (HTTP 503). Retry-After carries the wait; send the same request again."},{"code":"signup_code_invalid","type":"invalid_request_error","description":"The signup code is wrong, expired, or spent; message names the attempts left."},{"code":"signup_send_limited","type":"rate_limit_error","description":"Verification code sends hit a per-address, per-IP, or per-client cap. Retry-After carries the wait."},{"code":"spend_limit_exceeded","type":"quota_exceeded","description":"The request would take on-demand usage past the account's on-demand budget this month. Nothing was charged. details.limit carries the budget and what is used. Raise the budget on the Spending page or wait for the month to reset; then read again, or send a POST /v1/transcriptions request again with a new Idempotency-Key."},{"code":"team_id_retired","type":"invalid_request_error","description":"team_id is retired: a monitor belongs to the account the key acts in. Omit team_id or send null."},{"code":"terms_acceptance_required","type":"permission_error","description":"The person the key or token acts for has not accepted the updated Terms of Service. details.url is the page where they accept; the key or token works again as soon as they do."},{"code":"terms_updated","type":"permission_error","description":"The Terms of Service changed since the person the key or token acts for last accepted them. This call was not run. Continuing to use the API accepts the updated terms, so the same call succeeds when sent again. details.url is the terms page. Sent once per person."},{"code":"tracker_create_retired","type":"invalid_request_error","description":"POST /v1/trackers is retired (HTTP 410): a tracker lives inside a monitor. Follow an entity id or an exact name with POST /v1/monitors/{id}/entities, which creates the tracker in that monitor."},{"code":"tracker_delivery_retired","type":"invalid_request_error","description":"Trackers have no delivery of their own: a tracker alerts through its monitor. Omit notify_email, notify_webhook, notify_slack, webhook_url, slack_channel_id and slack_integration_id, or send the value that means the monitor's delivery (true for notify_email, false or null for the rest), and set delivery with PATCH /v1/monitors/{id}. param names the field."},{"code":"tracker_not_found","type":"not_found","description":"No tracker with this id on the account."},{"code":"transcript_fetching","type":"server_error","description":"The caption track is being fetched, or the transcript translated, now (HTTP 503). Retry-After carries the wait; nothing was charged."},{"code":"transcript_requires_account","type":"authentication_error","gate":"key","description":"Full transcripts need an account key; unlock.action sends a signup code."},{"code":"transcript_unavailable","type":"not_found","description":"The video has no transcript in the requested lane or language; languages lists what exists."},{"code":"unknown_entity","type":"invalid_request_error","description":"An explicit entity_ids value does not resolve to a searchable entity."},{"code":"webhook_not_configured","type":"conflict_error","description":"The monitor has no webhook to rotate a secret for. Set webhook_url first."}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request_error","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","reason":"no_credential","param":"\u003cstring>","gate":"rows","resource":{"kind":"media_rows","beyond_row":123},"unlock":{"tier":"\u003cstring>","url":"\u003cstring>","offer":null,"action":{"kind":"\u003cstring>","method":"\u003cstring>","url":"\u003cstring>"}},"retry_after_seconds":123,"details":{"quote":{"quarters":123,"rows":123,"charge":{"unit":"rows","amount":123,"from":"included"},"max_on_demand_cents":123},"limit":{"kind":"plan_credits","unit":"credits","amount":123,"used":123,"resets_at":"\u003cstring>"},"url":"\u003cstring>"}}}}},"exampleType":"generated"}},"exampleType":"generated"},"abbd4504-caba-46f2-a107-4afc5fd10c1a":{"description":"Server error","headers":{"X-Request-Id":{"description":"The request id, echoed from an X-Request-Id request header or minted as req_\u003cuuid>. error.request_id carries the same value. Quote it when reporting a problem.","schema":{"type":"string"}},"X-Arcmira-Version":{"description":"The API version that answered. Always v1.","schema":{"type":"string","enum":["v1"]}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request_error","authentication_error","permission_error","quota_exceeded","rate_limit_error","not_found","conflict_error","server_error"],"description":"The error class. It fixes the HTTP status: invalid_request_error 400, authentication_error 401, quota_exceeded 402, permission_error 403, not_found 404, conflict_error 409, rate_limit_error 429, server_error 500. Switch on it for retry and gate handling.","isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"The specific condition, stable and snake_case; doc_url anchors on it. x-arcmira-codes on this schema lists every code with its type, gate and meaning. The list is open: new codes may appear inside an existing type, so switch on type and gate first.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"One plain line. Names the fix or the unlock.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","isRequired":true,"uniqueKey":"error.doc_url","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"reason":{"type":"string","enum":["no_credential","invalid","revoked"],"description":"Only on invalid_api_key. no_credential: nothing was sent. invalid: a credential was sent and is unknown or malformed. revoked: the key exists and is no longer usable.","uniqueKey":"error.reason","typeLabel":"enum\u003cstring>"},"param":{"type":"string","description":"The query or body parameter the gate refused, when one did.","uniqueKey":"error.param","typeLabel":"string"},"gate":{"type":"string","enum":["rows","key","plan","freshness","exposure_law","rate","pagination"],"description":"Which boundary refused. Present on every gate error; switch on it without parsing the message.","uniqueKey":"error.gate","typeLabel":"enum\u003cstring>"},"resource":{"oneOf":[{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","beyond_row"],"properties":{"kind":{"type":"string","enum":["media_rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"beyond_row":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.0.beyond_row","typeLabel":"integer"}},"uniqueKey":"error.resource.oneOf.0","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","window_days","cutoff"],"properties":{"kind":{"type":"string","enum":["fresh_media"],"isRequired":true,"uniqueKey":"error.resource.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"window_days":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.1.window_days","typeLabel":"integer"},"cutoff":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.1.cutoff","typeLabel":"string | null"}},"uniqueKey":"error.resource.oneOf.1","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","section","beyond_row"],"properties":{"kind":{"type":"string","enum":["sidebar_rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"section":{"type":"string","enum":["topics","entities"],"isRequired":true,"uniqueKey":"error.resource.oneOf.2.section","typeLabel":"enum\u003cstring>"},"beyond_row":{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.2.beyond_row","typeLabel":"integer"}},"uniqueKey":"error.resource.oneOf.2","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["counts"],"isRequired":true,"uniqueKey":"error.resource.oneOf.3.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.3","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["chart"],"isRequired":true,"uniqueKey":"error.resource.oneOf.4.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.4","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","param"],"properties":{"kind":{"type":"string","enum":["pagination"],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.kind","typeLabel":"enum\u003cstring>"},"param":{"oneOf":[{"type":"string","enum":["offset","cursor",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["offset","cursor",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.5.param","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"error.resource.oneOf.5","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["premium_transcript"],"isRequired":true,"uniqueKey":"error.resource.oneOf.6.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.6","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","param"],"properties":{"kind":{"type":"string","enum":["filter"],"isRequired":true,"uniqueKey":"error.resource.oneOf.7.kind","typeLabel":"enum\u003cstring>"},"param":{"type":"string","isRequired":true,"uniqueKey":"error.resource.oneOf.7.param","typeLabel":"string"}},"uniqueKey":"error.resource.oneOf.7","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","what"],"properties":{"kind":{"type":"string","enum":["commercial"],"isRequired":true,"uniqueKey":"error.resource.oneOf.8.kind","typeLabel":"enum\u003cstring>"},"what":{"type":"string","enum":["sponsors","recommendations","mention_details","community_review","paid_split"],"isRequired":true,"uniqueKey":"error.resource.oneOf.8.what","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.8","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","feature"],"properties":{"kind":{"type":"string","enum":["feature"],"isRequired":true,"uniqueKey":"error.resource.oneOf.9.kind","typeLabel":"enum\u003cstring>"},"feature":{"type":"string","enum":["api","export"],"isRequired":true,"uniqueKey":"error.resource.oneOf.9.feature","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.9","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","requested","remaining"],"properties":{"kind":{"type":"string","enum":["rows"],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.kind","typeLabel":"enum\u003cstring>"},"requested":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.requested","typeLabel":"integer | null"},"remaining":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining.oneOf.0","typeLabel":"integer"},{"type":"null","isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.10.remaining","typeLabel":"integer | null"}},"uniqueKey":"error.resource.oneOf.10","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind","scope"],"properties":{"kind":{"type":"string","enum":["key"],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.kind","typeLabel":"enum\u003cstring>"},"scope":{"oneOf":[{"type":"string","enum":["read","monitors:write","trackers:write","recommendations:read",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["read","monitors:write","trackers:write","recommendations:read",null],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error.resource.oneOf.11.scope","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"error.resource.oneOf.11","typeLabel":"object"},{"type":"object","description":"The value the boundary withheld, not the reason it refused. kind is a closed vocabulary and the fields beside it are fixed per kind; see https://arcmira.com/docs/errors#resource-kinds.","required":["kind"],"properties":{"kind":{"type":"string","enum":["requests"],"isRequired":true,"uniqueKey":"error.resource.oneOf.12.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.resource.oneOf.12","typeLabel":"object"}],"uniqueKey":"error.resource","typeLabel":"object"},"unlock":{"type":"object","properties":{"tier":{"type":"string","description":"The plan that lifts the gate.","isRequired":true,"uniqueKey":"error.unlock.tier","typeLabel":"string"},"url":{"type":"string","description":"Absolute upgrade or sign-up URL carrying its ?src= attribution. Use it verbatim.","isRequired":true,"uniqueKey":"error.unlock.url","typeLabel":"string"},"offer":{"type":"null","description":"Reserved for the agent-discount offer. Always null today.","isRequired":true,"uniqueKey":"error.unlock.offer","typeLabel":"null"},"action":{"type":"object","properties":{"kind":{"type":"string","description":"What the call does. send_signup_code sends a verification code to an address for an account key.","isRequired":true,"uniqueKey":"error.unlock.action.kind","typeLabel":"string"},"method":{"type":"string","description":"HTTP method to use.","isRequired":true,"uniqueKey":"error.unlock.action.method","typeLabel":"string"},"url":{"type":"string","description":"Absolute endpoint carrying its ?src= attribution. Call it verbatim.","isRequired":true,"uniqueKey":"error.unlock.action.url","typeLabel":"string"}},"required":["kind","method","url"],"description":"The request that lifts the gate with no human, present when the caller can fix this itself. A key gate carries the signup send here; a plan or quota gate has no action and its url is a page a person opens.","uniqueKey":"error.unlock.action","typeLabel":"object"}},"required":["tier","url","offer"],"description":"How to lift the gate. Present when the gate has an unlock.","uniqueKey":"error.unlock","typeLabel":"object"},"retry_after_seconds":{"type":"integer","description":"Present on rate gates. Mirrors the Retry-After header.","uniqueKey":"error.retry_after_seconds","typeLabel":"integer"},"details":{"type":"object","properties":{"quote":{"type":"object","description":"The refused price, on a priced refusal: quota_exceeded, spend_limit_exceeded and paid_plan_required.","required":["quarters","rows"],"properties":{"quarters":{"type":"integer","description":"Number of 15-minute blocks in the video, ceiling'd, minimum 1.","isRequired":true,"uniqueKey":"error.details.quote.quarters","typeLabel":"integer"},"rows":{"type":"integer","description":"Credits the whole video uses, in rows: 300 credits per 15-minute block (75 rows; a row is 4 credits).","isRequired":true,"uniqueKey":"error.details.quote.rows","typeLabel":"integer"},"charge":{"type":"object","properties":{"unit":{"type":"string","enum":["rows","credits"],"isRequired":true,"uniqueKey":"error.details.quote.charge.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","isRequired":true,"uniqueKey":"error.details.quote.charge.amount","typeLabel":"number"},"from":{"type":"string","enum":["included","on_demand","mixed"],"description":"Where the charge would come from at the current balance.","isRequired":true,"uniqueKey":"error.details.quote.charge.from","typeLabel":"enum\u003cstring>"}},"required":["unit","amount","from"],"description":"What the request would charge at the current balance. Absent when no current price could be read.","uniqueKey":"error.details.quote.charge","typeLabel":"object"},"max_on_demand_cents":{"type":"integer","description":"The on-demand usage, in whole cents, this request needs beyond the plan's credits at the current balance.","uniqueKey":"error.details.quote.max_on_demand_cents","typeLabel":"integer"}},"uniqueKey":"error.details.quote","typeLabel":"object"},"limit":{"oneOf":[{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["plan_credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The plan credits a month. Carried by quota_exceeded when on-demand usage is off.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in credits.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.0.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.0","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["on_demand_budget"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["credits"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The on-demand budget a month, in credits ($0.002 a credit). Carried by quota_exceeded and spend_limit_exceeded when on-demand usage is on.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in credits.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.1.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.1","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["member_on_demand"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["cents"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The monthly on-demand limit an admin set for the person the key or token acts for, in US cents. Carried by member_limit.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in cents.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.2.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.2","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","unit","amount","used","resets_at"],"properties":{"kind":{"type":"string","enum":["premium_hours"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["hours"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.unit","typeLabel":"enum\u003cstring>"},"amount":{"type":"number","description":"The Premium transcript hours Ultra plan credits cover a month. Carried by fair_use_cap.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.amount","typeLabel":"number"},"used":{"type":"number","description":"How much of amount is used this month, in hours.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.used","typeLabel":"number"},"resets_at":{"type":"string","description":"YYYY-MM-DD, the first day of next month (UTC), when used returns to 0.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.3.resets_at","typeLabel":"string"}},"uniqueKey":"error.details.limit.oneOf.3","typeLabel":"object"},{"type":"object","description":"On quota_exceeded, spend_limit_exceeded, member_limit, fair_use_cap and freshness_requires_paid: the limit the refusal met. Absent when the server holds no figure for it.","required":["kind","delay_days","served_through"],"properties":{"delay_days":{"type":"integer","description":"Days after publication before this plan reads a video.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.delay_days","typeLabel":"integer"},"served_through":{"type":"string","description":"YYYY-MM-DD (UTC). Results on this plan stop at this publish date; media published after it is not read.","isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.served_through","typeLabel":"string"},"kind":{"type":"string","enum":["freshness"],"isRequired":true,"uniqueKey":"error.details.limit.oneOf.4.kind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"error.details.limit.oneOf.4","typeLabel":"object"}],"uniqueKey":"error.details.limit","typeLabel":"object"},"url":{"type":"string","description":"On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page.","uniqueKey":"error.details.url","typeLabel":"string"}},"description":"Machine data the refusal carries for you to act on. Present only on the codes that name a field here.","uniqueKey":"error.details","typeLabel":"object"}},"required":["type","code","message","doc_url","request_id"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"x-arcmira-codes":[{"code":"alert_not_found","type":"not_found","description":"A referenced alert does not exist or belongs to another account."},{"code":"api_not_enabled","type":"permission_error","gate":"plan","description":"The plan does not include API access. unlock.url names the plan that does."},{"code":"appearances_person_only","type":"invalid_request_error","description":"Appearance filtering applies to person entities only."},{"code":"channel_not_found","type":"not_found","description":"No channel matches the id or slug."},{"code":"email_verification_required","type":"permission_error","description":"Verify the account email before adding recipients."},{"code":"entity_not_found","type":"not_found","description":"No entity matches the id, slug, or name."},{"code":"fair_use_cap","type":"quota_exceeded","description":"A fair-use cap on the plan's credits is reached for this use this month, and the account has no granted or on-demand credits to use instead. Nothing was charged. details.limit carries the cap and what is used. An admin turns on on-demand usage or raises its budget, or the cap resets with the month."},{"code":"feature_not_available","type":"permission_error","gate":"plan","description":"The plan does not include this feature. unlock.url names the plan that does."},{"code":"feedback_not_found","type":"not_found","description":"No feedback submission with this id for this account."},{"code":"filter_requires_paid","type":"permission_error","gate":"plan","description":"The parameter in param needs a paid plan; omit it for the free answer."},{"code":"forbidden","type":"permission_error","description":"The caller may not perform this operation on this resource."},{"code":"freshness_requires_paid","type":"permission_error","gate":"freshness","description":"The date window starts after results on this plan stop. details.limit carries delay_days and served_through; move the window to served_through or earlier, or open unlock.url for the plan that reads newer media."},{"code":"id_required","type":"invalid_request_error","description":"A filter in param received a name where it takes an id (ent_{n} or UC...). Resolve the name first with GET /v1/entities/resolve and pass best.id or best.youtube_channel_id."},{"code":"idempotency_conflict","type":"conflict_error","description":"The Idempotency-Key was sent before with a different request body. Send a new key for a new request."},{"code":"idempotency_result_expired","type":"conflict_error","description":"The original one-time signing secret is no longer valid. Use a new request key for a new rotation."},{"code":"insufficient_scope","type":"permission_error","gate":"key","description":"The key lacks the scope this route needs."},{"code":"invalid_api_key","type":"authentication_error","gate":"key","description":"No usable credential. reason says whether none was sent, it is unknown, or it was revoked."},{"code":"invalid_body","type":"invalid_request_error","description":"The JSON body failed validation; message names the field."},{"code":"invalid_cursor","type":"invalid_request_error","description":"The continuation is invalid, expired, or belongs to another query. Restart without cursor."},{"code":"invalid_email_recipients","type":"invalid_request_error","description":"Email recipients failed validation."},{"code":"invalid_feedback_request","type":"invalid_request_error","description":"The feedback query or corrections do not fit the feedback type."},{"code":"invalid_idempotency_key","type":"invalid_request_error","description":"Idempotency-Key must be 1 to 255 printable ASCII characters (0x21 to 0x7E). param is Idempotency-Key."},{"code":"invalid_query","type":"invalid_request_error","description":"A query parameter failed validation; message names it."},{"code":"invalid_slack_integration","type":"invalid_request_error","description":"Choose an active Slack integration owned by the account."},{"code":"invalid_video_id","type":"invalid_request_error","description":"The video_id path segment is not an 11-character YouTube id."},{"code":"job_requires_account","type":"authentication_error","gate":"key","description":"Transcription jobs belong to an account; sign up for a key."},{"code":"member_limit","type":"quota_exceeded","gate":"rows","description":"The account's included credits are used up and the person the key or token acts for has reached their monthly on-demand limit in it. Nothing was charged, and there is no unlock. details.limit carries the limit and what is used, in US cents. An admin raises the limit on the Team page (https://arcmira.com/dashboard/members), or it resets with the month."},{"code":"monitor_creation_unavailable","type":"server_error","description":"Monitor creation is temporarily unavailable. Retry the same request with the same key."},{"code":"monitor_creation_unconfirmed","type":"server_error","description":"Monitor creation could not be confirmed. Retry the same request with the same key."},{"code":"monitor_not_found","type":"not_found","description":"No monitor with this id on the account."},{"code":"not_found","type":"not_found","description":"No route or resource at this path."},{"code":"on_demand_paused","type":"quota_exceeded","gate":"rows","description":"The account's included credits are used up and its on-demand usage is paused, because a payment for an on-demand invoice was declined. Nothing was charged, and there is no unlock. On-demand resumes once the invoice is paid. An admin updates the card on the Billing \u0026 Invoices page (https://arcmira.com/dashboard/billing), which retries the payment."},{"code":"owner_only","type":"permission_error","description":"Only an admin of the account may do this. Everyone in a team can create, edit, pause, delete and restore monitors."},{"code":"owner_plan_required","type":"permission_error","description":"A team account follows its owner's plan, which does not include this. An admin can upgrade; a member's own plan does not apply."},{"code":"pagination_gated","type":"permission_error","gate":"pagination","description":"Results past the free window need a paid plan."},{"code":"paid_plan_required","type":"permission_error","description":"The operation needs a paid plan. unlock.url names the plan that does."},{"code":"premium_transcript_requested","type":"permission_error","gate":"exposure_law","description":"Premium transcript text needs a plan with Premium transcripts."},{"code":"quota_exceeded","type":"quota_exceeded","gate":"rows","description":"The read needs more credits than the plan, then the on-demand budget, have left. Nothing was charged. details.limit carries the plan credits or the on-demand budget the read met, with what is used and when it resets. unlock.url upgrades the plan or raises the budget."},{"code":"rate_limited","type":"rate_limit_error","gate":"rate","description":"Too many requests in the window. Retry-After carries the wait."},{"code":"recipient_upgrade_required","type":"permission_error","description":"The requested email recipient count exceeds the plan allowance."},{"code":"recommendations_not_enabled","type":"permission_error","gate":"plan","description":"Commercial data needs a Pro+ plan."},{"code":"resource_conflict","type":"conflict_error","description":"The operation conflicts with existing resource state."},{"code":"scope_too_broad","type":"invalid_request_error","description":"The requested exact video scope exceeds the search filename cap; narrow by channel or date."},{"code":"search_unavailable","type":"server_error","description":"Transcript search is unavailable (HTTP 503). Retry-After carries the wait."},{"code":"server_error","type":"server_error","description":"Unexpected failure. Retry with backoff and quote request_id if it persists."},{"code":"service_unavailable","type":"server_error","description":"The database was briefly overloaded or restarting (HTTP 503). Retry-After carries the wait; send the same request again."},{"code":"signup_code_invalid","type":"invalid_request_error","description":"The signup code is wrong, expired, or spent; message names the attempts left."},{"code":"signup_send_limited","type":"rate_limit_error","description":"Verification code sends hit a per-address, per-IP, or per-client cap. Retry-After carries the wait."},{"code":"spend_limit_exceeded","type":"quota_exceeded","description":"The request would take on-demand usage past the account's on-demand budget this month. Nothing was charged. details.limit carries the budget and what is used. Raise the budget on the Spending page or wait for the month to reset; then read again, or send a POST /v1/transcriptions request again with a new Idempotency-Key."},{"code":"team_id_retired","type":"invalid_request_error","description":"team_id is retired: a monitor belongs to the account the key acts in. Omit team_id or send null."},{"code":"terms_acceptance_required","type":"permission_error","description":"The person the key or token acts for has not accepted the updated Terms of Service. details.url is the page where they accept; the key or token works again as soon as they do."},{"code":"terms_updated","type":"permission_error","description":"The Terms of Service changed since the person the key or token acts for last accepted them. This call was not run. Continuing to use the API accepts the updated terms, so the same call succeeds when sent again. details.url is the terms page. Sent once per person."},{"code":"tracker_create_retired","type":"invalid_request_error","description":"POST /v1/trackers is retired (HTTP 410): a tracker lives inside a monitor. Follow an entity id or an exact name with POST /v1/monitors/{id}/entities, which creates the tracker in that monitor."},{"code":"tracker_delivery_retired","type":"invalid_request_error","description":"Trackers have no delivery of their own: a tracker alerts through its monitor. Omit notify_email, notify_webhook, notify_slack, webhook_url, slack_channel_id and slack_integration_id, or send the value that means the monitor's delivery (true for notify_email, false or null for the rest), and set delivery with PATCH /v1/monitors/{id}. param names the field."},{"code":"tracker_not_found","type":"not_found","description":"No tracker with this id on the account."},{"code":"transcript_fetching","type":"server_error","description":"The caption track is being fetched, or the transcript translated, now (HTTP 503). Retry-After carries the wait; nothing was charged."},{"code":"transcript_requires_account","type":"authentication_error","gate":"key","description":"Full transcripts need an account key; unlock.action sends a signup code."},{"code":"transcript_unavailable","type":"not_found","description":"The video has no transcript in the requested lane or language; languages lists what exists."},{"code":"unknown_entity","type":"invalid_request_error","description":"An explicit entity_ids value does not resolve to a searchable entity."},{"code":"webhook_not_configured","type":"conflict_error","description":"The monitor has no webhook to rotate a secret for. Set webhook_url first."}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"type":"invalid_request_error","code":"\u003cstring>","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","reason":"no_credential","param":"\u003cstring>","gate":"rows","resource":{"kind":"media_rows","beyond_row":123},"unlock":{"tier":"\u003cstring>","url":"\u003cstring>","offer":null,"action":{"kind":"\u003cstring>","method":"\u003cstring>","url":"\u003cstring>"}},"retry_after_seconds":123,"details":{"quote":{"quarters":123,"rows":123,"charge":{"unit":"rows","amount":123,"from":"included"},"max_on_demand_cents":123},"limit":{"kind":"plan_credits","unit":"credits","amount":123,"used":123,"resets_at":"\u003cstring>"},"url":"\u003cstring>"}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"80f2c783-56d9-464c-89c1-08601c370bb6":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"arc_sk_*","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"fa875dfa-551d-464a-8983-3d4bbce29d59":{"url":"https://api.arcmira.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"arc_sk_*","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi/arcmira-v1.json"},"subdomain":"arcmira","siteName":"Arcmira API","title":"Find which shows a brand sponsors - Arcmira API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-11T17:44:33.058Z","originalFileLocation":"api-reference/recommendations/find-which-shows-a-brand-sponsors.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;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=\"system\"}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=\"Which shows a brand sponsors, and which recommend or mention it. entity_id is required; resolve a name first with GET /v1/entities/resolve, or the call answers 400 id_required naming the parameter. On a plan below Pro+, it returns the brand\u0026#x27;s total shows and ad reads and up to 3 of its top shows by ad-read count in shows, each with one receipt: the newest ad read the plan can open, with start_seconds and a timestamped watch_url. Over MCP this is arcmira.recommendations(entityId) through arcmira_execute_read. On Pro+, cursor-paginated commercial mentions (sponsored, organic and neutral mentions) filtered by entity, channel (channel_id), class, confidence, and publication window [after, before). The signed continuation binds the route, filters, caller and visibility; invalid or old cursors return invalid_cursor. A first-page ID fence excludes later insertions, including old-date backfills. Edits and deletions to existing recommendations remain live. Positions are start_seconds and end_seconds (integer seconds). Below Pro+, recommendations is empty, meta.total and meta.ad_reads are the full counts, ties order by show name in code order, then channel id, and access says how many shows and ad reads the slice left out. Below Pro+, a brand can also return its totals with fewer than three shows, or none: shows is shorter or empty, and access says how many shows and ad reads Pro+ lists. On such a plan cursor, after, before, channel_id, class other than sponsored, min_confidence and include_disputed are refused, and the unlock names Pro+.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Arcmira API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/arcmira/Atgf1ZN-Qr5YQYzl/_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=\"/docs/mintlify-assets/_mintlify/favicons/arcmira/Atgf1ZN-Qr5YQYzl/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/arcmira/Atgf1ZN-Qr5YQYzl/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/arcmira/Atgf1ZN-Qr5YQYzl/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/arcmira/Atgf1ZN-Qr5YQYzl/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/arcmira/Atgf1ZN-Qr5YQYzl/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/arcmira/Atgf1ZN-Qr5YQYzl/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/arcmira/Atgf1ZN-Qr5YQYzl/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/arcmira/Atgf1ZN-Qr5YQYzl/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Find which shows a brand sponsors - Arcmira API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Which shows a brand sponsors, and which recommend or mention it. entity_id is required; resolve a name first with GET /v1/entities/resolve, or the call answers 400 id_required naming the parameter. On a plan below Pro+, it returns the brand\u0026#x27;s total shows and ad reads and up to 3 of its top shows by ad-read count in shows, each with one receipt: the newest ad read the plan can open, with start_seconds and a timestamped watch_url. Over MCP this is arcmira.recommendations(entityId) through arcmira_execute_read. On Pro+, cursor-paginated commercial mentions (sponsored, organic and neutral mentions) filtered by entity, channel (channel_id), class, confidence, and publication window [after, before). The signed continuation binds the route, filters, caller and visibility; invalid or old cursors return invalid_cursor. A first-page ID fence excludes later insertions, including old-date backfills. Edits and deletions to existing recommendations remain live. Positions are start_seconds and end_seconds (integer seconds). Below Pro+, recommendations is empty, meta.total and meta.ad_reads are the full counts, ties order by show name in code order, then channel id, and access says how many shows and ad reads the slice left out. Below Pro+, a brand can also return its totals with fewer than three shows, or none: shows is shorter or empty, and access says how many shows and ad reads Pro+ lists. On such a plan cursor, after, before, channel_id, class other than sponsored, min_confidence and include_disputed are refused, and the unlock names Pro+.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Arcmira API docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://arcmira.com/docs/api-reference/recommendations/find-which-shows-a-brand-sponsors\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://arcmira.mintlify.site/docs/_mintlify/api/og/v2?division=Sponsors\u0026amp;title=Find+which+shows+a+brand+sponsors\u0026amp;description=Which+shows+a+brand+sponsors%2C+and+which+recommend+or+mention+it.+entity_id+is+required%3B+resolve+a+name+first+with+GET+%2Fv1%2Fentities%2Fresolve%2C+or+the+call+answers+\u0026amp;theme=2ecb6db172f2618a8b56c8c7\u0026amp;signature=45bd70201d2d130454c10850520041e0eccf2f5665dedd2f8a5a3fc8f7c28835\">\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=\"Find which shows a brand sponsors - Arcmira API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Which shows a brand sponsors, and which recommend or mention it. entity_id is required; resolve a name first with GET /v1/entities/resolve, or the call answers 400 id_required naming the parameter. On a plan below Pro+, it returns the brand\u0026#x27;s total shows and ad reads and up to 3 of its top shows by ad-read count in shows, each with one receipt: the newest ad read the plan can open, with start_seconds and a timestamped watch_url. Over MCP this is arcmira.recommendations(entityId) through arcmira_execute_read. On Pro+, cursor-paginated commercial mentions (sponsored, organic and neutral mentions) filtered by entity, channel (channel_id), class, confidence, and publication window [after, before). The signed continuation binds the route, filters, caller and visibility; invalid or old cursors return invalid_cursor. A first-page ID fence excludes later insertions, including old-date backfills. Edits and deletions to existing recommendations remain live. Positions are start_seconds and end_seconds (integer seconds). Below Pro+, recommendations is empty, meta.total and meta.ad_reads are the full counts, ties order by show name in code order, then channel id, and access says how many shows and ad reads the slice left out. Below Pro+, a brand can also return its totals with fewer than three shows, or none: shows is shorter or empty, and access says how many shows and ad reads Pro+ lists. On such a plan cursor, after, before, channel_id, class other than sponsored, min_confidence and include_disputed are refused, and the unlock names Pro+.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://arcmira.mintlify.site/docs/_mintlify/api/og/v2?division=Sponsors\u0026amp;title=Find+which+shows+a+brand+sponsors\u0026amp;description=Which+shows+a+brand+sponsors%2C+and+which+recommend+or+mention+it.+entity_id+is+required%3B+resolve+a+name+first+with+GET+%2Fv1%2Fentities%2Fresolve%2C+or+the+call+answers+\u0026amp;theme=2ecb6db172f2618a8b56c8c7\u0026amp;signature=45bd70201d2d130454c10850520041e0eccf2f5665dedd2f8a5a3fc8f7c28835\">\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=\"/docs/mintlify-assets/_mintlify/favicons/arcmira/Atgf1ZN-Qr5YQYzl/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Arcmira API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0f0f0f\">\u003clink data-mint-head rel=\"canonical\" href=\"https://arcmira.com/docs/api-reference/recommendations/find-which-shows-a-brand-sponsors\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/recommendations/find-which-shows-a-brand-sponsors.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://arcmira.com/#organization\",\"name\":\"Arcmira API\",\"url\":\"https://arcmira.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/arcmira/G4qB_YFbtWevtGoh/logo-light.svg?fit=max\u0026auto=format\u0026n=G4qB_YFbtWevtGoh\u0026q=85\u0026s=842a6307f311be80d239b5573e561e17\"}},{\"@type\":\"WebSite\",\"@id\":\"https://arcmira.com/docs#website\",\"name\":\"Arcmira API\",\"url\":\"https://arcmira.com/docs\",\"publisher\":{\"@id\":\"https://arcmira.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://arcmira.com/docs/api-reference/recommendations/find-which-shows-a-brand-sponsors#webpage\",\"url\":\"https://arcmira.com/docs/api-reference/recommendations/find-which-shows-a-brand-sponsors\",\"name\":\"Find which shows a brand sponsors\",\"description\":\"Which shows a brand sponsors, and which recommend or mention it. entity_id is required; resolve a name first with GET /v1/entities/resolve, or the call answers 400 id_required naming the parameter. On a plan below Pro+, it returns the brand's total shows and ad reads and up to 3 of its top shows by ad-read count in shows, each with one receipt: the newest ad read the plan can open, with start_seconds and a timestamped watch_url. Over MCP this is arcmira.recommendations(entityId) through arcmira_execute_read. On Pro+, cursor-paginated commercial mentions (sponsored, organic and neutral mentions) filtered by entity, channel (channel_id), class, confidence, and publication window [after, before). The signed continuation binds the route, filters, caller and visibility; invalid or old cursors return invalid_cursor. A first-page ID fence excludes later insertions, including old-date backfills. Edits and deletions to existing recommendations remain live. Positions are start_seconds and end_seconds (integer seconds). Below Pro+, recommendations is empty, meta.total and meta.ad_reads are the full counts, ties order by show name in code order, then channel id, and access says how many shows and ad reads the slice left out. Below Pro+, a brand can also return its totals with fewer than three shows, or none: shows is shorter or empty, and access says how many shows and ad reads Pro+ lists. On such a plan cursor, after, before, channel_id, class other than sponsored, min_confidence and include_disputed are refused, and the unlock names Pro+.\",\"dateModified\":\"2026-11-11T17:44:33.058Z\",\"isPartOf\":{\"@id\":\"https://arcmira.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://arcmira.com/docs/api-reference/recommendations/find-which-shows-a-brand-sponsors#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://arcmira.com/docs/api-reference/recommendations/find-which-shows-a-brand-sponsors#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://arcmira.com/docs/api-reference/entities/a-name-to-one-id-before-any-filter\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Find which shows a brand sponsors\",\"item\":\"https://arcmira.com/docs/api-reference/recommendations/find-which-shows-a-brand-sponsors\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://arcmira.com/docs/api-reference/recommendations/find-which-shows-a-brand-sponsors#apireference\",\"headline\":\"Find which shows a brand sponsors\",\"name\":\"Find which shows a brand sponsors\",\"description\":\"Which shows a brand sponsors, and which recommend or mention it. entity_id is required; resolve a name first with GET /v1/entities/resolve, or the call answers 400 id_required naming the parameter. On a plan below Pro+, it returns the brand's total shows and ad reads and up to 3 of its top shows by ad-read count in shows, each with one receipt: the newest ad read the plan can open, with start_seconds and a timestamped watch_url. Over MCP this is arcmira.recommendations(entityId) through arcmira_execute_read. On Pro+, cursor-paginated commercial mentions (sponsored, organic and neutral mentions) filtered by entity, channel (channel_id), class, confidence, and publication window [after, before). The signed continuation binds the route, filters, caller and visibility; invalid or old cursors return invalid_cursor. A first-page ID fence excludes later insertions, including old-date backfills. Edits and deletions to existing recommendations remain live. Positions are start_seconds and end_seconds (integer seconds). Below Pro+, recommendations is empty, meta.total and meta.ad_reads are the full counts, ties order by show name in code order, then channel id, and access says how many shows and ad reads the slice left out. Below Pro+, a brand can also return its totals with fewer than three shows, or none: shows is shorter or empty, and access says how many shows and ad reads Pro+ lists. On such a plan cursor, after, before, channel_id, class other than sponsored, min_confidence and include_disputed are refused, and the unlock names Pro+.\",\"url\":\"https://arcmira.com/docs/api-reference/recommendations/find-which-shows-a-brand-sponsors\",\"mainEntityOfPage\":{\"@id\":\"https://arcmira.com/docs/api-reference/recommendations/find-which-shows-a-brand-sponsors#webpage\"},\"dateModified\":\"2026-11-11T17:44:33.058Z\",\"publisher\":{\"@id\":\"https://arcmira.com/#organization\"},\"isPartOf\":{\"@id\":\"https://arcmira.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Arcmira API\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Arcmira API\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/api-reference/recommendations/find-which-shows-a-brand-sponsors.md","siteName":"Arcmira API","nav":{"global":{},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"Endpoints","pages":[{"group":"Search","pages":[{"title":"A name to one id, before any filter","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/entities/resolve","href":"/api-reference/entities/a-name-to-one-id-before-any-filter"},{"title":"Get canonical entity metadata","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/entities/{id}","href":"/api-reference/entities/get-canonical-entity-metadata"},{"title":"Retrieve spoken transcript slices for one topic","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/search","href":"/api-reference/search/retrieve-spoken-transcript-slices-for-one-topic"},{"title":"Search mentions across media","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/mentions","href":"/api-reference/mentions/search-mentions-across-media"},{"title":"Ranked catalog counts of who a set of channels mention","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/mentions/counts","href":"/api-reference/mentions/ranked-catalog-counts-of-who-a-set-of-channels-mention"},{"title":"Spoken-web heat for one entity","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/entities/{id}/momentum","href":"/api-reference/entities/spoken-web-heat-for-one-entity"},{"title":"Newest indexed videos of a channel","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/channels/{channel_id}/videos","href":"/api-reference/channels/newest-indexed-videos-of-a-channel"},{"title":"What the index holds for a channel","description":"How many videos of a YouTube channel are searchable, the newest publish date among them, and the split by transcript source class. Call it when a search or mention lookup came back empty, before telling anyone we do not cover a show, and cite indexed_through as the as-of date for mentions and search_indexed_through for transcript search. It cannot request indexing; to ask for a channel, send feedback with its channel id. Free; uses no credits. Every gate is a typed error whose error.unlock.url names the plan that lifts it; pass src=mcp-tool only from the Arcmira MCP server.","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/channels/{channel_id}/coverage","href":"/api-reference/channels/what-the-index-holds-for-a-channel"}]},{"group":"Sponsors","pages":[{"title":"Find which shows a brand sponsors","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/recommendations","href":"/api-reference/recommendations/find-which-shows-a-brand-sponsors"},{"title":"Find who sponsors a show","description":"Who sponsors a YouTube show: its recurring sponsors, ordered by ad-read count. On a plan below Pro+, it returns the show's total sponsors and ad reads and its top 3 sponsors by ad-read count, each with one receipt: the newest ad read the plan can open, with start_seconds and a timestamped watch_url. Over MCP this is arcmira.sponsors(channelId) through arcmira_execute_read. The top 3 are the three the channel's sponsors page on arcmira.com names; ties order by name in code order, then entity id. meta.total and meta.ad_reads are the full counts, and access says how many sponsors and ad reads the slice left out. Below Pro+, a show can also return its totals with no rows: sponsors is empty, and access says how many sponsors and ad reads Pro+ lists. On Pro+ the full list is served and min_ad_reads (default 3), status, and limit apply. Passing min_ad_reads, status, or limit below Pro+ is refused with filter_requires_paid. Pass src=mcp-tool only from the Arcmira MCP server.","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/channels/{channel_id}/sponsors","href":"/api-reference/recommendations/find-who-sponsors-a-show"}]},{"group":"Transcripts","pages":[{"title":"Get a video transcript","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/transcripts/{video_id}","href":"/api-reference/transcripts/get-a-video-transcript"},{"title":"Quote a whole-video Premium transcript","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/transcripts/{video_id}/quote","href":"/api-reference/transcripts/quote-a-whole-video-premium-transcript"},{"title":"List your transcription requests","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/transcriptions","href":"/api-reference/transcriptions/list-your-transcription-requests"}]},{"group":"Monitors","pages":[{"title":"List monitors","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/monitors","href":"/api-reference/monitors/list-monitors"},{"title":"Create monitor","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json post /v1/monitors","href":"/api-reference/monitors/create-monitor"},{"title":"Update monitor","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json patch /v1/monitors/{id}","href":"/api-reference/monitors/update-monitor"},{"title":"Delete monitor","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json delete /v1/monitors/{id}","href":"/api-reference/monitors/delete-monitor"},{"title":"Follow entities in a monitor by id or exact name","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json post /v1/monitors/{id}/entities","href":"/api-reference/monitors/follow-entities-in-a-monitor-by-id-or-exact-name"},{"title":"List monitor trackers","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/monitors/{id}/trackers","href":"/api-reference/monitors/list-monitor-trackers"},{"title":"Add trackers to monitor","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json post /v1/monitors/{id}/trackers","href":"/api-reference/monitors/add-trackers-to-monitor"},{"title":"List recent monitor alerts","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/monitors/{id}/alerts","href":"/api-reference/monitors/list-recent-monitor-alerts"},{"title":"Rotate the monitor webhook signing secret","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json post /v1/monitors/{id}/webhook-secret/rotate","href":"/api-reference/monitors/rotate-the-monitor-webhook-signing-secret"},{"title":"List connected Slack workspaces","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/integrations/slack","href":"/api-reference/monitors/list-connected-slack-workspaces"},{"group":"Trackers","pages":[{"title":"List trackers","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/trackers","href":"/api-reference/trackers/list-trackers"},{"title":"Update tracker","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json patch /v1/trackers/{id}","href":"/api-reference/trackers/update-tracker"},{"title":"Delete tracker","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json delete /v1/trackers/{id}","href":"/api-reference/trackers/delete-tracker"},{"title":"List recent tracker alerts","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/trackers/{id}/alerts","href":"/api-reference/trackers/list-recent-tracker-alerts"}]}]},{"group":"Feedback","pages":[{"title":"Submit feedback and corrections for a prior API query","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json post /v1/feedback","href":"/api-reference/feedback/submit-feedback-and-corrections-for-a-prior-api-query"},{"title":"Read back a feedback submission and its review status","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/feedback/{feedback_id}","href":"/api-reference/feedback/read-back-a-feedback-submission-and-its-review-status"}]},{"group":"Account","pages":[{"title":"Current API key context","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/me","href":"/api-reference/meta/current-api-key-context"},{"title":"Set account defaults","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json patch /v1/me/settings","href":"/api-reference/meta/set-account-defaults"},{"title":"Send a verification code to an address","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json post /v1/signups","href":"/api-reference/meta/send-a-verification-code-to-an-address"},{"title":"Exchange a verification code for an account key","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json post /v1/signups/verify","href":"/api-reference/meta/exchange-a-verification-code-for-an-account-key"},{"title":"Health check","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/health","href":"/api-reference/meta/health-check"},{"title":"OpenAPI document","deprecated":null,"version":null,"openapi":"/openapi/arcmira-v1.json get /v1/openapi.json","href":"/api-reference/meta/openapi-document"}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Find which shows a brand sponsors - Arcmira API","buildId":"dpl_2AK98Hxhwu4fUXpx9atbv41cC328","deploymentId":"dpl_2AK98Hxhwu4fUXpx9atbv41cC328","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-EBSrFTg1.js","utils-Y_7TcRh4.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D1wvvkPH.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-aT0ty6oN.js","snippetPresets-DoNRuyJc.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-CXRajFpn.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BAyOsINj.js","shallow-CIcHqV1v.js","getApiPlaygroundDisplay-C5igZwEf.js","CodeSnippet-BFWnQLNh.js","CodeSnippets-Cx2mFgZW.js","Page-DCFaZE46.js","getPastedJson-BOy09PZp.js","icon-BwmYtB6R.js","MethodPill-DAIhq-iu.js","DuplicateIcon-DFM8Q3ph.js","createIcon-0UdvzB4Z.js","DynamicMarkdown-DYYZTGpa.js","SectionHeading-BFCDRUuH.js","axios-vUo_bRtp.js","Markdown-C6TcKjiR.js","clsx-Y_UC780V.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-PCbBHBTv.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-D4q_oRML.js"]}