Whether this account tops itself up, and on what terms
The account’s auto-recharge setting and the figures it would use.
The figures are per tier and not chosen by the caller. The threshold is a tenth of the tier’s included allowance and the top-up is one more month of it at that month’s price, so the same rule reads sensibly from a 1,200-credit plan to a 30,000-credit one, where any flat number would be a rounding error at one end and the whole allowance at the other. It also means a top-up needs no Stripe product that a subscription does not already have.
available is false on the free tier, whose grant is one-time and which has no price to charge; every figure is then null.
failure carries the provider’s decline code and when it happened, and nothing else — the message beside it at Stripe quotes the card. A recorded failure also pauses auto-recharge, because an account below its floor would otherwise re-present a dead card on every confirm; the customer clears it by switching the setting back on.
A read, so it stays open in every account state.
GET
/
v1
/
billing
/
auto-recharge
Whether this account tops itself up, and on what terms
A Cognito access token, issued through the dashboard's own sign-up and sign-in pages (a backend-for-frontend; there is no Cognito Hosted UI) and sent as Authorization: Bearer <jwt>. Dashboard operations require this scheme and cannot be called with an API key, with no exception. GET /v1/usage and GET /v1/limits offered both schemes from 0.8.0; 0.8.1 withdrew that, because the control-plane API serves them alone and its authorizer has no API-key branch. An account_id supplied by the client is ignored; all reads/writes are scoped server-side to the authenticated account.
Response
The setting and its terms.
Whether this account tops itself up, and the figures it would use. Every figure is null when available is false, which is the free tier: its grant is one-time and it has no price to charge.
The last decline, or null. A recorded failure pauses auto-recharge; switching it on again clears this.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Audivo","description":"Podcast transcripts by API: send an episode, get the transcript.","colors":{"primary":"#1f6f5f","light":"#3aa08b","dark":"#164f44"},"logo":{"light":"https://mintcdn.com/hark-5cc9dfca/xZqIgLIsKXAcTJ_E/logo/light.png?fit=max\u0026auto=format\u0026n=xZqIgLIsKXAcTJ_E\u0026q=85\u0026s=290108566f8ad3bd0fda322b7324bbf2","dark":"https://mintcdn.com/hark-5cc9dfca/xZqIgLIsKXAcTJ_E/logo/dark.png?fit=max\u0026auto=format\u0026n=xZqIgLIsKXAcTJ_E\u0026q=85\u0026s=51442e7e1f33fc4a51cfee89a104e369"},"favicon":"https://mintcdn.com/hark-5cc9dfca/EA1QjhSCYNWn_mCh/favicon.png?fit=max\u0026auto=format\u0026n=EA1QjhSCYNWn_mCh\u0026q=85\u0026s=9feae7b6390de852ae74901d0dec1d11","api":{"playground":{"display":"simple"}},"appearance":{"default":"system"},"seo":{"indexing":"navigable"},"contextual":{"options":["copy","view"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hark-5cc9dfca","hasAudioNarration":false,"actualSubdomain":"hark-5cc9dfca","customDomains":["docs.audivo.dev"],"gitSource":{"type":"github","owner":"vvaradinov","repo":"podcast-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6abf83c3cb1db2609accf412","collectionId":"2edcaa68-1d35-4483-8de2-b1bce9e2e795","liveDeploymentHistoryId":"6abf83c3cb1db2609accf412","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6abf83c3cb1db2609accf412","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"API Reference","count":36},{"language":"default","tag":"Guides","count":23},{"language":"default","tag":"Billing","count":9},{"language":"default","tag":"Start","count":4},{"language":"default","tag":"Reference","count":4},{"language":"default","tag":"Account","count":4},{"language":"default","tag":"Catalog","count":4},{"language":"default","tag":"Connected Apps","count":4},{"language":"default","tag":"Transcripts","count":4},{"language":"default","tag":"API Keys","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"img.nav-logo{height:2.25rem!important}"}],"page":{"pagePath":"api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms","slug":"/api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms","pageMetadata":{"title":"Whether this account tops itself up, and on what terms","description":"The account's auto-recharge setting and the figures it would use.\n\n**The figures are per tier and not chosen by the caller.** The threshold is a tenth of the tier's included allowance and the top-up is one more month of it at that month's price, so the same rule reads sensibly from a 1,200-credit plan to a 30,000-credit one, where any flat number would be a rounding error at one end and the whole allowance at the other. It also means a top-up needs no Stripe product that a subscription does not already have.\n\n`available` is false on the free tier, whose grant is one-time and which has no price to charge; every figure is then `null`.\n\n`failure` carries the provider's decline code and when it happened, and nothing else — the message beside it at Stripe quotes the card. A recorded failure also *pauses* auto-recharge, because an account below its floor would otherwise re-present a dead card on every confirm; the customer clears it by switching the setting back on.\n\nA read, so it stays open in every account state.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/billing/auto-recharge","href":"/api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n em: \"em\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"The account’s auto-recharge setting and the figures it would use.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"The figures are per tier and not chosen by the caller.\"\n }), \" The threshold is a tenth of the tier’s included allowance and the top-up is one more month of it at that month’s price, so the same rule reads sensibly from a 1,200-credit plan to a 30,000-credit one, where any flat number would be a rounding error at one end and the whole allowance at the other. It also means a top-up needs no Stripe product that a subscription does not already have.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"available\"\n }), \" is false on the free tier, whose grant is one-time and which has no price to charge; every figure is then \", _jsx(_components.code, {\n children: \"null\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"failure\"\n }), \" carries the provider’s decline code and when it happened, and nothing else — the message beside it at Stripe quotes the card. A recorded failure also \", _jsx(_components.em, {\n children: \"pauses\"\n }), \" auto-recharge, because an account below its floor would otherwise re-present a dead card on every confirm; the customer clears it by switching the setting back on.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"A read, so it stays open in every account state.\"\n })]\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":"Whether this account tops itself up, and on what terms","description":"The account's auto-recharge setting and the figures it would use.\n\n**The figures are per tier and not chosen by the caller.** The threshold is a tenth of the tier's included allowance and the top-up is one more month of it at that month's price, so the same rule reads sensibly from a 1,200-credit plan to a 30,000-credit one, where any flat number would be a rounding error at one end and the whole allowance at the other. It also means a top-up needs no Stripe product that a subscription does not already have.\n\n`available` is false on the free tier, whose grant is one-time and which has no price to charge; every figure is then `null`.\n\n`failure` carries the provider's decline code and when it happened, and nothing else — the message beside it at Stripe quotes the card. A recorded failure also *pauses* auto-recharge, because an account below its floor would otherwise re-present a dead card on every confirm; the customer clears it by switching the setting back on.\n\nA read, so it stays open in every account state.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/billing/auto-recharge","href":"/api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getAutoRecharge","tags":["Billing"],"summary":"Whether this account tops itself up, and on what terms","security":["40261ad2-b241-4d23-9b79-6f2f0fc84fa2"],"description":"The account's auto-recharge setting and the figures it would use.\n\n**The figures are per tier and not chosen by the caller.** The threshold is a tenth of the tier's included allowance and the top-up is one more month of it at that month's price, so the same rule reads sensibly from a 1,200-credit plan to a 30,000-credit one, where any flat number would be a rounding error at one end and the whole allowance at the other. It also means a top-up needs no Stripe product that a subscription does not already have.\n\n`available` is false on the free tier, whose grant is one-time and which has no price to charge; every figure is then `null`.\n\n`failure` carries the provider's decline code and when it happened, and nothing else — the message beside it at Stripe quotes the card. A recorded failure also *pauses* auto-recharge, because an account below its floor would otherwise re-present a dead card on every confirm; the customer clears it by switching the setting back on.\n\nA read, so it stays open in every account state.","responses":{"200":"130d28bb-aa8b-48c2-b8e4-7d0f50646b1b","401":"ae79dad4-609c-4cbe-8950-450f26e112d1","429":"0f94a4d0-464f-4263-aec8-30e5237f45b9","500":"219a02c4-f659-426f-9a57-bf7261e208a5"},"method":"get","type":"path","servers":["ab95c592-ddf1-4927-bb4a-1f83f0e8e07e"],"path":"/v1/billing/auto-recharge","baseUrlOptions":["https://api.audivo.dev"],"title":"Whether this account tops itself up, and on what terms","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"responses":{"130d28bb-aa8b-48c2-b8e4-7d0f50646b1b":{"description":"The setting and its terms.","headers":{"X-Request-Id":{"description":"Echoed on every response, success or error. A refusal generated at the edge (401, 429, and the unmetered-key 500) carries API Gateway's own hyphenated request id after the `req_` prefix; a response from a function carries the same id without hyphens.","schema":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["available","enabled","threshold_credits","top_up_credits","top_up_amount_cents","currency","failure"],"description":"Whether this account tops itself up, and the figures it would use. Every figure is `null` when `available` is false, which is the free tier: its grant is one-time and it has no price to charge.","properties":{"available":{"type":"boolean","description":"Whether this account's tier can auto-recharge at all.","isRequired":true,"uniqueKey":"available","typeLabel":"boolean"},"enabled":{"type":"boolean","description":"Whether the customer has switched it on.","isRequired":true,"uniqueKey":"enabled","typeLabel":"boolean"},"threshold_credits":{"oneOf":[{"type":"integer","description":"The settled balance at which a top-up is triggered — a floor crossed downward, not a total spent. It is a tenth of the tier's included allowance.","maximum":9007199254740991,"minimum":0,"isRequired":true,"uniqueKey":"threshold_credits.oneOf.0","typeLabel":"integer"},{"description":"The settled balance at which a top-up is triggered — a floor crossed downward, not a total spent. It is a tenth of the tier's included allowance.","enum":[null],"isRequired":true,"uniqueKey":"threshold_credits.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"threshold_credits","typeLabel":"integer | any"},"top_up_credits":{"oneOf":[{"type":"integer","description":"The credits a top-up adds — one more month of the tier's allowance.","maximum":9007199254740991,"minimum":0,"isRequired":true,"uniqueKey":"top_up_credits.oneOf.0","typeLabel":"integer"},{"description":"The credits a top-up adds — one more month of the tier's allowance.","enum":[null],"isRequired":true,"uniqueKey":"top_up_credits.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"top_up_credits","typeLabel":"integer | any"},"top_up_amount_cents":{"oneOf":[{"type":"integer","description":"What a top-up costs, in the currency's smallest unit.","minimum":0,"isRequired":true,"uniqueKey":"top_up_amount_cents.oneOf.0","typeLabel":"integer"},{"description":"What a top-up costs, in the currency's smallest unit.","enum":[null],"isRequired":true,"uniqueKey":"top_up_amount_cents.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"top_up_amount_cents","typeLabel":"integer | any"},"currency":{"oneOf":[{"type":"string","description":"ISO 4217 code for `top_up_amount_cents`.","isRequired":true,"uniqueKey":"currency.oneOf.0","typeLabel":"string"},{"description":"ISO 4217 code for `top_up_amount_cents`.","enum":[null],"isRequired":true,"uniqueKey":"currency.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"currency","typeLabel":"string | any"},"failure":{"oneOf":[{"type":"object","description":"The last decline, or `null`. A recorded failure pauses auto-recharge; switching it on again clears this.","required":["code","at"],"properties":{"code":{"type":"string","description":"The provider's decline code, and nothing beside it — the message Stripe pairs with it quotes the card.","isRequired":true,"uniqueKey":"failure.oneOf.0.code","typeLabel":"string"},"at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"failure.oneOf.0.at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"enum":[null],"isRequired":true,"uniqueKey":"failure.oneOf.0.at.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"failure.oneOf.0.at","typeLabel":"string\u003cdate-time> | any"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"failure.oneOf.0","typeLabel":"object"},{"description":"The last decline, or `null`. A recorded failure pauses auto-recharge; switching it on again clears this.","enum":[null],"isRequired":true,"uniqueKey":"failure.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"failure","typeLabel":"object | any"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"available":true,"enabled":true,"threshold_credits":4503599627370495,"top_up_credits":4503599627370495,"top_up_amount_cents":1,"currency":"\u003cstring>","failure":{"code":"\u003cstring>","at":"2023-11-07T05:31:56Z"}}}},"exampleType":"generated"}},"exampleType":"generated"},"ae79dad4-609c-4cbe-8950-450f26e112d1":{"description":"Code `unauthenticated` — the Cognito JWT is missing, malformed, expired, or was rejected. An API key presented to one of the operations that declare this response lands here too: they take a session and nothing else, and that is an authentication failure, not an authorization one. That includes `GET /v1/usage` and `GET /v1/limits`, which are served by the control-plane API alone.","headers":{"X-Request-Id":{"description":"Echoed on every response, success or error. A refusal generated at the edge (401, 429, and the unmetered-key 500) carries API Gateway's own hyphenated request id after the `req_` prefix; a response from a function carries the same id without hyphens.","schema":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"oneOf":[{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["invalid_request","invalid_url","source_not_supported","unsafe_source"],"isRequired":true,"uniqueKey":"error.oneOf.0.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"invalid_request","isRequired":true,"uniqueKey":"error.oneOf.0.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.0.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.0.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.0.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.0.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.0","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["unsupported_codec","unsupported_language","duration_exceeded","size_exceeded","credits_not_refundable","upload_mismatch","max_credits_exceeded"],"isRequired":true,"uniqueKey":"error.oneOf.1.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"unprocessable_input","isRequired":true,"uniqueKey":"error.oneOf.1.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.1.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.1.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.1.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.1.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.1","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["invalid_request","invalid_url","unauthenticated","idempotency_conflict","job_not_completed","source_not_supported","feed_dead","episode_not_found","show_not_found","unsafe_source","unsupported_codec","unsupported_language","duration_exceeded","size_exceeded","content_blocked","payment_required","rate_limited","concurrency_limited","job_not_found","api_key_not_found","api_key_limit_reached","credit_lot_not_found","credits_not_refundable","engine_unavailable","processing_failed","discovery_unavailable","nothing_to_quote","internal_error","quote_not_found","group_not_found","quote_expired","quote_mismatch","quote_unverified","expected_total_mismatch","request_in_progress","account_suspended","account_closed","account_not_found","tier_unchanged","upload_quota_exceeded","upload_not_found","upload_not_received","upload_mismatch","max_credits_exceeded","oauth_request_not_found","connected_app_not_found"],"const":"unauthenticated","isRequired":true,"uniqueKey":"error.oneOf.2.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"unauthenticated","isRequired":true,"uniqueKey":"error.oneOf.2.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.2.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.2.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.2.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.2.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.2","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["idempotency_conflict","job_not_completed","api_key_limit_reached","quote_expired","quote_mismatch","quote_unverified","expected_total_mismatch","request_in_progress","account_suspended","account_closed","account_not_found","tier_unchanged","upload_not_received"],"isRequired":true,"uniqueKey":"error.oneOf.3.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"conflict","isRequired":true,"uniqueKey":"error.oneOf.3.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.3.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.3.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.3.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.3.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.3","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["feed_dead","episode_not_found","show_not_found","job_not_found","api_key_not_found","credit_lot_not_found","quote_not_found","group_not_found","upload_not_found","oauth_request_not_found","connected_app_not_found"],"isRequired":true,"uniqueKey":"error.oneOf.4.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"not_found","isRequired":true,"uniqueKey":"error.oneOf.4.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.4.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.4.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.4.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.4.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.4","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["invalid_request","invalid_url","unauthenticated","idempotency_conflict","job_not_completed","source_not_supported","feed_dead","episode_not_found","show_not_found","unsafe_source","unsupported_codec","unsupported_language","duration_exceeded","size_exceeded","content_blocked","payment_required","rate_limited","concurrency_limited","job_not_found","api_key_not_found","api_key_limit_reached","credit_lot_not_found","credits_not_refundable","engine_unavailable","processing_failed","discovery_unavailable","nothing_to_quote","internal_error","quote_not_found","group_not_found","quote_expired","quote_mismatch","quote_unverified","expected_total_mismatch","request_in_progress","account_suspended","account_closed","account_not_found","tier_unchanged","upload_quota_exceeded","upload_not_found","upload_not_received","upload_mismatch","max_credits_exceeded","oauth_request_not_found","connected_app_not_found"],"const":"content_blocked","isRequired":true,"uniqueKey":"error.oneOf.5.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"content_blocked","isRequired":true,"uniqueKey":"error.oneOf.5.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.5.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.5.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.5.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.5.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.5","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["invalid_request","invalid_url","unauthenticated","idempotency_conflict","job_not_completed","source_not_supported","feed_dead","episode_not_found","show_not_found","unsafe_source","unsupported_codec","unsupported_language","duration_exceeded","size_exceeded","content_blocked","payment_required","rate_limited","concurrency_limited","job_not_found","api_key_not_found","api_key_limit_reached","credit_lot_not_found","credits_not_refundable","engine_unavailable","processing_failed","discovery_unavailable","nothing_to_quote","internal_error","quote_not_found","group_not_found","quote_expired","quote_mismatch","quote_unverified","expected_total_mismatch","request_in_progress","account_suspended","account_closed","account_not_found","tier_unchanged","upload_quota_exceeded","upload_not_found","upload_not_received","upload_mismatch","max_credits_exceeded","oauth_request_not_found","connected_app_not_found"],"const":"payment_required","isRequired":true,"uniqueKey":"error.oneOf.6.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"payment_required","isRequired":true,"uniqueKey":"error.oneOf.6.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.6.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.6.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.6.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.6.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.6","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["rate_limited","concurrency_limited","upload_quota_exceeded"],"isRequired":true,"uniqueKey":"error.oneOf.7.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"rate_limited","isRequired":true,"uniqueKey":"error.oneOf.7.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.7.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.7.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.7.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.7.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.7","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["engine_unavailable","processing_failed","discovery_unavailable","internal_error"],"isRequired":true,"uniqueKey":"error.oneOf.8.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"unavailable","isRequired":true,"uniqueKey":"error.oneOf.8.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.8.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.8.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.8.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.8.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.8","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["invalid_request","invalid_url","unauthenticated","idempotency_conflict","job_not_completed","source_not_supported","feed_dead","episode_not_found","show_not_found","unsafe_source","unsupported_codec","unsupported_language","duration_exceeded","size_exceeded","content_blocked","payment_required","rate_limited","concurrency_limited","job_not_found","api_key_not_found","api_key_limit_reached","credit_lot_not_found","credits_not_refundable","engine_unavailable","processing_failed","discovery_unavailable","nothing_to_quote","internal_error","quote_not_found","group_not_found","quote_expired","quote_mismatch","quote_unverified","expected_total_mismatch","request_in_progress","account_suspended","account_closed","account_not_found","tier_unchanged","upload_quota_exceeded","upload_not_found","upload_not_received","upload_mismatch","max_credits_exceeded","oauth_request_not_found","connected_app_not_found"],"const":"nothing_to_quote","isRequired":true,"uniqueKey":"error.oneOf.9.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"unprocessable_input","isRequired":true,"uniqueKey":"error.oneOf.9.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.9.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.9.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.9.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.9.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.9","typeLabel":"object"}],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","type":"invalid_request","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"exampleType":"generated"},"0f94a4d0-464f-4263-aec8-30e5237f45b9":{"description":"Code `rate_limited`, e.g. plan-change rate limiting.","headers":{"X-Request-Id":{"description":"Echoed on every response, success or error. A refusal generated at the edge (401, 429, and the unmetered-key 500) carries API Gateway's own hyphenated request id after the `req_` prefix; a response from a function carries the same id without hyphens.","schema":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100}},"Retry-After":{"description":"Seconds to wait before retrying. Sent with the edge's `rate_limited` throttle refusal. Not sent with `concurrency_limited`, which clears when one of the account's own jobs reaches a terminal state — a moment the API cannot put a number on.","schema":{"type":"integer","minimum":0}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"oneOf":[{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["invalid_request","invalid_url","source_not_supported","unsafe_source"],"isRequired":true,"uniqueKey":"error.oneOf.0.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"invalid_request","isRequired":true,"uniqueKey":"error.oneOf.0.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.0.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.0.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.0.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.0.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.0","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["unsupported_codec","unsupported_language","duration_exceeded","size_exceeded","credits_not_refundable","upload_mismatch","max_credits_exceeded"],"isRequired":true,"uniqueKey":"error.oneOf.1.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"unprocessable_input","isRequired":true,"uniqueKey":"error.oneOf.1.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.1.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.1.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.1.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.1.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.1","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["invalid_request","invalid_url","unauthenticated","idempotency_conflict","job_not_completed","source_not_supported","feed_dead","episode_not_found","show_not_found","unsafe_source","unsupported_codec","unsupported_language","duration_exceeded","size_exceeded","content_blocked","payment_required","rate_limited","concurrency_limited","job_not_found","api_key_not_found","api_key_limit_reached","credit_lot_not_found","credits_not_refundable","engine_unavailable","processing_failed","discovery_unavailable","nothing_to_quote","internal_error","quote_not_found","group_not_found","quote_expired","quote_mismatch","quote_unverified","expected_total_mismatch","request_in_progress","account_suspended","account_closed","account_not_found","tier_unchanged","upload_quota_exceeded","upload_not_found","upload_not_received","upload_mismatch","max_credits_exceeded","oauth_request_not_found","connected_app_not_found"],"const":"unauthenticated","isRequired":true,"uniqueKey":"error.oneOf.2.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"unauthenticated","isRequired":true,"uniqueKey":"error.oneOf.2.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.2.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.2.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.2.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.2.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.2","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["idempotency_conflict","job_not_completed","api_key_limit_reached","quote_expired","quote_mismatch","quote_unverified","expected_total_mismatch","request_in_progress","account_suspended","account_closed","account_not_found","tier_unchanged","upload_not_received"],"isRequired":true,"uniqueKey":"error.oneOf.3.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"conflict","isRequired":true,"uniqueKey":"error.oneOf.3.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.3.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.3.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.3.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.3.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.3","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["feed_dead","episode_not_found","show_not_found","job_not_found","api_key_not_found","credit_lot_not_found","quote_not_found","group_not_found","upload_not_found","oauth_request_not_found","connected_app_not_found"],"isRequired":true,"uniqueKey":"error.oneOf.4.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"not_found","isRequired":true,"uniqueKey":"error.oneOf.4.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.4.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.4.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.4.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.4.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.4","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["invalid_request","invalid_url","unauthenticated","idempotency_conflict","job_not_completed","source_not_supported","feed_dead","episode_not_found","show_not_found","unsafe_source","unsupported_codec","unsupported_language","duration_exceeded","size_exceeded","content_blocked","payment_required","rate_limited","concurrency_limited","job_not_found","api_key_not_found","api_key_limit_reached","credit_lot_not_found","credits_not_refundable","engine_unavailable","processing_failed","discovery_unavailable","nothing_to_quote","internal_error","quote_not_found","group_not_found","quote_expired","quote_mismatch","quote_unverified","expected_total_mismatch","request_in_progress","account_suspended","account_closed","account_not_found","tier_unchanged","upload_quota_exceeded","upload_not_found","upload_not_received","upload_mismatch","max_credits_exceeded","oauth_request_not_found","connected_app_not_found"],"const":"content_blocked","isRequired":true,"uniqueKey":"error.oneOf.5.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"content_blocked","isRequired":true,"uniqueKey":"error.oneOf.5.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.5.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.5.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.5.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.5.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.5","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["invalid_request","invalid_url","unauthenticated","idempotency_conflict","job_not_completed","source_not_supported","feed_dead","episode_not_found","show_not_found","unsafe_source","unsupported_codec","unsupported_language","duration_exceeded","size_exceeded","content_blocked","payment_required","rate_limited","concurrency_limited","job_not_found","api_key_not_found","api_key_limit_reached","credit_lot_not_found","credits_not_refundable","engine_unavailable","processing_failed","discovery_unavailable","nothing_to_quote","internal_error","quote_not_found","group_not_found","quote_expired","quote_mismatch","quote_unverified","expected_total_mismatch","request_in_progress","account_suspended","account_closed","account_not_found","tier_unchanged","upload_quota_exceeded","upload_not_found","upload_not_received","upload_mismatch","max_credits_exceeded","oauth_request_not_found","connected_app_not_found"],"const":"payment_required","isRequired":true,"uniqueKey":"error.oneOf.6.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"payment_required","isRequired":true,"uniqueKey":"error.oneOf.6.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.6.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.6.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.6.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.6.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.6","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["rate_limited","concurrency_limited","upload_quota_exceeded"],"isRequired":true,"uniqueKey":"error.oneOf.7.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"rate_limited","isRequired":true,"uniqueKey":"error.oneOf.7.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.7.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.7.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.7.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.7.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.7","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["engine_unavailable","processing_failed","discovery_unavailable","internal_error"],"isRequired":true,"uniqueKey":"error.oneOf.8.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"unavailable","isRequired":true,"uniqueKey":"error.oneOf.8.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.8.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.8.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.8.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.8.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.8","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["invalid_request","invalid_url","unauthenticated","idempotency_conflict","job_not_completed","source_not_supported","feed_dead","episode_not_found","show_not_found","unsafe_source","unsupported_codec","unsupported_language","duration_exceeded","size_exceeded","content_blocked","payment_required","rate_limited","concurrency_limited","job_not_found","api_key_not_found","api_key_limit_reached","credit_lot_not_found","credits_not_refundable","engine_unavailable","processing_failed","discovery_unavailable","nothing_to_quote","internal_error","quote_not_found","group_not_found","quote_expired","quote_mismatch","quote_unverified","expected_total_mismatch","request_in_progress","account_suspended","account_closed","account_not_found","tier_unchanged","upload_quota_exceeded","upload_not_found","upload_not_received","upload_mismatch","max_credits_exceeded","oauth_request_not_found","connected_app_not_found"],"const":"nothing_to_quote","isRequired":true,"uniqueKey":"error.oneOf.9.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"unprocessable_input","isRequired":true,"uniqueKey":"error.oneOf.9.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.9.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.9.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.9.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.9.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.9","typeLabel":"object"}],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","type":"invalid_request","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"exampleType":"generated"},"219a02c4-f659-426f-9a57-bf7261e208a5":{"description":"Code `internal_error` — a call on our side failed and nothing was changed. On `POST /v1/session` this is what an unreachable identity service or an unreadable configuration answers with, deliberately rather than `401`: the session is not the problem, and telling a signed-in customer their token is bad during an outage of ours sends them into a sign-in loop. Retryable; `request_id` is what identifies it in our logs.","headers":{"X-Request-Id":{"description":"Echoed on every response, success or error. A refusal generated at the edge (401, 429, and the unmetered-key 500) carries API Gateway's own hyphenated request id after the `req_` prefix; a response from a function carries the same id without hyphens.","schema":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"oneOf":[{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["invalid_request","invalid_url","source_not_supported","unsafe_source"],"isRequired":true,"uniqueKey":"error.oneOf.0.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"invalid_request","isRequired":true,"uniqueKey":"error.oneOf.0.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.0.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.0.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.0.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.0.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.0","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["unsupported_codec","unsupported_language","duration_exceeded","size_exceeded","credits_not_refundable","upload_mismatch","max_credits_exceeded"],"isRequired":true,"uniqueKey":"error.oneOf.1.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"unprocessable_input","isRequired":true,"uniqueKey":"error.oneOf.1.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.1.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.1.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.1.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.1.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.1","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["invalid_request","invalid_url","unauthenticated","idempotency_conflict","job_not_completed","source_not_supported","feed_dead","episode_not_found","show_not_found","unsafe_source","unsupported_codec","unsupported_language","duration_exceeded","size_exceeded","content_blocked","payment_required","rate_limited","concurrency_limited","job_not_found","api_key_not_found","api_key_limit_reached","credit_lot_not_found","credits_not_refundable","engine_unavailable","processing_failed","discovery_unavailable","nothing_to_quote","internal_error","quote_not_found","group_not_found","quote_expired","quote_mismatch","quote_unverified","expected_total_mismatch","request_in_progress","account_suspended","account_closed","account_not_found","tier_unchanged","upload_quota_exceeded","upload_not_found","upload_not_received","upload_mismatch","max_credits_exceeded","oauth_request_not_found","connected_app_not_found"],"const":"unauthenticated","isRequired":true,"uniqueKey":"error.oneOf.2.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"unauthenticated","isRequired":true,"uniqueKey":"error.oneOf.2.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.2.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.2.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.2.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.2.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.2","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["idempotency_conflict","job_not_completed","api_key_limit_reached","quote_expired","quote_mismatch","quote_unverified","expected_total_mismatch","request_in_progress","account_suspended","account_closed","account_not_found","tier_unchanged","upload_not_received"],"isRequired":true,"uniqueKey":"error.oneOf.3.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"conflict","isRequired":true,"uniqueKey":"error.oneOf.3.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.3.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.3.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.3.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.3.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.3","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["feed_dead","episode_not_found","show_not_found","job_not_found","api_key_not_found","credit_lot_not_found","quote_not_found","group_not_found","upload_not_found","oauth_request_not_found","connected_app_not_found"],"isRequired":true,"uniqueKey":"error.oneOf.4.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"not_found","isRequired":true,"uniqueKey":"error.oneOf.4.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.4.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.4.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.4.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.4.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.4","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["invalid_request","invalid_url","unauthenticated","idempotency_conflict","job_not_completed","source_not_supported","feed_dead","episode_not_found","show_not_found","unsafe_source","unsupported_codec","unsupported_language","duration_exceeded","size_exceeded","content_blocked","payment_required","rate_limited","concurrency_limited","job_not_found","api_key_not_found","api_key_limit_reached","credit_lot_not_found","credits_not_refundable","engine_unavailable","processing_failed","discovery_unavailable","nothing_to_quote","internal_error","quote_not_found","group_not_found","quote_expired","quote_mismatch","quote_unverified","expected_total_mismatch","request_in_progress","account_suspended","account_closed","account_not_found","tier_unchanged","upload_quota_exceeded","upload_not_found","upload_not_received","upload_mismatch","max_credits_exceeded","oauth_request_not_found","connected_app_not_found"],"const":"content_blocked","isRequired":true,"uniqueKey":"error.oneOf.5.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"content_blocked","isRequired":true,"uniqueKey":"error.oneOf.5.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.5.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.5.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.5.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.5.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.5","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["invalid_request","invalid_url","unauthenticated","idempotency_conflict","job_not_completed","source_not_supported","feed_dead","episode_not_found","show_not_found","unsafe_source","unsupported_codec","unsupported_language","duration_exceeded","size_exceeded","content_blocked","payment_required","rate_limited","concurrency_limited","job_not_found","api_key_not_found","api_key_limit_reached","credit_lot_not_found","credits_not_refundable","engine_unavailable","processing_failed","discovery_unavailable","nothing_to_quote","internal_error","quote_not_found","group_not_found","quote_expired","quote_mismatch","quote_unverified","expected_total_mismatch","request_in_progress","account_suspended","account_closed","account_not_found","tier_unchanged","upload_quota_exceeded","upload_not_found","upload_not_received","upload_mismatch","max_credits_exceeded","oauth_request_not_found","connected_app_not_found"],"const":"payment_required","isRequired":true,"uniqueKey":"error.oneOf.6.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"payment_required","isRequired":true,"uniqueKey":"error.oneOf.6.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.6.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.6.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.6.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.6.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.6","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["rate_limited","concurrency_limited","upload_quota_exceeded"],"isRequired":true,"uniqueKey":"error.oneOf.7.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"rate_limited","isRequired":true,"uniqueKey":"error.oneOf.7.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.7.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.7.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.7.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.7.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.7","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["engine_unavailable","processing_failed","discovery_unavailable","internal_error"],"isRequired":true,"uniqueKey":"error.oneOf.8.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"unavailable","isRequired":true,"uniqueKey":"error.oneOf.8.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.8.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.8.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.8.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.8.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.8","typeLabel":"object"},{"type":"object","required":["type","code","message","doc_url","request_id","retryable"],"properties":{"code":{"type":"string","description":"Every code the API returns, and the HTTP status it comes with. `invalid_request`, `invalid_url` → 400. `unauthenticated` → 401. `payment_required` → 402. `job_not_found`, `quote_not_found`, `group_not_found`, `api_key_not_found`, `credit_lot_not_found`, `upload_not_found`, `oauth_request_not_found`, `connected_app_not_found` → 404. `idempotency_conflict`, `request_in_progress`, `job_not_completed`, `quote_expired`, `quote_mismatch`, `quote_unverified`, `expected_total_mismatch`, `account_suspended`, `account_closed`, `account_not_found`, `api_key_limit_reached`, `tier_unchanged`, `upload_not_received` → 409; `upload_not_received` is retryable once the file's PUT has landed. `source_not_supported`, `feed_dead`, `episode_not_found`, `show_not_found`, `unsafe_source`, `unsupported_codec`, `unsupported_language`, `duration_exceeded`, `size_exceeded`, `nothing_to_quote`, `credits_not_refundable`, `upload_mismatch`, `max_credits_exceeded` → 422. `content_blocked` → 451. `rate_limited`, `concurrency_limited`, `upload_quota_exceeded` → 429; `upload_quota_exceeded` is retryable, at the earliest capacity return time its message names. `internal_error`, `processing_failed` → 500. `discovery_unavailable`, `engine_unavailable` → 503. `processing_failed` also appears inside a failed job's `error` field rather than as a live status. Each code has a heading on the documentation site's errors page, which is what `doc_url` links to.","enum":["invalid_request","invalid_url","unauthenticated","idempotency_conflict","job_not_completed","source_not_supported","feed_dead","episode_not_found","show_not_found","unsafe_source","unsupported_codec","unsupported_language","duration_exceeded","size_exceeded","content_blocked","payment_required","rate_limited","concurrency_limited","job_not_found","api_key_not_found","api_key_limit_reached","credit_lot_not_found","credits_not_refundable","engine_unavailable","processing_failed","discovery_unavailable","nothing_to_quote","internal_error","quote_not_found","group_not_found","quote_expired","quote_mismatch","quote_unverified","expected_total_mismatch","request_in_progress","account_suspended","account_closed","account_not_found","tier_unchanged","upload_quota_exceeded","upload_not_found","upload_not_received","upload_mismatch","max_credits_exceeded","oauth_request_not_found","connected_app_not_found"],"const":"nothing_to_quote","isRequired":true,"uniqueKey":"error.oneOf.9.code","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"The family an error belongs to, for handling; `code` is the precise reason. `invalid_request`: something in the request is wrong — fix the integration. `unprocessable_input`: the request is well-formed but the episode or resource is outside published support. `unauthenticated`: missing, malformed, revoked or expired credential. `payment_required`: the account's credits cannot cover the ceiling. `conflict`: the resource's or the account's state refuses this request as sent — a lapsed quote, a reused idempotency key, a held account. `not_found`: the job, quote, group or key the request named does not exist for this account. `rate_limited`: over a plan limit; wait and retry. `unavailable`: a failure on our side or at a provider; retry, and quote `request_id` if it persists.","enum":["invalid_request","unprocessable_input","unauthenticated","conflict","not_found","content_blocked","payment_required","rate_limited","unavailable"],"const":"unprocessable_input","isRequired":true,"uniqueKey":"error.oneOf.9.type","typeLabel":"enum\u003cstring>"},"message":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"error.oneOf.9.message","typeLabel":"string"},"doc_url":{"type":"string","format":"uri","maxLength":300,"isRequired":true,"uniqueKey":"error.oneOf.9.doc_url","typeLabel":"string\u003curi>"},"request_id":{"type":"string","pattern":"^req_[A-Za-z0-9-]+$","maxLength":100,"isRequired":true,"uniqueKey":"error.oneOf.9.request_id","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error.oneOf.9.retryable","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"error.oneOf.9","typeLabel":"object"}],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","type":"invalid_request","message":"\u003cstring>","doc_url":"\u003cstring>","request_id":"\u003cstring>","retryable":true}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"40261ad2-b241-4d23-9b79-6f2f0fc84fa2":{"dashboardJwt":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"A Cognito access token, issued through the dashboard's own sign-up and sign-in pages (a backend-for-frontend; there is no Cognito Hosted UI) and sent as `Authorization: Bearer \u003cjwt>`. Dashboard operations require this scheme and cannot be called with an API key, with no exception. `GET /v1/usage` and `GET /v1/limits` offered both schemes from 0.8.0; 0.8.1 withdrew that, because the control-plane API serves them alone and its authorizer has no API-key branch. An `account_id` supplied by the client is ignored; all reads/writes are scoped server-side to the authenticated account.","scopes":[]}}},"servers":{"ab95c592-ddf1-4927-bb4a-1f83f0e8e07e":{"url":"https://api.audivo.dev","description":"Production API. Append the operation path, including /v1."}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"A Cognito access token, issued through the dashboard's own sign-up and sign-in pages (a backend-for-frontend; there is no Cognito Hosted UI) and sent as `Authorization: Bearer \u003cjwt>`. Dashboard operations require this scheme and cannot be called with an API key, with no exception. `GET /v1/usage` and `GET /v1/limits` offered both schemes from 0.8.0; 0.8.1 withdrew that, because the control-plane API serves them alone and its authorizer has no API-key branch. An `account_id` supplied by the client is ignored; all reads/writes are scoped server-side to the authenticated account.","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"A Cognito access token, issued through the dashboard's own sign-up and sign-in pages (a backend-for-frontend; there is no Cognito Hosted UI) and sent as `Authorization: Bearer \u003cjwt>`. Dashboard operations require this scheme and cannot be called with an API key, with no exception. `GET /v1/usage` and `GET /v1/limits` offered both schemes from 0.8.0; 0.8.1 withdrew that, because the control-plane API serves them alone and its authorizer has no API-key branch. An `account_id` supplied by the client is ignored; all reads/writes are scoped server-side to the authenticated account.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"dashboardJwt","name":"Authorization"}],"title":"dashboardJwt"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"hark-5cc9dfca","siteName":"Audivo","title":"Whether this account tops itself up, and on what terms - Audivo","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-02T10:13:28.301Z","originalFileLocation":"api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms.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=\"The account\u0026#x27;s auto-recharge setting and the figures it would use. The figures are per tier and not chosen by the caller. The threshold is a tenth of the tier\u0026#x27;s included allowance and the top-up is one more month of it at that month\u0026#x27;s price, so the same rule reads sensibly from a 1,200-credit plan to a 30,000-credit one, where any flat number would be a rounding error at one end and the whole allowance at the other. It also means a top-up needs no Stripe product that a subscription does not already have. available is false on the free tier, whose grant is one-time and which has no price to charge; every figure is then null. failure carries the provider\u0026#x27;s decline code and when it happened, and nothing else — the message beside it at Stripe quotes the card. A recorded failure also pauses auto-recharge, because an account below its floor would otherwise re-present a dead card on every confirm; the customer clears it by switching the setting back on. A read, so it stays open in every account state.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Audivo\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hark-5cc9dfca/8y4x_mdUqdXG6Y0w/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/hark-5cc9dfca/8y4x_mdUqdXG6Y0w/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hark-5cc9dfca/8y4x_mdUqdXG6Y0w/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/hark-5cc9dfca/8y4x_mdUqdXG6Y0w/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/hark-5cc9dfca/8y4x_mdUqdXG6Y0w/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hark-5cc9dfca/8y4x_mdUqdXG6Y0w/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hark-5cc9dfca/8y4x_mdUqdXG6Y0w/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/hark-5cc9dfca/8y4x_mdUqdXG6Y0w/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/hark-5cc9dfca/8y4x_mdUqdXG6Y0w/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Whether this account tops itself up, and on what terms - Audivo\">\u003cmeta data-mint-head property=\"og:description\" content=\"The account\u0026#x27;s auto-recharge setting and the figures it would use. The figures are per tier and not chosen by the caller. The threshold is a tenth of the tier\u0026#x27;s included allowance and the top-up is one more month of it at that month\u0026#x27;s price, so the same rule reads sensibly from a 1,200-credit plan to a 30,000-credit one, where any flat number would be a rounding error at one end and the whole allowance at the other. It also means a top-up needs no Stripe product that a subscription does not already have. available is false on the free tier, whose grant is one-time and which has no price to charge; every figure is then null. failure carries the provider\u0026#x27;s decline code and when it happened, and nothing else — the message beside it at Stripe quotes the card. A recorded failure also pauses auto-recharge, because an account below its floor would otherwise re-present a dead card on every confirm; the customer clears it by switching the setting back on. A read, so it stays open in every account state.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Audivo\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.audivo.dev/api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://hark-5cc9dfca.mintlify.app/_mintlify/api/og/v2?division=Billing\u0026amp;title=Whether+this+account+tops+itself+up%2C+and+on+what+terms\u0026amp;description=The+account%27s+auto-recharge+setting+and+the+figures+it+would+use.%0A%0A**The+figures+are+per+tier+and+not+chosen+by+the+caller.**+The+threshold+is+a+tenth+of+the+ti\u0026amp;theme=1f6a5cf39cb6ad43e1c26c30\u0026amp;signature=5e6a95cf4b9fe4a0eb519032ed567ccef5a829ff66e67391f81f3b61a53d75d4\">\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=\"Whether this account tops itself up, and on what terms - Audivo\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The account\u0026#x27;s auto-recharge setting and the figures it would use. The figures are per tier and not chosen by the caller. The threshold is a tenth of the tier\u0026#x27;s included allowance and the top-up is one more month of it at that month\u0026#x27;s price, so the same rule reads sensibly from a 1,200-credit plan to a 30,000-credit one, where any flat number would be a rounding error at one end and the whole allowance at the other. It also means a top-up needs no Stripe product that a subscription does not already have. available is false on the free tier, whose grant is one-time and which has no price to charge; every figure is then null. failure carries the provider\u0026#x27;s decline code and when it happened, and nothing else — the message beside it at Stripe quotes the card. A recorded failure also pauses auto-recharge, because an account below its floor would otherwise re-present a dead card on every confirm; the customer clears it by switching the setting back on. A read, so it stays open in every account state.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hark-5cc9dfca.mintlify.app/_mintlify/api/og/v2?division=Billing\u0026amp;title=Whether+this+account+tops+itself+up%2C+and+on+what+terms\u0026amp;description=The+account%27s+auto-recharge+setting+and+the+figures+it+would+use.%0A%0A**The+figures+are+per+tier+and+not+chosen+by+the+caller.**+The+threshold+is+a+tenth+of+the+ti\u0026amp;theme=1f6a5cf39cb6ad43e1c26c30\u0026amp;signature=5e6a95cf4b9fe4a0eb519032ed567ccef5a829ff66e67391f81f3b61a53d75d4\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/hark-5cc9dfca/8y4x_mdUqdXG6Y0w/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Audivo\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1f6f5f\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.audivo.dev/api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.audivo.dev/#organization\",\"name\":\"Audivo\",\"url\":\"https://docs.audivo.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/hark-5cc9dfca/xZqIgLIsKXAcTJ_E/logo/light.png?fit=max\u0026auto=format\u0026n=xZqIgLIsKXAcTJ_E\u0026q=85\u0026s=290108566f8ad3bd0fda322b7324bbf2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.audivo.dev#website\",\"name\":\"Audivo\",\"url\":\"https://docs.audivo.dev\",\"publisher\":{\"@id\":\"https://docs.audivo.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.audivo.dev/api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms#webpage\",\"url\":\"https://docs.audivo.dev/api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms\",\"name\":\"Whether this account tops itself up, and on what terms\",\"description\":\"The account's auto-recharge setting and the figures it would use. The figures are per tier and not chosen by the caller. The threshold is a tenth of the tier's included allowance and the top-up is one more month of it at that month's price, so the same rule reads sensibly from a 1,200-credit plan to a 30,000-credit one, where any flat number would be a rounding error at one end and the whole allowance at the other. It also means a top-up needs no Stripe product that a subscription does not already have. available is false on the free tier, whose grant is one-time and which has no price to charge; every figure is then null. failure carries the provider's decline code and when it happened, and nothing else — the message beside it at Stripe quotes the card. A recorded failure also pauses auto-recharge, because an account below its floor would otherwise re-present a dead card on every confirm; the customer clears it by switching the setting back on. A read, so it stays open in every account state.\",\"dateModified\":\"2026-10-02T10:13:28.301Z\",\"isPartOf\":{\"@id\":\"https://docs.audivo.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.audivo.dev/api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.audivo.dev/api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Billing\",\"item\":\"https://docs.audivo.dev/api-reference/billing/create-a-stripe-checkout-session\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Whether this account tops itself up, and on what terms\",\"item\":\"https://docs.audivo.dev/api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.audivo.dev/api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms#apireference\",\"headline\":\"Whether this account tops itself up, and on what terms\",\"name\":\"Whether this account tops itself up, and on what terms\",\"description\":\"The account's auto-recharge setting and the figures it would use. The figures are per tier and not chosen by the caller. The threshold is a tenth of the tier's included allowance and the top-up is one more month of it at that month's price, so the same rule reads sensibly from a 1,200-credit plan to a 30,000-credit one, where any flat number would be a rounding error at one end and the whole allowance at the other. It also means a top-up needs no Stripe product that a subscription does not already have. available is false on the free tier, whose grant is one-time and which has no price to charge; every figure is then null. failure carries the provider's decline code and when it happened, and nothing else — the message beside it at Stripe quotes the card. A recorded failure also pauses auto-recharge, because an account below its floor would otherwise re-present a dead card on every confirm; the customer clears it by switching the setting back on. A read, so it stays open in every account state.\",\"url\":\"https://docs.audivo.dev/api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms\",\"mainEntityOfPage\":{\"@id\":\"https://docs.audivo.dev/api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms#webpage\"},\"dateModified\":\"2026-10-02T10:13:28.301Z\",\"publisher\":{\"@id\":\"https://docs.audivo.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.audivo.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Audivo\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Audivo","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API Reference","groups":[{"group":"Transcripts","pages":[{"title":"Create or attach to a transcription job, or get an instant result","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/transcripts","href":"/api-reference/transcripts/create-or-attach-to-a-transcription-job-or-get-an-instant-result"},{"title":"Poll job status, progress, and (once completed) the transcript","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/transcripts/{job_id}","href":"/api-reference/transcripts/poll-job-status-progress-and-once-completed-the-transcript"},{"title":"Direct cached fetch of an episode's transcript","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/episodes/{episode_id}/transcript","href":"/api-reference/transcripts/direct-cached-fetch-of-an-episodes-transcript"},{"title":"Re-read a transcript this account has already paid for","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/reads/{read_id}","href":"/api-reference/transcripts/re-read-a-transcript-this-account-has-already-paid-for"}]},{"group":"Catalog","pages":[{"title":"Find shows by name","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/search/shows","href":"/api-reference/catalog/find-shows-by-name"},{"title":"A category chart of a chosen size, capped by tier","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/charts","href":"/api-reference/catalog/a-category-chart-of-a-chosen-size-capped-by-tier"},{"title":"Episode metadata for a show","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/shows/{show_id}/episodes","href":"/api-reference/catalog/episode-metadata-for-a-show"},{"title":"Resolve a podcast pointer to canonical IDs without creating a job","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/resolve","href":"/api-reference/catalog/resolve-a-podcast-pointer-to-canonical-ids-without-creating-a-job"}]},{"group":"Quotes","pages":[{"title":"Price a selection without spending","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/quotes","href":"/api-reference/quotes/price-a-selection-without-spending"},{"title":"Spend what a quote priced, as one job group","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/quotes/{quote_id}/confirm","href":"/api-reference/quotes/spend-what-a-quote-priced-as-one-job-group"}]},{"group":"Uploads","pages":[{"title":"Announce a file to upload","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/uploads","href":"/api-reference/uploads/announce-a-file-to-upload"}]},{"group":"Groups","pages":[{"title":"List the caller's job groups, newest first","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/groups","href":"/api-reference/groups/list-the-callers-job-groups-newest-first"},{"title":"Read one job group's rollup","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/groups/{group_id}","href":"/api-reference/groups/read-one-job-groups-rollup"},{"title":"Cancel a group's members that have not started","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/groups/{group_id}/cancel","href":"/api-reference/groups/cancel-a-groups-members-that-have-not-started"}]},{"group":"Account","pages":[{"title":"Account credit balance and period usage","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/usage","href":"/api-reference/account/account-credit-balance-and-period-usage"},{"title":"Exact rate/concurrency/duration/size limits for the caller's tier","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/limits","href":"/api-reference/account/exact-rateconcurrencydurationsize-limits-for-the-callers-tier"},{"title":"Pinned engine route and support tier per language","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/languages","href":"/api-reference/account/pinned-engine-route-and-support-tier-per-language"},{"title":"The account's recent API requests and what each one cost","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/logs","href":"/api-reference/account/the-accounts-recent-api-requests-and-what-each-one-cost"}]},{"group":"Session","pages":[{"title":"Establish the signed-in user's Audivo session","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/session","href":"/api-reference/session/establish-the-signed-in-users-audivo-session"}]},{"group":"API Keys","pages":[{"title":"List API keys for the account","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/api-keys","href":"/api-reference/api-keys/list-api-keys-for-the-account"},{"title":"Create a labeled API key","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/api-keys","href":"/api-reference/api-keys/create-a-labeled-api-key"},{"title":"Revoke an API key","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/api-keys/{key_id}","href":"/api-reference/api-keys/revoke-an-api-key"}]},{"group":"Connected Apps","pages":[{"title":"Read a pending connection request","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/oauth/requests/{request_id}","href":"/api-reference/connected-apps/read-a-pending-connection-request"},{"title":"Approve or decline a connection request","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/oauth/requests/{request_id}/decision","href":"/api-reference/connected-apps/approve-or-decline-a-connection-request"},{"title":"List the account's connected apps","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/connected-apps","href":"/api-reference/connected-apps/list-the-accounts-connected-apps"},{"title":"Revoke a connected app","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/connected-apps/{grant_id}","href":"/api-reference/connected-apps/revoke-a-connected-app"}]},{"group":"Billing","pages":[{"title":"Create a Stripe Checkout session","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/billing/checkout","href":"/api-reference/billing/create-a-stripe-checkout-session"},{"title":"Create a Stripe Customer Portal session","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/billing/portal","href":"/api-reference/billing/create-a-stripe-customer-portal-session"},{"title":"Normalized invoice/payment history","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/billing/invoices","href":"/api-reference/billing/normalized-invoicepayment-history"},{"title":"The account's stored billing address","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/billing/address","href":"/api-reference/billing/the-accounts-stored-billing-address"},{"title":"Store the account's billing address","description":"Replaces the stored billing address with the one sent. A whole address, not a patch: a partial update of a postal address is how a customer who moves from a country with states to one without ends up with a province that is no longer theirs.\n\nWhat Stripe holds is collected separately, at Checkout, and applies to the invoice being paid. This is the account's own record and what the settings form renders.","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/billing/address","href":"/api-reference/billing/store-the-accounts-billing-address"},{"title":"Whether this account tops itself up, and on what terms","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/billing/auto-recharge","href":"/api-reference/billing/whether-this-account-tops-itself-up-and-on-what-terms"},{"title":"Turn auto-recharge on or off","description":"Switches auto-recharge on or off. Switching it on also clears a recorded decline, which is how a customer retries after fixing their card.\n\nRefused with `invalid_request` on a tier that has no price to charge.\n\n**Turning this on does not rescue the request that trips the floor.** A card charge and its round trip do not fit inside a request's budget, so the confirm that crosses the threshold is still refused for insufficient credit and the top-up lands behind it. What this buys is that the *next* request finds the credit there.","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/billing/auto-recharge","href":"/api-reference/billing/turn-auto-recharge-on-or-off"},{"title":"Refund an eligible unused paid-credit lot","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/billing/refund","href":"/api-reference/billing/refund-an-eligible-unused-paid-credit-lot"}]},{"group":"Data","pages":[{"title":"Export the account's portable data","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/data/export","href":"/api-reference/data/export-the-accounts-portable-data"},{"title":"Delete the account and account-linked data","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/data","href":"/api-reference/data/delete-the-account-and-account-linked-data"}]}]}]},"basePath":"","title":"Whether this account tops itself up, and on what terms - Audivo","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-B7XKH4J3.js","utils-lOYzL7z-.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DF6jUUIM.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dpsj5f7C.js","snippetPresets-CYeiDe8v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CUFz1YZ_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D8H_iLS4.js","shallow-DdluZBHX.js","getApiPlaygroundDisplay-B9922vev.js","CodeSnippet-CMoRNGYs.js","CodeSnippets-DwyrPHuw.js","Page-DSVu9Ucl.js","getPastedJson-G-zIvlHh.js","icon-B03fnEy0.js","MethodPill-CW7teklc.js","DuplicateIcon-CtO8eekd.js","createIcon-DZTKdM_A.js","DynamicMarkdown-D5M2At0B.js","SectionHeading-C_2NaA2U.js","axios-vUo_bRtp.js","Markdown-D7QRHV3m.js","clsx-D1Z-ELXV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-lvhuD9Du.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CKfC4ywL.js"]}