OpenRouter will not charge you for zero token responses
OpenRouter provides zero completion insurance to protect users from being charged for failed or empty responses. When a response contains no output tokens and either has a blank finish reason or an error, you will not be charged for the model’s token usage, even if the underlying provider charges for prompt processing.
Zero completion insurance is automatically enabled for all accounts and requires no configuration.
Zero completion insurance automatically applies to all requests across all models and providers. When a response meets either of these conditions, no credits will be deducted for the model’s prompt, completion, or reasoning tokens:
The response has zero completion tokens AND a blank/null finish reason
Zero completion insurance covers the model’s inference cost: prompt tokens, completion tokens, and reasoning tokens are not billed when a response qualifies.For text-to-speech requests, usable output means that the response stream delivered format-valid audio: at least one complete MPEG frame for MP3 or one complete sample for PCM. Empty, invalid, and truncated output is not billed. Character-priced requests are billed for the full input once usable audio is delivered, including when the client cancels after receiving partial audio.For image generation requests, usable output means the response delivered at least one image whose base64 payload is non-empty and decodable. Responses with no image data, an empty payload, or a payload that is not valid base64 are rejected as upstream failures and are not billed. Validation checks base64 decodability only — it does not inspect the decoded bytes’ format, so all valid output formats (including AVIF and HEIC) are delivered normally.It does not cover charges for auxiliary services that already ran before the response failed. Work performed by web search (e.g. per-request search fees), file parsing / PDF OCR, and web fetch may still be billed based on the work actually performed, even when the model’s response subsequently ends in an error. (In some failure cases, for example an upstream failure that produces no tokens at all, these charges are skipped as well.) When billed, these charges appear in the request’s usage breakdown.
On your activity page, requests that were protected by zero completion insurance will show zero credits deducted for token usage. This applies even in cases where OpenRouter may have been charged by the provider for prompt processing. If a protected request also used auxiliary services such as web search or file parsing, only those service charges are deducted.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OpenRouter | Documentation","colors":{"primary":"#7624F4","light":"#7624F4","dark":"#C8FF00"},"logo":{"light":"https://mintcdn.com/openrouter-d02e98a0/ksNSeB_K7gD-BUDh/assets/logo-v2-light.svg?fit=max\u0026auto=format\u0026n=ksNSeB_K7gD-BUDh\u0026q=85\u0026s=690e45873843519efe02bcbe45795dac","dark":"https://mintcdn.com/openrouter-d02e98a0/ksNSeB_K7gD-BUDh/assets/logo-v2-dark.svg?fit=max\u0026auto=format\u0026n=ksNSeB_K7gD-BUDh\u0026q=85\u0026s=8ba2f49b11cd9839c37dd03c62537ebd","href":"https://openrouter.ai"},"favicon":"https://mintcdn.com/openrouter-d02e98a0/n3IgkjAMQY8SgOLX/assets/favicon-v2.svg?fit=max\u0026auto=format\u0026n=n3IgkjAMQY8SgOLX\u0026q=85\u0026s=f49800815fcadee8a07dcc093051c2de","appearance":{"default":"dark"},"background":{"color":{"light":"#FCFCFE","dark":"#03080A"}},"navbar":{"links":[{"href":"https://openrouter.ai/models","label":"Models"},{"href":"https://openrouter.ai/benchmarks","label":"Benchmarks"},{"href":"https://openrouter.ai/chat","label":"Chat"},{"href":"https://openrouter.ai/rankings","label":"Rankings"},{"href":"https://openrouter.ai/apps","label":"Apps"},{"href":"https://openrouter.ai/ori","label":"Ori"},{"href":"https://openrouter.ai/pricing","label":"Pricing"}],"primary":{"type":"button","label":"Sign In","href":"https://openrouter.ai/sign-in"}},"seo":{"metatags":{"canonical":"https://openrouter.ai/docs"}},"fonts":{"family":"Plus Jakarta Sans","weight":400},"integrations":{"ga4":{"measurementId":"G-R8YZRJS2XN"},"posthog":{"apiKey":"phc_7ToS2jDeWBlMu4n2JoNzoA1FnArdKwFMFoHVnAqQ6O1","apiHost":"https://us.i.posthog.com"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"openrouter-d02e98a0","hasAudioNarration":false,"actualSubdomain":"openrouter-d02e98a0","customDomains":["openrouter.ai"],"gitSource":{"_id":"6ad7fa92692c7c940ff17a31","type":"github","owner":"openrouterteam","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"collectionId":"857b68c3-cde9-4c7a-b45f-8477fff63b5c","liveDeploymentHistoryId":"6aecd163852e46238472000d","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aecd163852e46238472000d"},"feedback":{"contextualFeedback":{"allowEmail":true},"agentFeedback":true,"issues":false,"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aed06a81189461718d0f947","clientVersion":"0.0.4071","searchFilterCounts":[{"language":"default","tag":"API Reference","count":303},{"language":"default","tag":"Client SDKs","count":244},{"language":"default","tag":"Docs","count":155},{"language":"default","tag":"Cookbook","count":64},{"language":"default","tag":"Agent SDK","count":42},{"language":"default","tag":"TypeScript SDK","count":40},{"language":"default","tag":"Go SDK","count":39},{"language":"default","tag":"Python SDK","count":39},{"language":"default","tag":"Observability","count":29},{"language":"default","tag":"Features","count":23}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"starterQuestions":[{"_id":"6ad8ee98f69c2f90c2a8cc12","deploymentId":"6a349898c5627d470e2c2ff7","questionText":"How do I get started using decision models like Jev?","status":"active","generatedBy":"manual","createdAt":"2026-10-21T16:55:52.120Z","updatedAt":"2026-10-21T16:55:52.120Z","__v":0}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/docs/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n:root{--inverse: 3 8 10;--inverse-foreground: 252 252 254;--tooltip-background: var(--inverse);--tooltip-foreground: var(--inverse-foreground)}code,pre,pre code,.code-block code,[class*=\"code\"] code{font-family:'Geist Mono', ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace}::selection{background:rgb(118 36 244 / 0.25)}.dark ::selection,html.dark ::selection{background:rgb(200 255 0 / 0.25);color:inherit}.dark,[data-theme=\"dark\"],html.dark{--primary: 200 255 0;--primary-light: 200 255 0;--primary-dark: 200 255 0;--light-primary: 200 255 0;--primary-foreground: 3 8 10;--inverse: 252 252 254;--inverse-foreground: 3 8 10;--default-border-color: rgb(252 252 254 / 0.14)}#navbar{border-radius:0}#sidebar a[aria-current=\"page\"],nav[aria-label=\"Pages\"] a[aria-current=\"page\"]{border-radius:8px}[data-component-part=\"code-block-root\"]{border-radius:8px}a:not([class]){text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:rgb(0 0 0 / 0.4)}a:not([class]):hover{text-decoration-color:currentColor}.dark a:not([class]),html.dark a:not([class]){text-decoration-color:rgb(255 255 255 / 0.4)}.dark a:not([class]):hover,html.dark a:not([class]):hover{text-decoration-color:currentColor}.nav-tag-pill-text{background:transparent!important;color:rgb(0 0 0 / 0.5)!important;border:1px solid rgb(0 0 0 / 0.2)!important}.dark .nav-tag-pill-text,html.dark .nav-tag-pill-text{background:transparent!important;color:rgb(252 252 254 / 0.5)!important;border:1px solid rgb(252 252 254 / 0.2)!important}.nav-logo{height:1.5rem}.dark nav[aria-label=\"Pages\"] button[aria-expanded] svg.transition-transform,html.dark nav[aria-label=\"Pages\"] button[aria-expanded] svg.transition-transform{color:rgb(252 252 254 / 0.627)}.dark nav[aria-label=\"Pages\"] button[aria-expanded]:hover svg.transition-transform,html.dark nav[aria-label=\"Pages\"] button[aria-expanded]:hover svg.transition-transform{color:rgb(252 252 254)}nav[aria-label=\"Pages\"] button[aria-expanded] svg.transition-transform{width:0.625rem;height:0.625rem}[role=\"tooltip\"][data-side],[data-radix-popper-content-wrapper]>div[data-state=\"delayed-open\"],[data-radix-popper-content-wrapper]>div[data-state=\"instant-open\"]{background-color:rgb(var(--tooltip-background))!important;color:rgb(var(--tooltip-foreground))!important}.callout [data-component-part=\"callout-content\"]>.code-block:first-child{margin-top:0}.callout [data-component-part=\"callout-content\"]>.code-block:last-child{margin-bottom:0}[data-floating-buttons] button{background-color:rgb(241 239 245)}.dark [data-floating-buttons] button,html.dark [data-floating-buttons] button{background-color:rgb(40 38 44)}[data-component-part=\"update-tag\"]{border:1px solid rgb(0 0 0 / 0.2);border-radius:9999px;padding:0.125rem 0.625rem;font-size:0.75rem;line-height:1.25rem;color:rgb(0 0 0 / 0.6)}.dark [data-component-part=\"update-tag\"],html.dark [data-component-part=\"update-tag\"]{border-color:rgb(252 252 254 / 0.2);color:rgb(252 252 254 / 0.6)}#topbar-cta-button svg{display:none}#topbar-cta-button a{padding-right:0.75rem}#topbar-cta-button .bg-primary-dark{background-color:rgb(var(--primary))}.dark #topbar-cta-button .text-white,html.dark #topbar-cta-button .text-white{color:rgb(3 8 10)}.dark #changelog-filters-content button.bg-primary,html.dark #changelog-filters-content button.bg-primary{color:rgb(3 8 10 / 0.9)!important}.changelog-status-badge{margin-left:0.5rem}.changelog-status-badge[data-color=\"gray\"]{border:1px solid rgb(3 8 10 / 0.3)!important}.dark .changelog-status-badge[data-color=\"gray\"],html.dark .changelog-status-badge[data-color=\"gray\"]{border-color:rgb(252 252 254 / 0.4)!important}.mermaid>svg{margin-inline:auto}.support-matrix table{font-size:0.8125rem}.support-matrix td,.support-matrix th{min-width:0;padding-right:0.5rem;white-space:nowrap}.support-matrix th code{padding-left:0.25rem;padding-right:0.25rem;font-size:0.6875rem}.pr-fig,.pr-mini{--pr-ink: #03080a;--pr-muted: rgb(3 8 10 / 0.69);--pr-rule: rgb(3 8 10 / 0.12);--pr-surface: #ffffff;--pr-positive-text: #007544;--pr-negative-text: #bf0024}.dark .pr-fig,.dark .pr-mini{--pr-ink: #fcfcfe;--pr-muted: rgb(252 252 254 / 0.627);--pr-rule: rgb(252 252 254 / 0.14);--pr-surface: #080d0f;--pr-positive-text: #34dfaa;--pr-negative-text: #ff2d55}.pr-fig{margin:1.5rem 0;padding:1rem;overflow-x:auto;container-type:inline-size;border:1px solid var(--pr-rule);border-radius:8px;background:var(--pr-surface)}.pr-fig svg{display:block;width:100%;height:auto}.pr-mini{margin:1rem 0 1.25rem}.pr-mini svg{display:block;max-width:100%;height:auto;margin-inline:auto}.pr-fig svg text,.pr-mini svg text{font-family:inherit;font-size:12px;fill:var(--pr-muted)}.pr-sw{display:inline-block;flex:none;width:12px;height:12px;border-radius:2px}.pr-bg-price{background:#0088fe}.pr-bg-ttft{background:#ffbb28}.pr-bg-speed{background:#7b68ee}.pr-bg-rel{background:#ff2d55}.pr-bg-429{background:#ff8042}.pr-bg-received{background:var(--pr-ink)}.pr-bg-capacity{background:rgb(var(--gray-400))}.pr-fill-ttft{fill:#ffbb28}.pr-fill-speed{fill:#7b68ee}.pr-fill-rel{fill:#ff2d55}.pr-fill-429{fill:#ff8042}.pr-fig .lbl{font-size:13px;fill:var(--pr-ink)}.pr-fig .num{fill:var(--pr-muted);font-variant-numeric:tabular-nums}.pr-fig .strong{fill:var(--pr-ink);font-weight:600}.pr-fig .halo{paint-order:stroke;stroke:var(--pr-surface);stroke-width:4px;stroke-linejoin:round}.pr-fig .axis{stroke:var(--pr-rule);stroke-width:1}.pr-fig .zone{fill:rgb(0 191 111 / 0.12)}.pr-fig .zone-lbl{font-weight:600;fill:var(--pr-positive-text)}.pr-fig .zone-lbl.muted{fill:var(--pr-muted)}.pr-fig .edge{stroke:#00bf6f;stroke-width:1.5;stroke-dasharray:4 3}.pr-fig .edge-curve{fill:none;stroke:#00bf6f;stroke-width:2;stroke-dasharray:5 3}.pr-fig .curve{fill:none;stroke:var(--pr-ink);stroke-width:2.5}.pr-fig .curve-fill{fill:var(--pr-ink);opacity:0.04}.pr-fig .dot{fill:var(--pr-muted);fill-opacity:0.8;stroke:var(--pr-surface);stroke-width:1.5}.pr-fig .dot-in{fill:#00bf6f;stroke:var(--pr-surface);stroke-width:1.5}.pr-fig .got{fill:none;stroke:var(--pr-ink);stroke-width:2}.pr-fig .got-fill{fill:var(--pr-ink);opacity:0.06}.pr-fig .cap{fill:none;stroke:#da70d6;stroke-width:2.5}.pr-fig .real{fill:none;stroke:var(--pr-muted);stroke-width:1.5;stroke-dasharray:5 4}.pr-fig .rate{fill:#ff8042}.pr-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:0.375rem 1rem;margin-top:0.75rem;font-size:12px;color:var(--pr-muted)}.pr-legend span{display:inline-flex;align-items:center;gap:0.375rem}.pr-ln{display:inline-block;width:18px;height:0}.pr-ln-cap{border-top:2.5px solid #da70d6}.pr-ln-real{border-top:1.5px dashed var(--pr-muted)}.pr-table{margin-top:0.875rem;border-top:1px solid var(--pr-rule);font-size:12px}.pr-row{display:grid;grid-template-columns:76px minmax(0, 1fr) 84px;gap:0.5rem;align-items:center;padding:0.375rem 0;border-bottom:1px solid var(--pr-rule)}.pr-head{color:var(--pr-muted);white-space:nowrap}.pr-sub::before{content:\", \"}.pr-name{font-weight:600;color:var(--pr-ink)}.pr-bar{display:flex;height:10px}.pr-bar i{display:block;height:100%}.pr-share{display:flex;align-items:center;gap:0.375rem}.pr-share i{display:block;height:10px;max-width:54px;border-radius:2px;background:var(--pr-muted);opacity:0.5}.pr-share b{font-weight:600;font-variant-numeric:tabular-nums;color:var(--pr-muted)}@media (max-width: 560px){.pr-row{grid-template-columns:76px minmax(0, 1fr) 32px}.pr-share i{display:none}.pr-head{white-space:normal}.pr-sub{display:block}.pr-sub::before{content:none}}@container (max-width: 480px){.pr-fig svg text{font-size:15px}.pr-fig svg .lbl{font-size:16px}}@container (max-width: 400px){.pr-fig svg text{font-size:17px}.pr-fig svg .lbl{font-size:18px}}.pr-mini-row{display:flex;justify-content:center;align-items:center;gap:0.75rem 1.5rem}.pr-mini-row svg{flex:0 1 auto;min-width:0;margin-inline:0}@media (max-width: 640px){.pr-mini-row{flex-wrap:wrap}}.pr-mini .strong-lbl{fill:var(--pr-ink);font-weight:600}.pr-mini .amt{text-anchor:end;font-variant-numeric:tabular-nums}.pr-mini .op{font-size:20px}.pr-mini .paper{fill:var(--pr-surface);stroke:var(--pr-rule);stroke-width:1}.pr-mini .usual{stroke:var(--pr-muted);stroke-width:1;stroke-dasharray:3 3}.pr-mini .sum-line{stroke:var(--pr-ink);stroke-width:1}.pr-mini .price-pill{fill:#0088fe;opacity:0.12}.pr-mini .pill-text{fill:var(--pr-ink);font-weight:600;font-variant-numeric:tabular-nums}.pr-mini .neg-pill{fill:#ff2d55;opacity:0.12}.pr-mini .neg-text{font-size:13px;fill:var(--pr-negative-text);font-weight:600;font-variant-numeric:tabular-nums}.pr-mini .span-stream{fill:var(--pr-muted);opacity:0.3}.pr-mini .span-total{fill:var(--pr-rule)}.pr-mini .extra{opacity:0.45}.pr-mini .bad{fill:none;stroke:#ff2d55;stroke-width:1.5}.pr-mini .tree{fill:none;stroke:var(--pr-muted);stroke-width:1}.pr-mini .brace{fill:none;stroke:var(--pr-muted);stroke-width:1.25}.pr-mini .big-arrow{fill:none;stroke:var(--pr-ink);stroke-width:3}.pr-mini .big-arrow-head,.pr-mini .user-dot{fill:var(--pr-ink)}.pr-factors ul{list-style:none;padding-left:0}.pr-factors li{padding-left:0!important}.pr-factors li::before{display:none}.pr-factors .pr-sw,h3 .pr-sw{margin-right:0.625rem;transform:translateY(1px)}h3 .pr-sw{width:13px;height:13px;transform:translateY(-2px)}.pr-cols{display:grid;grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));gap:0 1.75rem}"}],"page":{"pagePath":"guides/features/zero-completion-insurance","slug":"/guides/features/zero-completion-insurance","pageMetadata":{"publish":true,"title":"Zero Completion Insurance","description":"OpenRouter will not charge you for zero token responses","seoTitle":"Zero Completion Insurance | No Charge for Zero Token Responses","og:site_name":"OpenRouter Documentation","og:title":"Zero Completion Insurance - No Charge for Zero Token Responses","og:description":"Learn how OpenRouter protects users from being charged for failed or empty AI responses with zero completion insurance.","og:image":"https://openrouter.ai/dynamic-og?title=Zero%20Completion%20Insurance\u0026description=No%20Charge%20for%20Zero%20Token%20Responses","og:image:width":1200,"og:image:height":630,"twitter:card":"summary_large_image","twitter:site":"@OpenRouter","noindex":false,"nofollow":false,"icon":"shield","href":"/guides/features/zero-completion-insurance"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"OpenRouter will not charge you for zero token responses\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Note}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`OpenRouter provides zero completion insurance to protect users from being charged for failed or empty responses. When a response contains no output tokens and either has a blank finish reason or an error, you will not be charged for the model’s token usage, even if the underlying provider charges for prompt processing.`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Zero completion insurance is automatically enabled for all accounts and requires no configuration.`})}),`\n`,_jsx(Heading,{level:`2`,id:`how-it-works`,children:`How It Works`}),`\n`,_jsx(_components.p,{children:`Zero completion insurance automatically applies to all requests across all models and providers. When a response meets either of these conditions, no credits will be deducted for the model’s prompt, completion, or reasoning tokens:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The response has zero completion tokens AND a blank/null finish reason`}),`\n`,_jsx(_components.li,{children:`The response has an error finish reason`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-is-covered`,children:`What Is Covered`}),`\n`,_jsx(_components.p,{children:`Zero completion insurance covers the model’s inference cost: prompt tokens, completion tokens, and reasoning tokens are not billed when a response qualifies.`}),`\n`,_jsx(_components.p,{children:`For text-to-speech requests, usable output means that the response stream delivered format-valid audio: at least one complete MPEG frame for MP3 or one complete sample for PCM. Empty, invalid, and truncated output is not billed. Character-priced requests are billed for the full input once usable audio is delivered, including when the client cancels after receiving partial audio.`}),`\n`,_jsx(_components.p,{children:`For image generation requests, usable output means the response delivered at least one image whose base64 payload is non-empty and decodable. Responses with no image data, an empty payload, or a payload that is not valid base64 are rejected as upstream failures and are not billed. Validation checks base64 decodability only — it does not inspect the decoded bytes’ format, so all valid output formats (including AVIF and HEIC) are delivered normally.`}),`\n`,_jsxs(_components.p,{children:[`It does not cover charges for auxiliary services that already ran before the response failed. Work performed by `,_jsx(_components.a,{href:`/guides/features/plugins/web-search`,children:`web search`}),` (e.g. per-request search fees), file parsing / PDF OCR, and web fetch may still be billed based on the work actually performed, even when the model’s response subsequently ends in an error. (In some failure cases, for example an upstream failure that produces no tokens at all, these charges are skipped as well.) When billed, these charges appear in the request’s usage breakdown.`]}),`\n`,_jsx(Heading,{level:`2`,id:`viewing-protected-requests`,children:`Viewing Protected Requests`}),`\n`,_jsx(_components.p,{children:`On your activity page, requests that were protected by zero completion insurance will show zero credits deducted for token usage. This applies even in cases where OpenRouter may have been charged by the provider for prompt processing. If a protected request also used auxiliary services such as web search or file parsing, only those service charges are deducted.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"publish":true,"title":"Zero Completion Insurance","description":"OpenRouter will not charge you for zero token responses","seoTitle":"Zero Completion Insurance | No Charge for Zero Token Responses","og:site_name":"OpenRouter Documentation","og:title":"Zero Completion Insurance - No Charge for Zero Token Responses","og:description":"Learn how OpenRouter protects users from being charged for failed or empty AI responses with zero completion insurance.","og:image":"https://openrouter.ai/dynamic-og?title=Zero%20Completion%20Insurance\u0026description=No%20Charge%20for%20Zero%20Token%20Responses","og:image:width":1200,"og:image:height":630,"twitter:card":"summary_large_image","twitter:site":"@OpenRouter","noindex":false,"nofollow":false,"icon":"shield","href":"/guides/features/zero-completion-insurance"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"How It Works","slug":"how-it-works","depth":2,"children":[]},{"title":"What Is Covered","slug":"what-is-covered","depth":2,"children":[]},{"title":"Viewing Protected Requests","slug":"viewing-protected-requests","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/openrouter-d02e98a0/c1fa764d8c861cbd/anchor-scroll-fix.js","/docs/_mintlify/custom/openrouter-d02e98a0/c43dc2bfe5fa3c92/auth-cta.js"],"subdomain":"openrouter-d02e98a0","siteName":"OpenRouter | Documentation","title":"Zero Completion Insurance - No Charge for Zero Token Responses","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-13T21:57:44.204Z","originalFileLocation":"guides/features/zero-completion-insurance.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=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"OpenRouter will not charge you for zero token responses\">\u003cmeta data-mint-head name=\"application-name\" content=\"OpenRouter | Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Zero Completion Insurance - No Charge for Zero Token Responses\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn how OpenRouter protects users from being charged for failed or empty AI responses with zero completion insurance.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OpenRouter Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://openrouter.ai/docs/guides/features/zero-completion-insurance\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://openrouter.ai/dynamic-og?title=Zero%20Completion%20Insurance\u0026amp;description=No%20Charge%20for%20Zero%20Token%20Responses\">\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=\"Zero Completion Insurance - No Charge for Zero Token Responses\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn how OpenRouter protects users from being charged for failed or empty AI responses with zero completion insurance.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://openrouter.ai/dynamic-og?title=Zero%20Completion%20Insurance\u0026amp;description=No%20Charge%20for%20Zero%20Token%20Responses\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OpenRouter | Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7624F4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://openrouter.ai/docs/guides/features/zero-completion-insurance\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/guides/features/zero-completion-insurance.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://openrouter.ai/#organization\",\"name\":\"OpenRouter | Documentation\",\"url\":\"https://openrouter.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/openrouter-d02e98a0/ksNSeB_K7gD-BUDh/assets/logo-v2-light.svg?fit=max\u0026auto=format\u0026n=ksNSeB_K7gD-BUDh\u0026q=85\u0026s=690e45873843519efe02bcbe45795dac\"}},{\"@type\":\"WebSite\",\"@id\":\"https://openrouter.ai/docs#website\",\"name\":\"OpenRouter | Documentation\",\"url\":\"https://openrouter.ai/docs\",\"publisher\":{\"@id\":\"https://openrouter.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://openrouter.ai/docs/guides/features/zero-completion-insurance#webpage\",\"url\":\"https://openrouter.ai/docs/guides/features/zero-completion-insurance\",\"name\":\"Zero Completion Insurance\",\"description\":\"OpenRouter will not charge you for zero token responses\",\"dateModified\":\"2026-08-13T21:57:44.204Z\",\"isPartOf\":{\"@id\":\"https://openrouter.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://openrouter.ai/docs/guides/features/zero-completion-insurance#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://openrouter.ai/docs/guides/features/zero-completion-insurance#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Features\",\"item\":\"https://openrouter.ai/docs/guides/features/workspaces\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Zero Completion Insurance\",\"item\":\"https://openrouter.ai/docs/guides/features/zero-completion-insurance\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://openrouter.ai/docs/guides/features/zero-completion-insurance#article\",\"headline\":\"Zero Completion Insurance\",\"name\":\"Zero Completion Insurance\",\"description\":\"OpenRouter will not charge you for zero token responses\",\"url\":\"https://openrouter.ai/docs/guides/features/zero-completion-insurance\",\"mainEntityOfPage\":{\"@id\":\"https://openrouter.ai/docs/guides/features/zero-completion-insurance#webpage\"},\"image\":\"https://openrouter.ai/dynamic-og?title=Zero%20Completion%20Insurance\u0026description=No%20Charge%20for%20Zero%20Token%20Responses\",\"dateModified\":\"2026-08-13T21:57:44.204Z\",\"publisher\":{\"@id\":\"https://openrouter.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://openrouter.ai/docs#website\"}}]}\u003c/script>","siteName":"OpenRouter | Documentation","nav":{"global":null,"tabs":[{"tab":"Docs","icon":"book","groups":[{"group":"Overview","icon":"compass","pages":[{"title":"Quickstart","icon":"rocket","href":"/quickstart"},{"title":"Principles","icon":"book","href":"/guides/overview/principles"},{"title":"Models","icon":"cube","href":"/guides/overview/models"},{"group":"Multimodal","icon":"layer-group","pages":[{"title":"Multimodal Capabilities","icon":"compass","sidebarTitle":"Overview","href":"/guides/overview/multimodal/overview"},{"title":"Image Generation","icon":"wand-magic-sparkles","href":"/guides/overview/multimodal/image-generation"},{"title":"Video Generation","icon":"film","href":"/guides/overview/multimodal/video-generation"},{"title":"Text-to-Speech","icon":"microphone","href":"/guides/overview/multimodal/tts"},{"title":"Speech-to-Text","icon":"headset","href":"/guides/overview/multimodal/stt"},{"title":"Audio","icon":"volume-high","href":"/guides/overview/multimodal/audio"},{"title":"PDF Inputs","icon":"file-pdf","sidebarTitle":"PDFs","href":"/guides/overview/multimodal/pdfs"},{"title":"Image Inputs","icon":"image","sidebarTitle":"Image Understanding","href":"/guides/overview/multimodal/image-understanding"},{"title":"Video Inputs","icon":"video","sidebarTitle":"Video Understanding","href":"/guides/overview/multimodal/videos"}]},{"title":"Frequently Asked Questions","icon":"question","sidebarTitle":"FAQ","href":"/faq"},{"title":"Report Feedback","icon":"bug","href":"/guides/overview/report-feedback"}]},{"group":"Models \u0026 Routing","icon":"route","pages":[{"title":"Model Fallbacks","icon":"arrows-rotate","href":"/guides/routing/model-fallbacks"},{"title":"Provider Routing","icon":"network-wired","sidebarTitle":"Provider Selection","href":"/guides/routing/provider-selection"},{"title":"How OpenRouter Routes Traffic Between Providers","icon":"route","sidebarTitle":"Traffic Routing","href":"/guides/providers/traffic-routing"},{"title":"Private Endpoints","icon":"lock","href":"/guides/routing/private-endpoints"},{"group":"Model Variants","icon":"gem","pages":[{"title":"Model Variants","icon":"layer-group","sidebarTitle":"Overview","href":"/guides/routing/model-variants/overview"},{"title":"Free Variant","icon":"circle-dollar","sidebarTitle":"Free","href":"/guides/routing/model-variants/free"},{"title":"Extended Variant","icon":"arrows-left-right","sidebarTitle":"Extended","href":"/guides/routing/model-variants/extended"},{"title":"Exacto Variant","icon":"gem","sidebarTitle":"Exacto","href":"/guides/routing/model-variants/exacto"},{"title":"Thinking Variant","icon":"brain","sidebarTitle":"Thinking","href":"/guides/routing/model-variants/thinking"},{"title":"Online Variant","icon":"globe-pointer","sidebarTitle":"Online","href":"/guides/routing/model-variants/online"},{"title":"Nitro Variant","icon":"bolt","sidebarTitle":"Nitro","href":"/guides/routing/model-variants/nitro"},{"title":"Floor Variant","icon":"arrow-down-to-line","sidebarTitle":"Floor","href":"/guides/routing/model-variants/floor"}]},{"group":"Routers","icon":"robot","pages":[{"title":"Auto Router","icon":"wand-magic-sparkles","href":"/guides/routing/routers/auto-router"},{"title":"Body Builder","icon":"hammer","href":"/guides/routing/routers/body-builder"},{"title":"Free Models Router","icon":"gift","href":"/guides/routing/routers/free-router"},{"title":"Latest Model Resolution","icon":"clock-rotate-left","href":"/guides/routing/routers/latest-resolution"},{"title":"Pareto Router","icon":"chart-line","href":"/guides/routing/routers/pareto-router"},{"title":"Fusion Router","icon":"circle-nodes","href":"/guides/routing/routers/fusion-router"},{"title":"Jev Router","icon":"route","href":"/guides/routing/routers/jev-router"},{"title":"Switchyard","icon":"train-track","href":"/guides/routing/routers/switchyard-router"}]},{"title":"Auto Exacto","icon":"crosshairs","href":"/guides/routing/auto-exacto"}]},{"group":"Tool Calling","icon":"toolbox","pages":[{"title":"Client Tools","icon":"laptop-code","sidebarTitle":"Client Tools","href":"/guides/features/tool-calling"},{"group":"Server Tools","icon":"server","pages":[{"title":"Server Tools","icon":"compass","sidebarTitle":"Overview","tag":"Beta","href":"/guides/features/server-tools"},{"title":"Web Search","icon":"globe","tag":"Beta","href":"/guides/features/server-tools/web-search"},{"title":"Web Fetch","icon":"link","tag":"Beta","href":"/guides/features/server-tools/web-fetch"},{"title":"Datetime","icon":"clock","tag":"Beta","href":"/guides/features/server-tools/datetime"},{"title":"Image Generation","icon":"image","tag":"Beta","href":"/guides/features/server-tools/image-generation"},{"title":"Apply Patch","icon":"file-code","tag":"Beta","href":"/guides/features/server-tools/apply-patch"},{"title":"Shell","icon":"terminal","tag":"Beta","href":"/guides/features/server-tools/shell"},{"title":"Bash","icon":"terminal","tag":"Beta","href":"/guides/features/server-tools/bash"},{"title":"Files","hidden":true,"icon":"folder-open","tag":"Beta","href":"/guides/features/server-tools/files"},{"title":"Search Models","icon":"magnifying-glass","tag":"Beta","href":"/guides/features/server-tools/search-models"},{"title":"Tool Search","icon":"magnifying-glass","tag":"Beta","href":"/guides/features/server-tools/tool-search"},{"title":"Fusion","icon":"circle-nodes","tag":"Beta","href":"/guides/features/server-tools/fusion"},{"title":"Advisor","icon":"lightbulb","tag":"Beta","href":"/guides/features/server-tools/advisor"},{"title":"Subagent","icon":"sitemap","tag":"Beta","href":"/guides/features/server-tools/subagent"}]},{"group":"Plugins","icon":"plug","pages":[{"title":"Plugins","icon":"compass","sidebarTitle":"Overview","href":"/guides/features/plugins"},{"title":"Web Search","icon":"globe","href":"/guides/features/plugins/web-search"},{"title":"Response Healing","icon":"bandage","href":"/guides/features/plugins/response-healing"},{"title":"Alignment","icon":"shield-check","tag":"Beta","href":"/guides/features/plugins/alignment"},{"title":"Armor","icon":"shield-halved","tag":"Beta","href":"/guides/features/plugins/armor"}]}]},{"group":"Features","icon":"stars","pages":[{"group":"Workspaces","icon":"folder-tree","pages":[{"title":"Workspaces","sidebarTitle":"Overview","icon":"grid-2","href":"/guides/features/workspaces"},{"title":"Workspace Budgets","icon":"wallet","href":"/guides/features/workspaces/workspace-budgets"},{"title":"Switching Workspaces","icon":"repeat","href":"/guides/features/workspaces/switching"}]},{"title":"Notifications","icon":"bell","href":"/guides/features/notifications"},{"title":"Files API","sidebarTitle":"Files","icon":"folder-open","tag":"Beta","href":"/guides/features/files-api"},{"title":"Containers","icon":"box","tag":"Beta","href":"/guides/features/containers"},{"title":"Presets","icon":"sliders","href":"/guides/features/presets"},{"title":"Custom Classifiers","icon":"tag","href":"/guides/features/classifiers"},{"title":"Response Caching","icon":"box-archive","href":"/guides/features/response-caching"},{"title":"Structured Outputs","icon":"code","href":"/guides/features/structured-outputs"},{"title":"Message Transforms","description":"Transform prompt messages","icon":"arrows-rotate","href":"/guides/features/message-transforms"},{"title":"Zero Completion Insurance","icon":"shield","href":"/guides/features/zero-completion-insurance"},{"title":"App Attribution","description":"Get your app featured in OpenRouter rankings and analytics","icon":"chart-line","href":"/app-attribution"},{"group":"Batch API","icon":"boxes-stacked","pages":[{"title":"Batch API","sidebarTitle":"Overview","icon":"boxes-stacked","href":"/guides/features/batch-api"},{"title":"Batch API Quickstart","sidebarTitle":"Quickstart","icon":"rocket","href":"/batch-quickstart"}]},{"group":"Guardrails","icon":"shield-check","pages":[{"title":"Guardrails","icon":"book-open","sidebarTitle":"Overview","href":"/guides/features/guardrails"},{"title":"Guardrail Policies","icon":"shield","sidebarTitle":"Guardrail Policies","href":"/guides/features/guardrails/policies"},{"title":"Migrating to Guardrail Policies","icon":"arrow-right-arrow-left","sidebarTitle":"Migrating to policies","href":"/guides/features/guardrails/policies-migration"},{"group":"Prompt Injection Detection","icon":"syringe","root":{"title":"Prompt Injection Detection","icon":"syringe","href":"/guides/features/guardrails/prompt-injection"},"pages":[{"title":"Allowlist","icon":"list-check","href":"/guides/features/guardrails/prompt-injection/allowlist"}]},{"title":"Sensitive Info Guardrail","icon":"eye-slash","sidebarTitle":"Sensitive Info","href":"/guides/features/guardrails/sensitive-info"},{"title":"Detected Secret Formats","icon":"key","sidebarTitle":"Secret Formats","href":"/guides/features/guardrails/secret-formats"}]},{"title":"Service Tiers","icon":"layer-group","href":"/guides/features/service-tiers"},{"title":"Router Metadata","icon":"circle-info","href":"/guides/features/router-metadata"}]},{"group":"Observability","icon":"eye","pages":[{"title":"Logs","icon":"list","href":"/guides/features/logs"},{"title":"Activity","icon":"chart-line","href":"/guides/features/activity"},{"title":"Input \u0026 Output Logging","icon":"file-lines","sidebarTitle":"Input \u0026 Output Logging","href":"/guides/features/input-output-logging"},{"group":"Broadcast","icon":"broadcast-tower","root":{"title":"Broadcast","icon":"compass","sidebarTitle":"Overview","href":"/guides/features/broadcast"},"pages":[{"title":"Arize AX","icon":"puzzle-piece","href":"/guides/features/broadcast/arize"},{"title":"Braintrust","icon":"puzzle-piece","href":"/guides/features/broadcast/braintrust"},{"title":"ClickHouse","icon":"puzzle-piece","href":"/guides/features/broadcast/clickhouse"},{"title":"Comet Opik","icon":"puzzle-piece","href":"/guides/features/broadcast/opik"},{"title":"Datadog","icon":"puzzle-piece","href":"/guides/features/broadcast/datadog"},{"title":"Elastic Observability","icon":"puzzle-piece","href":"/guides/features/broadcast/elastic"},{"title":"Google BigQuery","icon":"puzzle-piece","href":"/guides/features/broadcast/bigquery"},{"title":"Grafana Cloud","icon":"puzzle-piece","href":"/guides/features/broadcast/grafana"},{"title":"Hugging Face Storage Buckets","icon":"puzzle-piece","href":"/guides/features/broadcast/hugging-face"},{"title":"Langfuse","icon":"puzzle-piece","href":"/guides/features/broadcast/langfuse"},{"title":"LangSmith","icon":"puzzle-piece","href":"/guides/features/broadcast/langsmith"},{"title":"New Relic","icon":"puzzle-piece","href":"/guides/features/broadcast/newrelic"},{"title":"OpenTelemetry Collector","icon":"puzzle-piece","href":"/guides/features/broadcast/otel-collector"},{"title":"PostHog","icon":"puzzle-piece","href":"/guides/features/broadcast/posthog"},{"title":"Raindrop","icon":"puzzle-piece","href":"/guides/features/broadcast/raindrop"},{"title":"Ramp","icon":"puzzle-piece","href":"/guides/features/broadcast/ramp"},{"title":"S3 / S3-Compatible","icon":"puzzle-piece","href":"/guides/features/broadcast/s3"},{"title":"Sentry","icon":"puzzle-piece","href":"/guides/features/broadcast/sentry"},{"title":"Snowflake","icon":"puzzle-piece","href":"/guides/features/broadcast/snowflake"},{"title":"W\u0026B Weave","icon":"puzzle-piece","href":"/guides/features/broadcast/weave"},{"title":"Webhook","icon":"puzzle-piece","href":"/guides/features/broadcast/webhook"}]}]},{"group":"Authentication","icon":"shield-check","pages":[{"title":"OAuth PKCE","icon":"shield-check","sidebarTitle":"OAuth","href":"/guides/overview/auth/oauth"},{"title":"Workload Identity Federation","icon":"fingerprint","sidebarTitle":"Workload Identity","href":"/guides/overview/auth/workload-identity-federation"},{"title":"Management API Keys","icon":"key","href":"/guides/overview/auth/management-api-keys"},{"title":"Security settings","icon":"lock","href":"/guides/overview/auth/security-settings"},{"title":"BYOK","icon":"key","href":"/guides/overview/auth/byok"},{"title":"Single Sign-On (SSO)","icon":"shield-halved","href":"/guides/features/sso"},{"title":"SCIM Group Mappings","icon":"users-gear","href":"/guides/features/scim-mappings"}]},{"group":"Ori","icon":"terminal","pages":[{"title":"Ori","icon":"terminal","href":"/guides/ori/overview"},{"title":"Ori Eval","icon":"vial-circle-check","href":"/guides/ori/eval"},{"group":"Ori Harness","icon":"plug","pages":[{"title":"Ori Harness","sidebarTitle":"Overview","icon":"plug","href":"/guides/ori/harness"},{"title":"Ori Codex","sidebarTitle":"Codex","icon":"terminal","href":"/guides/ori/codex"},{"title":"Ori Cursor","sidebarTitle":"Cursor","icon":"terminal","href":"/guides/ori/cursor"}]},{"title":"File Writing","icon":"folder","href":"/guides/ori/files"},{"title":"Ori Configuration","icon":"sliders","href":"/guides/ori/configuration"},{"title":"Vault Secrets for Interns","icon":"vault","href":"/guides/ori/vault"},{"title":"Changelog","icon":"clock-rotate-left","href":"/guides/ori/changelog"}]},{"group":"Developer Tools","icon":"wrench","pages":[{"title":"MCP","icon":"plug","href":"/guides/overview/mcp-server"},{"title":"Terraform Provider","icon":"cubes","href":"/guides/overview/terraform"},{"title":"Stripe Projects","icon":"stripe","href":"/guides/overview/stripe-projects"}]},{"group":"Privacy","icon":"shield","expanded":false,"pages":[{"title":"Data Collection","icon":"database","href":"/guides/privacy/data-collection"},{"title":"Provider Logging","icon":"file-lines","href":"/guides/privacy/provider-logging"},{"title":"Zero Data Retention","icon":"shield-halved","sidebarTitle":"ZDR","href":"/guides/features/zdr"},{"title":"In-Region Routing","icon":"map-location-dot","href":"/guides/features/in-region-routing"},{"title":"Sovereign AI","icon":"globe","href":"/guides/features/sovereign-ai"}]},{"group":"Best Practices","icon":"lightbulb","expanded":false,"pages":[{"title":"Latency and Performance","icon":"gauge-high","href":"/guides/best-practices/latency-and-performance"},{"title":"Prompt Caching","icon":"database","href":"/guides/best-practices/prompt-caching"},{"title":"Spend Controls","icon":"wallet","href":"/guides/best-practices/spend-controls"},{"title":"Capping Shared Agent Keys","icon":"robot","href":"/guides/best-practices/capping-shared-agent-keys"},{"title":"Uptime Optimization","icon":"chart-line","href":"/guides/best-practices/uptime-optimization"},{"title":"Reasoning Tokens","icon":"lightbulb","href":"/guides/best-practices/reasoning-tokens"}]},{"group":"Providers","icon":"server","expanded":false,"pages":[{"title":"Provider Integration","icon":"cloud","sidebarTitle":"Integration","href":"/guides/providers/integration"},{"title":"How OpenRouter Routes Traffic Between Providers","icon":"route","sidebarTitle":"Traffic Routing","href":"/guides/providers/traffic-routing"}]},{"group":"Community","icon":"users","expanded":false,"pages":[{"title":"Frameworks and Integrations Overview","icon":"puzzle-piece","href":"/guides/community/frameworks-and-integrations-overview"},{"title":"Awesome OpenRouter","icon":"star","href":"/guides/community/awesome-openrouter"},{"title":"Effect AI SDK","icon":"puzzle-piece","href":"/guides/community/effect-ai-sdk"},{"title":"Arize AX","icon":"puzzle-piece","href":"/guides/community/arize"},{"title":"LangChain","icon":"puzzle-piece","href":"/guides/community/langchain"},{"title":"LiveKit","icon":"puzzle-piece","href":"/guides/community/livekit"},{"title":"Langfuse","icon":"puzzle-piece","href":"/guides/community/langfuse"},{"title":"Mastra","icon":"puzzle-piece","href":"/guides/community/mastra"},{"title":"OpenAI SDK","icon":"puzzle-piece","href":"/guides/community/openai-sdk"},{"title":"Anthropic Agent SDK","icon":"puzzle-piece","href":"/guides/community/anthropic-agent-sdk"},{"title":"PydanticAI","icon":"puzzle-piece","href":"/guides/community/pydantic-ai"},{"title":"Render","icon":"puzzle-piece","href":"/guides/community/render"},{"title":"Replit","icon":"puzzle-piece","href":"/guides/community/replit"},{"title":"TanStack AI","icon":"puzzle-piece","href":"/guides/community/tanstack-ai"},{"title":"Jev Documentation: Using the TypeSafe Decision Model on OpenRouter","sidebarTitle":"Jev (TypeSafe)","icon":"scale-balanced","href":"/guides/community/jev"},{"title":"Jev Tutorial: Make Your First Decision Call on OpenRouter","sidebarTitle":"Jev Tutorial","icon":"bolt","href":"/guides/community/jev-tutorial"},{"title":"Multimodal Decisions: Images, Audio, and Video in the Decisions API","sidebarTitle":"Multimodal Decisions","icon":"image","href":"/guides/community/multimodal-decisions"},{"title":"Extractions API: Typed Fields from Text, Images, and PDFs","sidebarTitle":"Extractions API","icon":"table-list","href":"/guides/community/extractions"},{"title":"Jev SDK for TypeScript and Python (TypeSafe SDK)","sidebarTitle":"TypeSafe SDK (Jev)","icon":"puzzle-piece","href":"/guides/community/typesafe-sdk"},{"title":"Vercel AI SDK","icon":"puzzle-piece","href":"/guides/community/vercel-ai-sdk"},{"title":"Xcode","icon":"puzzle-piece","href":"/guides/community/xcode"},{"title":"Zapier","icon":"puzzle-piece","href":"/guides/community/zapier"},{"title":"Infisical","icon":"puzzle-piece","href":"/guides/community/infisical"}]}]},{"tab":"API Reference","icon":"code","pages":[{"title":"API Reference","href":"/api_reference/overview"}]},{"tab":"Client SDKs","icon":"cube","pages":[{"title":"Client SDKs","href":"/client-sdks/overview"}]},{"tab":"Agent SDK","icon":"cube","pages":[{"title":"Agent SDK","href":"/agent-sdk/overview"}]},{"tab":"Cookbook","icon":"book-open","pages":[{"title":"Cookbook","href":"/cookbook/get-started/quickstart"}]}]},"basePath":"","title":"Zero Completion Insurance - No Charge for Zero Token Responses","buildId":"dpl_DQCMP4mismmBj3AFK7YZqNhrtLNq","deploymentId":"dpl_DQCMP4mismmBj3AFK7YZqNhrtLNq","dynamics":[],"chunks":[]}