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.
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.
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-who-sponsors-a-show","slug":"/api-reference/recommendations/find-who-sponsors-a-show","pageMetadata":{"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","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: \"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.\"\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 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","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/arcmira/660e4608bea78d17/posthog.js"],"openApiReferenceData":{"operation":{"tags":["Recommendations"],"operationId":"list_channel_sponsors","summary":"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.","security":["0e164ddf-9a70-44b1-88fe-cc118f8c0698"],"parameters":["6ec56ad0-ec88-47e3-8977-6cfcd045e87f","3a781ce5-3491-4ed8-b642-5f5a3bb80d19","a0816c16-3202-4743-8b48-ca5795d86763","48f3fb67-9fa4-4e68-a0f3-842cc58245ea","b7951ee2-4e57-4602-8b9d-8dea6af92986"],"responses":{"200":"eb75cad2-d039-445e-924b-b72a0aec3d83","400":"a1901b0a-5fc9-4133-a07c-fb9953f927f8","401":"8315f2c4-701d-41cd-a8a3-affa8bcbedc5","402":"55ea0a34-20aa-446a-a830-ab0b14e8051e","403":"9f5c096a-d27d-4675-baa2-bdaca5d8f515","404":"0b52ba29-a2e4-49bd-83a1-911107271788","429":"c2243313-bb32-40fb-a43a-8ac4126a4214","500":"19f834e5-68f5-4ae7-ab53-4e9da4a7a1a5"},"method":"get","type":"path","servers":["fa875dfa-551d-464a-8983-3d4bbce29d59"],"path":"/v1/channels/{channel_id}/sponsors","baseUrlOptions":["https://api.arcmira.com"],"title":"Find who sponsors a show","codeSamples":[],"requestExampleLanguages":["javascript","python","bash"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"6ec56ad0-ec88-47e3-8977-6cfcd045e87f":{"schema":{"type":"string","description":"YouTube channel id, the UC... form.","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"description":"YouTube channel id, the UC... form.","name":"channel_id","in":"path"},"3a781ce5-3491-4ed8-b642-5f5a3bb80d19":{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Sponsors with fewer ad reads are excluded. Default 3. Pro+ only; on other plans passing it is refused with filter_requires_paid.","isRequired":false,"uniqueKey":"","typeLabel":"integer"},"required":false,"description":"Sponsors with fewer ad reads are excluded. Default 3. Pro+ only; on other plans passing it is refused with filter_requires_paid.","name":"min_ad_reads","in":"query"},"a0816c16-3202-4743-8b48-ca5795d86763":{"schema":{"type":"string","enum":["active","lapsed","ended","uncertain"],"description":"Filter against the curated known-advertisers dataset. Pro+ only; on other plans passing it is refused with filter_requires_paid.","isRequired":false,"uniqueKey":"","typeLabel":"enum\u003cstring>"},"required":false,"description":"Filter against the curated known-advertisers dataset. Pro+ only; on other plans passing it is refused with filter_requires_paid.","name":"status","in":"query"},"48f3fb67-9fa4-4e68-a0f3-842cc58245ea":{"schema":{"type":"integer","minimum":1,"maximum":200,"description":"Sponsors to return. Default 100. Pro+ only; on other plans passing it is refused with filter_requires_paid, and omitting it serves the free slice.","isRequired":false,"uniqueKey":"","typeLabel":"integer"},"required":false,"description":"Sponsors to return. Default 100. Pro+ only; on other plans passing it is refused with filter_requires_paid, and omitting it serves the free slice.","name":"limit","in":"query"},"b7951ee2-4e57-4602-8b9d-8dea6af92986":{"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":{"eb75cad2-d039-445e-924b-b72a0aec3d83":{"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":{"channel":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Public entity id (\"ent_{n}\") of the channel. Null when the channel has media in the index but no entity record yet.","isRequired":true,"uniqueKey":"channel.id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Public entity id (\"ent_{n}\") of the channel. Null when the channel has media in the index but no entity record yet.","isRequired":true,"uniqueKey":"channel.id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"channel.id","typeLabel":"string | null"},"youtube_channel_id":{"type":"string","description":"YouTube channel id as supplied in the request path.","isRequired":true,"uniqueKey":"channel.youtube_channel_id","typeLabel":"string"},"name":{"oneOf":[{"type":"string","description":"Channel name. Null when no entity record exists.","isRequired":true,"uniqueKey":"channel.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Channel name. Null when no entity record exists.","isRequired":true,"uniqueKey":"channel.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"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":"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":"channel.page.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"channel.page","typeLabel":"string | null"}},"required":["id","youtube_channel_id","name","page"],"isRequired":true,"uniqueKey":"channel","typeLabel":"object"},"sponsors":{"type":"array","items":{"type":"object","properties":{"entity":{"type":"object","description":"The sponsoring entity.","required":["id","name","type","slug","page"],"properties":{"id":{"type":"string","description":"Public entity id in the form \"ent_{n}\".","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].entity.id","typeLabel":"string"},"name":{"type":"string","description":"Canonical entity name.","isRequired":true,"uniqueKey":"sponsors.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":"sponsors.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":"sponsors.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":"sponsors.items.[INDEX].entity.slug.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sponsors.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":"sponsors.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":"sponsors.items.[INDEX].entity.page.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sponsors.items.[INDEX].entity.page","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"sponsors.items.[INDEX].entity","typeLabel":"object"},"ad_reads":{"type":"integer","description":"Number of ad_read recommendations for this sponsor on the channel.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].ad_reads","typeLabel":"integer"},"videos":{"type":"integer","description":"Number of distinct videos containing those ad reads.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].videos","typeLabel":"integer"},"first_seen":{"oneOf":[{"type":"string","description":"Publish timestamp of the earliest video with an ad read. Null when unknown.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].first_seen.oneOf.0","typeLabel":"string"},{"type":"null","description":"Publish timestamp of the earliest video with an ad read. Null when unknown.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].first_seen.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sponsors.items.[INDEX].first_seen","typeLabel":"string | null"},"last_seen":{"oneOf":[{"type":"string","description":"Publish timestamp of the most recent video with an ad read. Null when unknown.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].last_seen.oneOf.0","typeLabel":"string"},{"type":"null","description":"Publish timestamp of the most recent video with an ad read. Null when unknown.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].last_seen.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sponsors.items.[INDEX].last_seen","typeLabel":"string | null"},"sponsor_status":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","description":"Curated sponsorship status from the known-advertisers dataset. Values: active (currently sponsoring), lapsed (no recent ad reads), ended (relationship known to have ended), uncertain (signal too weak to classify).","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].sponsor_status.oneOf.0.status","typeLabel":"string"},"ad_count":{"oneOf":[{"type":"integer","description":"Curated ad count from the known-advertisers dataset.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].sponsor_status.oneOf.0.ad_count.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Curated ad count from the known-advertisers dataset.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].sponsor_status.oneOf.0.ad_count.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sponsors.items.[INDEX].sponsor_status.oneOf.0.ad_count","typeLabel":"integer | null"},"first_ad_date":{"oneOf":[{"type":"string","description":"Curated first-ad date. Null when not recorded.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].sponsor_status.oneOf.0.first_ad_date.oneOf.0","typeLabel":"string"},{"type":"null","description":"Curated first-ad date. Null when not recorded.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].sponsor_status.oneOf.0.first_ad_date.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sponsors.items.[INDEX].sponsor_status.oneOf.0.first_ad_date","typeLabel":"string | null"},"last_ad_date":{"oneOf":[{"type":"string","description":"Curated last-ad date. Null when not recorded.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].sponsor_status.oneOf.0.last_ad_date.oneOf.0","typeLabel":"string"},{"type":"null","description":"Curated last-ad date. Null when not recorded.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].sponsor_status.oneOf.0.last_ad_date.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sponsors.items.[INDEX].sponsor_status.oneOf.0.last_ad_date","typeLabel":"string | null"}},"required":["status","ad_count","first_ad_date","last_ad_date"],"description":"Curated known-advertiser record for this sponsor/channel pair. Null unless the pair exists in the curated dataset.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].sponsor_status.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"status":{"type":"string","description":"Curated sponsorship status from the known-advertisers dataset. Values: active (currently sponsoring), lapsed (no recent ad reads), ended (relationship known to have ended), uncertain (signal too weak to classify)."},"ad_count":{"oneOf":[{"type":"integer","description":"Curated ad count from the known-advertisers dataset."},{"type":"null","description":"Curated ad count from the known-advertisers dataset."}]},"first_ad_date":{"oneOf":[{"type":"string","description":"Curated first-ad date. Null when not recorded."},{"type":"null","description":"Curated first-ad date. Null when not recorded."}]},"last_ad_date":{"oneOf":[{"type":"string","description":"Curated last-ad date. Null when not recorded."},{"type":"null","description":"Curated last-ad date. Null when not recorded."}]}},"required":["status","ad_count","first_ad_date","last_ad_date"],"description":"Curated known-advertiser record for this sponsor/channel pair. Null unless the pair exists in the curated dataset.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].sponsor_status.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sponsors.items.[INDEX].sponsor_status","typeLabel":"object | null"},"receipt":{"oneOf":[{"type":"object","properties":{"video_id":{"type":"string","description":"YouTube video id (11 characters).","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].receipt.oneOf.0.video_id","typeLabel":"string"},"title":{"oneOf":[{"type":"string","description":"Video title.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].receipt.oneOf.0.title.oneOf.0","typeLabel":"string"},{"type":"null","description":"Video title.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].receipt.oneOf.0.title.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sponsors.items.[INDEX].receipt.oneOf.0.title","typeLabel":"string | null"},"published_at":{"oneOf":[{"type":"string","description":"Video publish timestamp.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].receipt.oneOf.0.published_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"Video publish timestamp.","isRequired":true,"uniqueKey":"sponsors.items.[INDEX].receipt.oneOf.0.published_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sponsors.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":"sponsors.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":"sponsors.items.[INDEX].receipt.oneOf.0.start_seconds.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sponsors.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":"sponsors.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":"sponsors.items.[INDEX].receipt.oneOf.0.verbatim_quote.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sponsors.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":"sponsors.items.[INDEX].receipt.oneOf.0.watch_url","typeLabel":"string"}},"required":["video_id","title","published_at","start_seconds","verbatim_quote","watch_url"],"description":"Present below Pro+: one of this sponsor's ad reads on the channel, the newest your plan lists. Null when every read is newer than your plan's freshness window.","uniqueKey":"sponsors.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":"Present below Pro+: one of this sponsor's ad reads on the channel, the newest your plan lists. Null when every read is newer than your plan's freshness window.","uniqueKey":"sponsors.items.[INDEX].receipt.oneOf.1","typeLabel":"null"}],"uniqueKey":"sponsors.items.[INDEX].receipt","typeLabel":"object | null"}},"required":["entity","ad_reads","videos","first_seen","last_seen","sponsor_status"],"uniqueKey":"sponsors.items.[INDEX]","typeLabel":"object"},"description":"Recurring sponsors, most ad reads first, a tie going to the name. Below Pro+, the three the channel's sponsors page on arcmira.com names.","isRequired":true,"uniqueKey":"sponsors","typeLabel":"object[]"},"meta":{"type":"object","properties":{"min_ad_reads":{"type":"integer","description":"The min_ad_reads threshold applied (default 3).","isRequired":true,"uniqueKey":"meta.min_ad_reads","typeLabel":"integer"},"count":{"type":"integer","description":"Number of sponsors returned.","isRequired":true,"uniqueKey":"meta.count","typeLabel":"integer"},"total":{"type":"integer","description":"Sponsors in the rollup at the applied threshold. Greater than count only when the plan gate cut the list to the free slice.","isRequired":true,"uniqueKey":"meta.total","typeLabel":"integer"},"ad_reads":{"type":"integer","description":"Present below Pro+: ad reads across every sponsor in the rollup.","uniqueKey":"meta.ad_reads","typeLabel":"integer"}},"required":["min_ad_reads","count","total"],"isRequired":true,"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":["channel","sponsors","meta"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"channel":{"id":"\u003cstring>","youtube_channel_id":"\u003cstring>","name":"\u003cstring>","page":"\u003cstring>"},"sponsors":[{"entity":{"id":"\u003cstring>","name":"\u003cstring>","type":"\u003cstring>","slug":"\u003cstring>","page":"\u003cstring>"},"ad_reads":123,"videos":123,"first_seen":"\u003cstring>","last_seen":"\u003cstring>","sponsor_status":{"status":"\u003cstring>","ad_count":123,"first_ad_date":"\u003cstring>","last_ad_date":"\u003cstring>"},"receipt":{"video_id":"\u003cstring>","title":"\u003cstring>","published_at":"\u003cstring>","start_seconds":123,"verbatim_quote":"\u003cstring>","watch_url":"\u003cstring>"}}],"meta":{"min_ad_reads":123,"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"},"a1901b0a-5fc9-4133-a07c-fb9953f927f8":{"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"},"8315f2c4-701d-41cd-a8a3-affa8bcbedc5":{"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"},"55ea0a34-20aa-446a-a830-ab0b14e8051e":{"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"},"9f5c096a-d27d-4675-baa2-bdaca5d8f515":{"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"},"0b52ba29-a2e4-49bd-83a1-911107271788":{"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"},"c2243313-bb32-40fb-a43a-8ac4126a4214":{"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"},"19f834e5-68f5-4ae7-ab53-4e9da4a7a1a5":{"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":{"0e164ddf-9a70-44b1-88fe-cc118f8c0698":{"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 who sponsors a show - Arcmira API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-11T17:44:33.078Z","originalFileLocation":"api-reference/recommendations/find-who-sponsors-a-show.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=\"Who sponsors a YouTube show: its recurring sponsors, ordered by ad-read count. On a plan below Pro+, it returns the show\u0026#x27;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\u0026#x27;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.\">\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 who sponsors a show - Arcmira API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Who sponsors a YouTube show: its recurring sponsors, ordered by ad-read count. On a plan below Pro+, it returns the show\u0026#x27;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\u0026#x27;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.\">\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-who-sponsors-a-show\">\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+who+sponsors+a+show\u0026amp;description=Who+sponsors+a+YouTube+show%3A+its+recurring+sponsors%2C+ordered+by+ad-read+count.+On+a+plan+below+Pro%2B%2C+it+returns+the+show%27s+total+sponsors+and+ad+reads+and+its+t\u0026amp;theme=2ecb6db172f2618a8b56c8c7\u0026amp;signature=a1480df7c186ace2c86208baa3fe68fad0a4f8bb22306a41baeeceff8fad52e5\">\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 who sponsors a show - Arcmira API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Who sponsors a YouTube show: its recurring sponsors, ordered by ad-read count. On a plan below Pro+, it returns the show\u0026#x27;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\u0026#x27;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.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://arcmira.mintlify.site/docs/_mintlify/api/og/v2?division=Sponsors\u0026amp;title=Find+who+sponsors+a+show\u0026amp;description=Who+sponsors+a+YouTube+show%3A+its+recurring+sponsors%2C+ordered+by+ad-read+count.+On+a+plan+below+Pro%2B%2C+it+returns+the+show%27s+total+sponsors+and+ad+reads+and+its+t\u0026amp;theme=2ecb6db172f2618a8b56c8c7\u0026amp;signature=a1480df7c186ace2c86208baa3fe68fad0a4f8bb22306a41baeeceff8fad52e5\">\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-who-sponsors-a-show\">\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-who-sponsors-a-show.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-who-sponsors-a-show#webpage\",\"url\":\"https://arcmira.com/docs/api-reference/recommendations/find-who-sponsors-a-show\",\"name\":\"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.\",\"dateModified\":\"2026-11-11T17:44:33.078Z\",\"isPartOf\":{\"@id\":\"https://arcmira.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://arcmira.com/docs/api-reference/recommendations/find-who-sponsors-a-show#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://arcmira.com/docs/api-reference/recommendations/find-who-sponsors-a-show#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\":\"Sponsors\",\"item\":\"https://arcmira.com/docs/api-reference/recommendations/find-which-shows-a-brand-sponsors\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Find who sponsors a show\",\"item\":\"https://arcmira.com/docs/api-reference/recommendations/find-who-sponsors-a-show\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://arcmira.com/docs/api-reference/recommendations/find-who-sponsors-a-show#apireference\",\"headline\":\"Find who sponsors a show\",\"name\":\"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.\",\"url\":\"https://arcmira.com/docs/api-reference/recommendations/find-who-sponsors-a-show\",\"mainEntityOfPage\":{\"@id\":\"https://arcmira.com/docs/api-reference/recommendations/find-who-sponsors-a-show#webpage\"},\"dateModified\":\"2026-11-11T17:44:33.078Z\",\"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-who-sponsors-a-show.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","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","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"},{"title":"Find who sponsors a show","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","description":"Caption reads use 4 credits per started 15 minutes. quality=premium is one read. An owned transcript answers 200 ready at no charge. Otherwise this call starts a Premium transcript of the whole video, 300 credits per started 15 minutes, using credits from the account's plan first and then the account's on-demand budget up to its limit, and answers 202 pending with the job and Retry-After until the transcript is ready. Read again after Retry-After; repeated reads join the same job and never charge twice. When the last Premium transcript for the video failed, the read answers 200 state failed with the job and last_attempt and charges nothing; retry=true starts a new one. When the plan or the budget blocks, 403 paid_plan_required (with unlock) or 402 quota_exceeded or spend_limit_exceeded carries the price in quote and the limit it met in limit, and nothing is charged. A default-premium account with nothing owned reads captions with a note. On captions, start and end set the billed window: 4 credits per started 15 minutes of end minus start. On Premium they only trim the returned content, and the charge is the whole video. language selects caption tracks, timestamps=false returns paragraphs. Premium lines carry speaker and index, and the body carries speakers and revision. language picks the language: language= returns the base transcript (base_language), and a language the transcript is not in returns it translated, line for line with the same timestamps and speakers. Captions offer only the languages YouTube makes available for the video (translation_languages), billed as a caption read; any other language is Premium: an owned Premium transcript in another language costs the Premium rate once per account and language.","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 who sponsors a show - 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"]}