The billing address this account has saved, or null when it has saved none.
It is read from the account, not from Stripe. The settings form reads this back on every visit, and an account that has never checked out has no Stripe customer to read from — so the address is stored on the account row, where it exists whether or not the customer has ever paid, and where it does not cost a third-party round trip to render a form.
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 stored billing address, or null.
The stored billing address, or null when this account has never saved one. null rather than a 404: an account with no address is not a missing resource, it is an account whose settings form has an empty section, and answering 404 would make the page treat a normal state as an error.
The postal address a subscription is billed to, in Stripe's own address field names so that what this account stores and what a Checkout session collects are the same shape rather than two that have to be mapped.
Only line1, city and country are required, and that is a deliberate refusal to over-validate. A postal code is not universal (Ireland, Hong Kong and the UAE among others), and a state or province is meaningful in a minority of countries; requiring either would reject real addresses from real customers to gain nothing a payment processor has asked for. Stripe itself requires only the country.
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/the-accounts-stored-billing-address","slug":"/api-reference/billing/the-accounts-stored-billing-address","pageMetadata":{"title":"The account's stored billing address","description":"The billing address this account has saved, or `null` when it has saved none.\n\n**It is read from the account, not from Stripe.** The settings form reads this back on every visit, and an account that has never checked out has no Stripe customer to read from — so the address is stored on the account row, where it exists whether or not the customer has ever paid, and where it does not cost a third-party round trip to render a form.\n\nA read, so it stays open in every account state.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/billing/address","href":"/api-reference/billing/the-accounts-stored-billing-address","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 p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"The billing address this account has saved, or \", _jsx(_components.code, {\n children: \"null\"\n }), \" when it has saved none.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"It is read from the account, not from Stripe.\"\n }), \" The settings form reads this back on every visit, and an account that has never checked out has no Stripe customer to read from — so the address is stored on the account row, where it exists whether or not the customer has ever paid, and where it does not cost a third-party round trip to render a form.\"]\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":"The account's stored billing address","description":"The billing address this account has saved, or `null` when it has saved none.\n\n**It is read from the account, not from Stripe.** The settings form reads this back on every visit, and an account that has never checked out has no Stripe customer to read from — so the address is stored on the account row, where it exists whether or not the customer has ever paid, and where it does not cost a third-party round trip to render a form.\n\nA read, so it stays open in every account state.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/billing/address","href":"/api-reference/billing/the-accounts-stored-billing-address","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getBillingAddress","tags":["Billing"],"summary":"The account's stored billing address","security":["3bd8d0c6-d62c-43f8-bbb4-fd3112b9652f"],"description":"The billing address this account has saved, or `null` when it has saved none.\n\n**It is read from the account, not from Stripe.** The settings form reads this back on every visit, and an account that has never checked out has no Stripe customer to read from — so the address is stored on the account row, where it exists whether or not the customer has ever paid, and where it does not cost a third-party round trip to render a form.\n\nA read, so it stays open in every account state.","responses":{"200":"c477c1a4-b842-4a84-bac4-d77976c6da88","401":"ed39c2b9-1318-44e5-8d8a-4d25337e8ffd","429":"56aa73a2-256a-4570-9793-7dca6585d586","500":"fe3bef4f-bc94-46eb-8782-f3aca9349a56"},"method":"get","type":"path","servers":["ab95c592-ddf1-4927-bb4a-1f83f0e8e07e"],"path":"/v1/billing/address","baseUrlOptions":["https://api.audivo.dev"],"title":"The account's stored billing address","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"responses":{"c477c1a4-b842-4a84-bac4-d77976c6da88":{"description":"The stored billing address, or `null`.","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":["address"],"description":"The stored billing address, or `null` when this account has never saved one. `null` rather than a `404`: an account with no address is not a missing resource, it is an account whose settings form has an empty section, and answering `404` would make the page treat a normal state as an error.","properties":{"address":{"oneOf":[{"type":"object","description":"The postal address a subscription is billed to, in Stripe's own address field names so that what this account stores and what a Checkout session collects are the same shape rather than two that have to be mapped.\n\n**Only `line1`, `city` and `country` are required, and that is a deliberate refusal to over-validate.** A postal code is not universal (Ireland, Hong Kong and the UAE among others), and a state or province is meaningful in a minority of countries; requiring either would reject real addresses from real customers to gain nothing a payment processor has asked for. Stripe itself requires only the country.","required":["line1","city","country"],"properties":{"line1":{"type":"string","minLength":1,"maxLength":200,"isRequired":true,"uniqueKey":"address.oneOf.0.line1","typeLabel":"string"},"city":{"type":"string","minLength":1,"maxLength":100,"isRequired":true,"uniqueKey":"address.oneOf.0.city","typeLabel":"string"},"country":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2, upper-case — the form Stripe stores and returns.","isRequired":true,"uniqueKey":"address.oneOf.0.country","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":100,"description":"Who the invoice is addressed to, when that is not the account holder's own name.","uniqueKey":"address.oneOf.0.name","typeLabel":"string"},"line2":{"type":"string","minLength":1,"maxLength":200,"uniqueKey":"address.oneOf.0.line2","typeLabel":"string"},"state":{"type":"string","minLength":1,"maxLength":100,"description":"State, province, or region, where the country has them.","uniqueKey":"address.oneOf.0.state","typeLabel":"string"},"postal_code":{"type":"string","minLength":1,"maxLength":20,"uniqueKey":"address.oneOf.0.postal_code","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"address.oneOf.0","typeLabel":"object"},{"enum":[null],"isRequired":true,"uniqueKey":"address.oneOf.1","typeLabel":"any"}],"isRequired":true,"uniqueKey":"address","typeLabel":"object | any"}},"uniqueKey":"","typeLabel":"object"},"examples":{"stored":{"title":"stored","value":{"address":{"line1":"1 Market Street","line2":"Floor 6","city":"San Francisco","state":"CA","postal_code":"94105","country":"US"}}}},"exampleType":"examples"}},"exampleType":"examples"},"ed39c2b9-1318-44e5-8d8a-4d25337e8ffd":{"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"},"56aa73a2-256a-4570-9793-7dca6585d586":{"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"},"fe3bef4f-bc94-46eb-8782-f3aca9349a56":{"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":{"3bd8d0c6-d62c-43f8-bbb4-fd3112b9652f":{"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":"The account's stored billing address - Audivo","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-02T10:13:28.278Z","originalFileLocation":"api-reference/billing/the-accounts-stored-billing-address.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 billing address this account has saved, or null when it has saved none. It is read from the account, not from Stripe. The settings form reads this back on every visit, and an account that has never checked out has no Stripe customer to read from — so the address is stored on the account row, where it exists whether or not the customer has ever paid, and where it does not cost a third-party round trip to render a form. 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=\"The account\u0026#x27;s stored billing address - Audivo\">\u003cmeta data-mint-head property=\"og:description\" content=\"The billing address this account has saved, or null when it has saved none. It is read from the account, not from Stripe. The settings form reads this back on every visit, and an account that has never checked out has no Stripe customer to read from — so the address is stored on the account row, where it exists whether or not the customer has ever paid, and where it does not cost a third-party round trip to render a form. 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/the-accounts-stored-billing-address\">\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=The+account%27s+stored+billing+address\u0026amp;description=The+billing+address+this+account+has+saved%2C+or+%60null%60+when+it+has+saved+none.%0A%0A**It+is+read+from+the+account%2C+not+from+Stripe.**+The+settings+form+reads+this+ba\u0026amp;theme=1f6a5cf39cb6ad43e1c26c30\u0026amp;signature=4b36d33d2c1c99a9a43e760ad238bc99a5be3c56c850b887d766ee899ae4b053\">\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=\"The account\u0026#x27;s stored billing address - Audivo\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The billing address this account has saved, or null when it has saved none. It is read from the account, not from Stripe. The settings form reads this back on every visit, and an account that has never checked out has no Stripe customer to read from — so the address is stored on the account row, where it exists whether or not the customer has ever paid, and where it does not cost a third-party round trip to render a form. 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=The+account%27s+stored+billing+address\u0026amp;description=The+billing+address+this+account+has+saved%2C+or+%60null%60+when+it+has+saved+none.%0A%0A**It+is+read+from+the+account%2C+not+from+Stripe.**+The+settings+form+reads+this+ba\u0026amp;theme=1f6a5cf39cb6ad43e1c26c30\u0026amp;signature=4b36d33d2c1c99a9a43e760ad238bc99a5be3c56c850b887d766ee899ae4b053\">\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/the-accounts-stored-billing-address\">\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/the-accounts-stored-billing-address.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/the-accounts-stored-billing-address#webpage\",\"url\":\"https://docs.audivo.dev/api-reference/billing/the-accounts-stored-billing-address\",\"name\":\"The account's stored billing address\",\"description\":\"The billing address this account has saved, or null when it has saved none. It is read from the account, not from Stripe. The settings form reads this back on every visit, and an account that has never checked out has no Stripe customer to read from — so the address is stored on the account row, where it exists whether or not the customer has ever paid, and where it does not cost a third-party round trip to render a form. A read, so it stays open in every account state.\",\"dateModified\":\"2026-10-02T10:13:28.278Z\",\"isPartOf\":{\"@id\":\"https://docs.audivo.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.audivo.dev/api-reference/billing/the-accounts-stored-billing-address#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.audivo.dev/api-reference/billing/the-accounts-stored-billing-address#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\":\"The account's stored billing address\",\"item\":\"https://docs.audivo.dev/api-reference/billing/the-accounts-stored-billing-address\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.audivo.dev/api-reference/billing/the-accounts-stored-billing-address#apireference\",\"headline\":\"The account's stored billing address\",\"name\":\"The account's stored billing address\",\"description\":\"The billing address this account has saved, or null when it has saved none. It is read from the account, not from Stripe. The settings form reads this back on every visit, and an account that has never checked out has no Stripe customer to read from — so the address is stored on the account row, where it exists whether or not the customer has ever paid, and where it does not cost a third-party round trip to render a form. A read, so it stays open in every account state.\",\"url\":\"https://docs.audivo.dev/api-reference/billing/the-accounts-stored-billing-address\",\"mainEntityOfPage\":{\"@id\":\"https://docs.audivo.dev/api-reference/billing/the-accounts-stored-billing-address#webpage\"},\"dateModified\":\"2026-10-02T10:13:28.278Z\",\"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","description":"The caller's own invoices, newest first, paged with `limit` and `cursor`. An account that has never paid for anything has an empty page rather than an error — including one still carrying the placeholder customer a signup writes, which has no Stripe history to read.\n\nDraft invoices are not listed. A draft is an invoice Stripe has not issued yet; showing one would put a figure on a billing page that nobody owes and that can still change.\n\nA read, so it stays open in every account state: a suspended or closed customer needs their receipts more than an active one does.","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","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":"The account's stored billing address - 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"]}