<!DOCTYPE html><html lang="en" class="inter_1d81deff-module__CYM0aG__variable papermono_89c757f2-module__6aS5zq__variable dark" data-banner-state="visible" data-assistant-state="closed" data-page-mode="none" data-current-path="/"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><link rel="preload" href="/docs/_next/static/media/83afe278b6a6bb3c.p.3a6ba036.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/docs/_next/static/media/PaperMono_Variable.p.aa32f7a0.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/docs/_next/static/media/f67ad414ed34149c.p.84166d94.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="https://mintcdn.com/openrouter-d02e98a0/ksNSeB_K7gD-BUDh/assets/logo-v2-light.svg?fit=max&amp;auto=format&amp;n=ksNSeB_K7gD-BUDh&amp;q=85&amp;s=690e45873843519efe02bcbe45795dac"/><link rel="preload" as="image" href="https://mintcdn.com/openrouter-d02e98a0/ksNSeB_K7gD-BUDh/assets/logo-v2-dark.svg?fit=max&amp;auto=format&amp;n=ksNSeB_K7gD-BUDh&amp;q=85&amp;s=8ba2f49b11cd9839c37dd03c62537ebd"/><link rel="stylesheet" href="/docs/_next/static/chunks/462bacc63bed9960.css?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" data-precedence="next"/><link rel="stylesheet" href="/docs/_next/static/chunks/130071cec1814339.css?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" data-precedence="next"/><style data-precedence="base-ui:low" data-href="base-ui-disable-scrollbar">.base-ui-disable-scrollbar{scrollbar-width:none}.base-ui-disable-scrollbar::-webkit-scrollbar{display:none}</style><link rel="preload" as="script" fetchPriority="low" href="/docs/_next/static/chunks/6d55b684068fd47e.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK"/><script src="/docs/_next/static/chunks/44795504c795ca32.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/8470141258a8cdc3.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/f486afc314643ce1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/6ab2b57d39308a6c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/turbopack-2e914d270b534a41.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/27af74e29bec69c2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/e168288d4907c254.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/6b1866b1722b1057.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/68ad056007b94e04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/cb00d03b4d1e9ae2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/f48a8fa65184b0c7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/0dd7d15c30c41f1b.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/ca83a905f88dbab7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/555577647291460f.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/2dd53f5a4cfe6dd5.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><script src="/docs/_next/static/chunks/746594ec3bf27705.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-R8YZRJS2XN" as="script"/><title>OpenRouter FAQ</title><meta name="description" content="Common questions about OpenRouter"/><meta name="application-name" content="OpenRouter | Documentation"/><meta name="generator" content="Mintlify"/><meta name="msapplication-config" content="/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/browserconfig.xml"/><meta name="apple-mobile-web-app-title" content="OpenRouter | Documentation"/><meta name="msapplication-TileColor" content="#7624F4"/><link rel="canonical" href="https://openrouter.ai/docs/faq"/><link rel="alternate" type="application/xml" href="/docs/sitemap.xml"/><link rel="alternate" type="text/markdown" href="/docs/faq.md"/><meta property="og:title" content="OpenRouter FAQ"/><meta property="og:description" content="Find answers to commonly asked questions about OpenRouter&#x27;s unified API, model access, pricing, and integration."/><meta property="og:url" content="https://openrouter.ai/docs/faq"/><meta property="og:site_name" content="OpenRouter Documentation"/><meta property="og:image" content="https://openrouter.ai/dynamic-og?pathname=faq&amp;title=FAQ&amp;description=Common%20questions%20about%20OpenRouter"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="OpenRouter FAQ"/><meta name="twitter:description" content="Find answers to commonly asked questions about OpenRouter&#x27;s unified API, model access, pricing, and integration."/><meta name="twitter:image" content="https://openrouter.ai/dynamic-og?pathname=faq&amp;title=FAQ&amp;description=Common%20questions%20about%20OpenRouter"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><link rel="icon" href="/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/android-chrome-192x192.png" type="image/png" sizes="192x192" media="(prefers-color-scheme: light)"/><link rel="apple-touch-icon" href="/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/apple-touch-icon.png" type="image/png" sizes="180x180"/><link rel="icon" href="/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/favicon-16x16.png" type="image/png" sizes="16x16" media="(prefers-color-scheme: light)"/><link rel="icon" href="/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/favicon-32x32.png" type="image/png" sizes="32x32" media="(prefers-color-scheme: light)"/><link rel="shortcut icon" href="/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/favicon.ico" type="image/x-icon" media="(prefers-color-scheme: light)"/><link rel="icon" href="/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/android-chrome-192x192.png" type="image/png" sizes="192x192" media="(prefers-color-scheme: dark)"/><link rel="icon" href="/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/favicon-16x16.png" type="image/png" sizes="16x16" media="(prefers-color-scheme: dark)"/><link rel="icon" href="/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/favicon-32x32.png" type="image/png" sizes="32x32" media="(prefers-color-scheme: dark)"/><link rel="shortcut icon" href="/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/favicon.ico" type="image/x-icon" media="(prefers-color-scheme: dark)"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="preload" href="https://d4tuoctqmanu0.cloudfront.net/katex.min.css" as="style"/><script type="text/javascript">!function(){var b="/docs";
function a(p){if(p==null)return"/";p=""+p;if(""===p)return"/";return"/"===p.charAt(0)?p:"/"+p}
function u(p){if(p==null)return p;p=""+p;if(!p||p.charAt(p.length-1)==="/")return p.slice(0,-1);return p}
function i(p){if(p==null)return p;p=""+p;if(6<=p.length&&p.substring(p.length-6)==="/index")return p.substring(0,p.length-6);if("index"===p)return"";return p}
var p=(location.pathname||"").split("?")[0].split("#")[0]||"";
if(b)if(p===b)p="";else if(0===p.indexOf(b+"/"))p=p.substring(b.length);
p=a(p);p=u(p);p=i(p);p=""===p||"index"===p?"/":a(p);
document.documentElement.setAttribute("data-current-path",p);
}();</script><script type="text/javascript">!function(){
function read(){try{
var e=performance.getEntriesByType?performance.getEntriesByType("navigation"):[];
var st=(e[0]&&e[0].serverTiming)||[];
var g={};
for(var i=0;i<st.length;i++){var n=st[i].name,d=st[i].description;if(!d)continue;try{d=decodeURIComponent(d)}catch(x){}
if(n==="country")g.country=d;else if(n==="region")g.region=d;else if(n==="continent")g.continent=d;}
var w=window;w.mintlify=w.mintlify||{};w.mintlify.geo=g;
}catch(x){}}
read();document.addEventListener("DOMContentLoaded",read);
}();</script><script type="text/javascript">!function(){try{
var w=window;w.mintlify=w.mintlify||{};
var q=w.mintlify.__apiPlaygroundInputsQueue;
if(!Array.isArray(q)){q=[];w.mintlify.__apiPlaygroundInputsQueue=q;}
w.mintlify.api=w.mintlify.api||{};
w.mintlify.api.playground=w.mintlify.api.playground||{};
if(typeof w.mintlify.api.playground.setServerVariables!=="function"){
w.mintlify.api.playground.setServerVariables=function(v){q.push({type:"set",variables:v});};
}
if(typeof w.mintlify.api.playground.clearServerVariables!=="function"){
w.mintlify.api.playground.clearServerVariables=function(){q.push({type:"clear"});};
}
}catch(e){}}();</script><script type="text/javascript">(function(a,b){try{let c=document.getElementById("banner")?.innerText;if(c){for(let d=0;d<localStorage.length;d++){let e=localStorage.key(d);if(e?.endsWith(a)&&localStorage.getItem(e)===c)return void document.documentElement.setAttribute(b,"hidden")}document.documentElement.setAttribute(b,"visible");return}for(let c=0;c<localStorage.length;c++){let d=localStorage.key(c);if(d?.endsWith(a)&&localStorage.getItem(d))return void document.documentElement.setAttribute(b,"hidden")}document.documentElement.setAttribute(b,"visible")}catch(a){document.documentElement.setAttribute(b,"hidden")}})(
  "bannerDismissed",
  "data-banner-state",
)</script><script src="/docs/_next/static/chunks/a6dad97d9634a72d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" noModule=""></script></head><body class="antialiased"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","isDarkMode","dark",null,["dark","light","true","false","system"],{"true":"dark","false":"light","dark":"dark","light":"light"},true,false)</script><script>(function(){try{var f=null;var v=f||localStorage.getItem("isDarkMode");if(v==='true')v='dark';else if(v==='false')v='light';if(v!=='light'&&v!=='dark'&&v!=='system')v="dark";document.documentElement.setAttribute("data-theme-preference",v)}catch(e){}})();</script><blockquote class="sr-only" data-agent-docs-index="true" aria-hidden="true"><h2>Documentation Index</h2><p>Fetch the complete documentation index at:<!-- --> <a href="/docs/llms.txt" tabindex="-1">/docs/llms.txt</a></p><p>Use this file to discover all available pages before exploring further.</p></blockquote><style>:root{--banner-height:0px!important}</style><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"(function j(a,b,c,d,e){try{let f,g,h=[];try{h=window.location.pathname.split(\"/\").filter(a=\u003e\"\"!==a\u0026\u0026\"global\"!==a).slice(0,2)}catch{h=[]}let i=h.find(a=\u003ec.includes(a)),j=[];for(let c of(i?j.push(i):j.push(b),j.push(\"global\"),j)){if(!c)continue;let b=a[c];if(b?.content){f=b.content,g=c;break}}if(!f)return void document.documentElement.setAttribute(d,\"hidden\");let k=!0,l=0;for(;l\u003clocalStorage.length;){let a=localStorage.key(l);if(l++,!a?.endsWith(e))continue;let b=localStorage.getItem(a);if(b\u0026\u0026b===f){k=!1;break}g\u0026\u0026(a.startsWith(`lang:${g}_`)||!a.startsWith(\"lang:\"))\u0026\u0026(localStorage.removeItem(a),l--)}document.documentElement.setAttribute(d,k?\"visible\":\"hidden\")}catch(a){console.error(a),document.documentElement.setAttribute(d,\"hidden\")}})(\n  {},\n  \"en\",\n  [],\n  \"data-banner-state\",\n  \"bannerDismissed\",\n)","id":"_mintlify-banner-script"}])</script><link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;1,400&amp;display=swap" rel="stylesheet"/><link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;1,400&amp;display=swap" rel="stylesheet"/><style>:root {
  --font-family-headings-custom: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --font-weight-headings-custom: 400;
  --font-family-body-custom: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --font-weight-body-custom: 400;
  
}
</style><style>:root {
    --primary: 118 36 244;
    --primary-light: 118 36 244;
    --primary-dark: 200 255 0;
    --tooltip-foreground: 0 0 0;
    --background-light: 252 252 254;
    --background-dark: 3 8 10;
    --gray-50: 246 243 250;
    --gray-100: 241 239 245;
    --gray-200: 226 223 229;
    --gray-300: 209 207 213;
    --gray-400: 162 159 165;
    --gray-500: 115 113 119;
    --gray-600: 83 81 87;
    --gray-700: 66 63 70;
    --gray-800: 40 38 44;
    --gray-900: 26 23 30;
    --gray-950: 13 11 17;
  }</style><script type="text/javascript">
          (function() {
            function loadKatex() {
              const link = document.querySelector('link[href="https://d4tuoctqmanu0.cloudfront.net/katex.min.css"]');
              if (link) link.rel = 'stylesheet';
            }
            if (document.readyState === 'loading') {
              document.addEventListener('DOMContentLoaded', loadKatex);
            } else {
              loadKatex();
            }
          })();
        </script><div class="relative antialiased text-gray-500 dark:text-gray-400 [[&amp;_:is(h1,h2,h3,h4,h5,h6)]:font-headingsWeight [&amp;_*:not(h1,h2,h3,h4,h5,h6,h1_*,h2_*,h3_*,h4_*,h5_*,h6_*)]:font-bodyWeight"><script>(self.__next_s=self.__next_s||[]).push([0,{"suppressHydrationWarning":true,"children":"(function(a){let b,c=(b=\"navbar-transition\",\"maple\"===a\u0026\u0026(b+=\"-maple\"),b),d=function(){let a=document.createElement(\"style\");return a.appendChild(document.createTextNode(\"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\")),document.head.appendChild(a),function(){window.getComputedStyle(document.body),setTimeout(()=\u003e{document.head.removeChild(a)},1)}}();(\"requestAnimationFrame\"in globalThis?requestAnimationFrame:setTimeout)(()=\u003e{let a;a=!1,a=window.scrollY\u003e50,document.getElementById(c)?.setAttribute(\"data-is-opaque\",`${!!a}`),d()})})(\"mint\")","id":"_mintlify-navbar-transition-script"}])</script><script>(self.__next_s=self.__next_s||[]).push([0,{"suppressHydrationWarning":true,"children":"(function () {\n  var measure = function(){let a=document.querySelectorAll(\"[id='navbar'], [data-top-chrome]\"),b=0;a.forEach(a=\u003e{let c=a.getBoundingClientRect();c.height\u003e0\u0026\u0026(b=Math.max(b,c.bottom))});let c=0,d=document.getElementById(\"content-container\");if(d){let{overflowY:a}=getComputedStyle(d);(\"auto\"===a||\"scroll\"===a)\u0026\u0026(c=Math.max(0,d.getBoundingClientRect().top))}let e=`${Math.round(Math.max(0,b-c))+40}px`,f=document.documentElement.style;f.getPropertyValue(\"--scroll-mt\")!==e\u0026\u0026f.setProperty(\"--scroll-mt\",e)};\n  (function(a){let b=[],c=0,d=\"undefined\"==typeof ResizeObserver?null:new ResizeObserver(f);function e(){let c=Array.from(document.querySelectorAll(\"[id='navbar'], [data-top-chrome]\"));(c.length!==b.length||c.some((a,c)=\u003ea!==b[c]))\u0026\u0026d\u0026\u0026(d.disconnect(),c.forEach(a=\u003ed.observe(a))),b=c,a()}function f(){c||(c=requestAnimationFrame(()=\u003e{c=0,e()}))}let g=\"[id='navbar'], [data-top-chrome]\";function h(a){let b=a.target;if(b instanceof Element\u0026\u0026b.closest(g))return!0;for(let b of a.addedNodes)if(b instanceof Element\u0026\u0026(b.matches(g)||b.querySelector(g)))return!0;for(let b of a.removedNodes)if(b instanceof Element\u0026\u0026(b.matches(g)||b.querySelector(g)))return!0;return!1}new MutationObserver(a=\u003e{a.some(h)\u0026\u0026f()}).observe(document.documentElement,{childList:!0,subtree:!0}),window.addEventListener(\"resize\",f),\"loading\"===document.readyState\u0026\u0026document.addEventListener(\"DOMContentLoaded\",e),e()})(measure);\n  (function(a){let b=window.location.hash.slice(1);if(!b)return;function c(){return\"smooth\"===getComputedStyle(document.documentElement).scrollBehavior}function d(c){let d=document.getElementById(b);return!!d\u0026\u0026(a(),d.scrollIntoView(c?{behavior:c}:void 0),!0)}if(\"complete\"===document.readyState)return void d();let e=new MutationObserver(()=\u003e{!c()\u0026\u0026d(\"instant\")\u0026\u0026f()});function f(){e.disconnect(),window.removeEventListener(\"load\",g)}function g(){let a=c();f(),a\u0026\u0026requestAnimationFrame(()=\u003e{d(),function(){let a=[\"wheel\",\"touchstart\",\"keydown\",\"pointerdown\"],c=0,e=window.scrollY,f=setInterval(()=\u003e{c+=1;let a=document.getElementById(b);if(!a||c\u003e=6)return g();let f=Math.abs(window.scrollY-e)\u003e1;if(e=window.scrollY,f)return;let h=parseFloat(getComputedStyle(a).scrollMarginTop)||0;Math.abs(a.getBoundingClientRect().top-h)\u003e4\u0026\u0026d()},350);function g(){clearInterval(f),a.forEach(a=\u003ewindow.removeEventListener(a,g))}a.forEach(a=\u003ewindow.addEventListener(a,g,{passive:!0}))}()})}window.addEventListener(\"load\",g),e.observe(document.documentElement,{childList:!0,subtree:!0}),!c()\u0026\u0026d(\"instant\")\u0026\u0026f()})(measure);\n})();","id":"_mintlify-scroll-margin-script"}])</script><a href="#content-area" class="sr-only focus:not-sr-only focus:fixed focus:top-2 focus:left-2 focus:z-50 focus:p-2 focus:text-sm focus:bg-background-light dark:focus:bg-background-dark focus:rounded-md focus:outline-primary dark:focus:outline-primary-light">Skip to main content</a><script>(function i(a,b,c,d){try{if(window.matchMedia("(max-width: 1024px)").matches||!d){document.documentElement.style.setProperty(c,"0px"),document.documentElement.setAttribute("data-assistant-state","closed"),d||localStorage.setItem(a,"false");return}let e=localStorage.getItem(a);if(null===e){document.documentElement.style.setProperty(c,"0px"),document.documentElement.setAttribute("data-assistant-state","closed");return}let f=JSON.parse(e),g=localStorage.getItem(b),h=null!==g?JSON.parse(g):368;document.documentElement.style.setProperty(c,f?h+"px":"0px"),document.documentElement.setAttribute("data-assistant-state",f?"open":"closed")}catch(a){document.documentElement.style.setProperty(c,"0px"),document.documentElement.setAttribute("data-assistant-state","closed")}})(
    "chat-assistant-sheet-open",
    "chat-assistant-sheet-width",
    "--assistant-sheet-width",
    true
  )</script><div class="max-lg:contents lg:flex lg:w-full" data-docs-theme="mint"><div class="max-lg:contents lg:flex-1 lg:min-w-0 lg:overflow-x-clip"><header id="navbar" class="z-30 fixed lg:sticky top-0 w-full peer is-not-custom peer is-not-center peer is-not-wide peer is-not-frame"><div id="navbar-transition" class="absolute w-full h-full flex-none transition-colors duration-500 border-b border-gray-500/5 dark:border-gray-300/[0.06] bg-background-light dark:bg-background-dark" data-is-opaque="false"></div><div class="max-w-8xl mx-auto relative"><div><div class="relative"><div class="flex items-center lg:px-12 h-16 min-w-0 mx-4 lg:mx-0"><div class="h-full relative flex-1 flex items-center gap-x-4 min-w-0 border-b border-gray-500/5 dark:border-gray-300/[0.06]"><div class="flex-1 flex items-center gap-x-4"><a class="select-none" style="-webkit-touch-callout:none" href="https://openrouter.ai"><span class="sr-only">OpenRouter | Documentation<!-- --> home page</span><img class="nav-logo w-auto h-7 relative object-contain shrink-0 block dark:hidden" src="https://mintcdn.com/openrouter-d02e98a0/ksNSeB_K7gD-BUDh/assets/logo-v2-light.svg?fit=max&amp;auto=format&amp;n=ksNSeB_K7gD-BUDh&amp;q=85&amp;s=690e45873843519efe02bcbe45795dac" alt="light logo"/><img class="nav-logo w-auto h-7 relative object-contain shrink-0 hidden dark:block" src="https://mintcdn.com/openrouter-d02e98a0/ksNSeB_K7gD-BUDh/assets/logo-v2-dark.svg?fit=max&amp;auto=format&amp;n=ksNSeB_K7gD-BUDh&amp;q=85&amp;s=8ba2f49b11cd9839c37dd03c62537ebd" alt="dark logo"/></a><div class="hidden lg:flex items-center gap-x-2"></div></div><div class="relative hidden lg:flex items-center flex-1 z-20 gap-2.5"><button type="button" class="group/search flex pointer-events-auto rounded-xl w-full items-center text-sm leading-6 h-9 pl-3.5 pr-3 text-gray-500 dark:text-white/50 bg-background-light dark:bg-background-dark dark:brightness-[1.1] dark:ring-1 dark:hover:brightness-[1.25] ring-1 ring-gray-400/30 hover:ring-gray-600/30 dark:ring-gray-600/30 dark:hover:ring-gray-500/30 justify-between truncate gap-2" id="search-bar-entry" aria-label="Open search"><div class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-4 min-w-4 flex-none text-gray-700 group-hover/search:text-gray-800 dark:text-gray-400 dark:group-hover/search:text-gray-200"><path d="M15.25 15.25L11.285 11.285" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M7.75 12.75C10.5114 12.75 12.75 10.5114 12.75 7.75C12.75 4.98858 10.5114 2.75 7.75 2.75C4.98858 2.75 2.75 4.98858 2.75 7.75C2.75 10.5114 4.98858 12.75 7.75 12.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg><div class="truncate min-w-0">Search...</div></div><span class="flex-none text-xs font-semibold">⌘<!-- -->K</span></button><button type="button" class="group/ai flex-none hidden lg:flex items-center justify-center gap-1.5 pl-3 pr-3.5 h-9 rounded-xl bg-background-light dark:bg-background-dark dark:brightness-[1.1] dark:ring-1 dark:hover:brightness-[1.25] ring-1 ring-gray-400/30 hover:ring-gray-600/30 dark:ring-gray-600/30 dark:hover:ring-gray-500/30" id="assistant-entry" aria-label="Toggle assistant panel" data-base-ui-tooltip-trigger=""><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-4 shrink-0 text-gray-700 group-hover/ai:text-gray-800 dark:text-gray-400 dark:group-hover/ai:text-gray-200"><path d="M5.65799 2.99L4.39499 2.569L3.97399 1.306C3.83699 0.898 3.16199 0.898 3.02499 1.306L2.60399 2.569L1.34099 2.99C1.13699 3.058 0.998993 3.249 0.998993 3.464C0.998993 3.679 1.13699 3.87 1.34099 3.938L2.60399 4.359L3.02499 5.622C3.09299 5.826 3.28499 5.964 3.49999 5.964C3.71499 5.964 3.90599 5.826 3.97499 5.622L4.39599 4.359L5.65899 3.938C5.86299 3.87 6.00099 3.679 6.00099 3.464C6.00099 3.249 5.86199 3.058 5.65799 2.99Z" fill="currentColor" stroke="none"></path><path d="M9.5 2.75L11.412 7.587L16.25 9.5L11.412 11.413L9.5 16.25L7.587 11.413L2.75 9.5L7.587 7.587L9.5 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg><span class="text-sm text-gray-500 dark:text-white/50 whitespace-nowrap">Ask Assistant</span></button></div><div class="flex-1 relative hidden lg:flex items-center ml-auto justify-end space-x-4"><nav aria-label="Main" class="text-sm"><ul class="flex space-x-6 items-center"><li class="navbar-link"><a href="https://openrouter.ai/models" class="flex items-center gap-1.5 whitespace-nowrap font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" target="_blank" rel="noopener noreferrer"><span class="min-w-0 truncate">Models</span></a></li><li class="navbar-link"><a href="https://openrouter.ai/benchmarks" class="flex items-center gap-1.5 whitespace-nowrap font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" target="_blank" rel="noopener noreferrer"><span class="min-w-0 truncate">Benchmarks</span></a></li><li class="navbar-link"><a href="https://openrouter.ai/chat" class="flex items-center gap-1.5 whitespace-nowrap font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" target="_blank" rel="noopener noreferrer"><span class="min-w-0 truncate">Chat</span></a></li><li class="navbar-link"><a href="https://openrouter.ai/rankings" class="flex items-center gap-1.5 whitespace-nowrap font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" target="_blank" rel="noopener noreferrer"><span class="min-w-0 truncate">Rankings</span></a></li><li class="navbar-link"><a href="https://openrouter.ai/apps" class="flex items-center gap-1.5 whitespace-nowrap font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" target="_blank" rel="noopener noreferrer"><span class="min-w-0 truncate">Apps</span></a></li><li class="navbar-link"><a href="https://openrouter.ai/docs" class="flex items-center gap-1.5 whitespace-nowrap font-medium text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" target="_blank" rel="noopener noreferrer"><span class="min-w-0 truncate">Docs</span></a></li></ul></nav><div class="flex items-center"><button type="button" tabindex="0" aria-haspopup="menu" id="theme-preference-menu-trigger" aria-label="Change theme preference" data-component-name="theme-preference-menu" data-component-part="theme-preference-menu-trigger" data-testid="theme-preference-menu-trigger" class="group disabled:pointer-events-none rounded-lg overflow-hidden gap-1 text-sm text-gray-950/50 dark:text-white/50 group-hover:text-gray-950/70 dark:group-hover:text-white/70 theme-preference-menu-trigger group p-2 flex items-center justify-center"><span data-theme-preference-icon="system"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="size-4 text-gray-500 dark:text-gray-400 group-hover:text-gray-700 dark:group-hover:text-gray-200"><path d="M4.5 15.5L9 14.5L13.5 15.5" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9 11.75V14.5" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M14.25 2.75H3.75C2.64543 2.75 1.75 3.64543 1.75 4.75V9.75C1.75 10.8546 2.64543 11.75 3.75 11.75H14.25C15.3546 11.75 16.25 10.8546 16.25 9.75V4.75C16.25 3.64543 15.3546 2.75 14.25 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></span><span data-theme-preference-icon="light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="size-4 text-gray-500 dark:text-gray-400 group-hover:text-gray-700 dark:group-hover:text-gray-200"><path d="M9 1.25V2.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M14.48 3.52002L13.773 4.22702" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M16.75 9H15.75" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M14.48 14.4799L13.773 13.7729" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9 16.75V15.75" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M3.52 14.4799L4.227 13.7729" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M1.25 9H2.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M3.52 3.52002L4.227 4.22702" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9 13.25C11.3472 13.25 13.25 11.3472 13.25 9C13.25 6.65279 11.3472 4.75 9 4.75C6.65279 4.75 4.75 6.65279 4.75 9C4.75 11.3472 6.65279 13.25 9 13.25Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></span><span data-theme-preference-icon="dark"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="size-4 text-gray-500 dark:text-gray-400 group-hover:text-gray-700 dark:group-hover:text-gray-200"><path d="M13 11.75C9.548 11.75 6.75 8.95201 6.75 5.50001C6.75 4.14801 7.183 2.90101 7.912 1.87801C4.548 2.50601 2 5.45301 2 9.00001C2 13.004 5.246 16.25 9.25 16.25C12.622 16.25 15.448 13.944 16.259 10.826C15.309 11.409 14.196 11.75 13 11.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></span></button></div></div><div class="flex lg:hidden items-center gap-3"><button type="button" class="text-gray-500 w-8 h-8 flex items-center justify-center hover:text-gray-600 dark:text-gray-400 dark:hover:text-gray-300" id="search-bar-entry-mobile" aria-label="Open search"><span class="sr-only">Search...</span><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-4 w-4 bg-gray-500 dark:bg-gray-400 hover:bg-gray-600 dark:hover:bg-gray-300" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/magnifying-glass.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/magnifying-glass.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></button><button id="assistant-entry-mobile" aria-label="Toggle assistant panel"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-4.5 text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300"><path d="M5.65799 2.99L4.39499 2.569L3.97399 1.306C3.83699 0.898 3.16199 0.898 3.02499 1.306L2.60399 2.569L1.34099 2.99C1.13699 3.058 0.998993 3.249 0.998993 3.464C0.998993 3.679 1.13699 3.87 1.34099 3.938L2.60399 4.359L3.02499 5.622C3.09299 5.826 3.28499 5.964 3.49999 5.964C3.71499 5.964 3.90599 5.826 3.97499 5.622L4.39599 4.359L5.65899 3.938C5.86299 3.87 6.00099 3.679 6.00099 3.464C6.00099 3.249 5.86199 3.058 5.65799 2.99Z" fill="currentColor" stroke="none"></path><path d="M9.5 2.75L11.412 7.587L16.25 9.5L11.412 11.413L9.5 16.25L7.587 11.413L2.75 9.5L7.587 7.587L9.5 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><button type="button" aria-label="More actions" class="h-7 w-5 flex items-center justify-center relative after:content-[&#x27;&#x27;] after:absolute after:-inset-y-2 after:-left-1 after:-right-4"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 shrink-0 bg-gray-500 dark:bg-gray-400 hover:bg-gray-600 dark:hover:bg-gray-300" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/ellipsis-vertical.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/ellipsis-vertical.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></button></div></div></div><button type="button" class="flex items-center h-14 py-4 px-5 lg:hidden focus:outline-0 w-full text-left"><div class="text-gray-500 hover:text-gray-600 dark:text-gray-400 dark:hover:text-gray-300"><span class="sr-only">Navigation</span><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0"><path d="M2.25 9H15.75" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.25 3.75H15.75" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.25 14.25H15.75" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div><div class="ml-4 flex text-sm leading-6 whitespace-nowrap min-w-0 space-x-3 overflow-hidden"><div class="flex items-center space-x-3 shrink-0"><span>Overview</span><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 text-gray-400 shrink-0"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div><div class="font-semibold text-gray-900 truncate dark:text-gray-200 min-w-0 flex-1">Frequently Asked Questions</div></div></button></div><div class="hidden lg:flex px-12 h-12"><div class="nav-tabs h-full flex text-sm gap-x-6"><a class="link nav-tabs-item group relative h-full gap-2 flex items-center font-medium hover:text-gray-800 dark:hover:text-gray-300 text-gray-800 dark:text-gray-200 [text-shadow:-0.2px_0_0_currentColor,0.2px_0_0_currentColor]" data-active="true" aria-current="location" href="/docs/quickstart"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-4 w-4 bg-current" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/book.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/book.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg>Docs<div class="absolute bottom-0 h-[1.5px] w-full left-0 bg-primary dark:bg-primary-light"></div></a><a class="link nav-tabs-item group relative h-full gap-2 flex items-center font-medium text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-300" href="/docs/api_reference/overview"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-4 w-4 bg-current" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/code.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/code.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg>API Reference<div class="absolute bottom-0 h-[1.5px] w-full left-0 group-hover:bg-gray-200 dark:group-hover:bg-gray-700"></div></a><a class="link nav-tabs-item group relative h-full gap-2 flex items-center font-medium text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-300" href="/docs/client-sdks/overview"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-4 w-4 bg-current" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cube.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cube.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg>Client SDKs<div class="absolute bottom-0 h-[1.5px] w-full left-0 group-hover:bg-gray-200 dark:group-hover:bg-gray-700"></div></a><a class="link nav-tabs-item group relative h-full gap-2 flex items-center font-medium text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-300" href="/docs/agent-sdk/overview"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-4 w-4 bg-current" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cube.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cube.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg>Agent SDK<div class="absolute bottom-0 h-[1.5px] w-full left-0 group-hover:bg-gray-200 dark:group-hover:bg-gray-700"></div></a><a class="link nav-tabs-item group relative h-full gap-2 flex items-center font-medium text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-300" href="/docs/cookbook/get-started/quickstart"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-4 w-4 bg-current" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/book-open.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/book-open.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg>Cookbook<div class="absolute bottom-0 h-[1.5px] w-full left-0 group-hover:bg-gray-200 dark:group-hover:bg-gray-700"></div></a></div></div><style>:root{--topbar-tabs-height:3rem}</style></div></div></header><div class="scroll-mt-(--scroll-mt) peer-[.is-custom]:max-w-none peer-[.is-center]:max-w-3xl peer-[.is-not-custom]:peer-[.is-not-center]:max-w-8xl peer-[.is-not-custom]:px-4 peer-[.is-not-custom]:mx-auto peer-[.is-not-custom]:lg:px-8 peer-[.is-wide]:lg:*:last:max-w-216 peer-[.is-not-custom]:peer-[.is-not-center]:lg:flex peer-[.is-custom]:[&amp;&gt;:first-child]:hidden! peer-[.is-custom]:[&amp;&gt;:first-child]:sm:hidden! peer-[.is-custom]:[&amp;&gt;:first-child]:md:hidden! peer-[.is-custom]:[&amp;&gt;:first-child]:lg:hidden! peer-[.is-custom]:[&amp;&gt;:first-child]:xl:hidden! peer-[.is-center]:[&amp;&gt;:first-child]:hidden! peer-[.is-center]:[&amp;&gt;:first-child]:sm:hidden! peer-[.is-center]:[&amp;&gt;:first-child]:md:hidden! peer-[.is-center]:[&amp;&gt;:first-child]:lg:hidden! peer-[.is-center]:[&amp;&gt;:first-child]:xl:hidden!"><nav aria-label="Pages" class="z-20 hidden lg:block sticky self-start shrink-0 w-[18rem] top-(--mintlify-slot-header-height,calc(4rem+var(--topbar-tabs-height,0rem))) h-[calc(100dvh-var(--mintlify-slot-header-height,calc(4rem+var(--topbar-tabs-height,0rem))))]" id="sidebar"><div role="presentation" style="position:relative;--scroll-area-corner-height:0px;--scroll-area-corner-width:0px" data-component-part="scroll-area" id="sidebar-content" class="min-w-0 absolute! inset-0 z-10"><div role="presentation" data-id="base-ui-_R_2tbsnlhjiuasnpfiutb_-viewport" tabindex="-1" class="size-full rounded-[inherit] [--scroll-area-fade-size:32px] pr-8 pb-10 base-ui-disable-scrollbar" style="overflow:scroll" data-component-part="scroll-area-viewport"><div role="presentation" style="min-width:fit-content" data-component-part="scroll-area-content" class="min-w-0! w-full"><div class="relative lg:text-sm lg:leading-6"><div class="sticky top-0 h-8 pointer-events-none z-10 bg-linear-to-b from-background-light dark:from-background-dark"></div><div id="navigation-items"><div><div class="sidebar-group-header flex items-center gap-2.5 pl-4 mb-3.5 lg:mb-2.5 font-semibold text-gray-900 dark:text-gray-200"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! sidebar-group-icon h-3.5 w-3.5 bg-current" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/compass.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/compass.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg><h3 class="sidebar-title text-[length:inherit] font-[inherit] leading-[inherit]"><span>Overview</span></h3></div><ul class="sidebar-group space-y-px"><li id="/quickstart" class="relative scroll-m-4 first:scroll-m-20" data-title="Quickstart"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/quickstart"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/rocket.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/rocket.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Quickstart</span></div></div></a></li><li id="/batch-quickstart" class="relative scroll-m-4 first:scroll-m-20" data-title="Batch"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/batch-quickstart"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/boxes-stacked.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/boxes-stacked.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Batch</span><div class="h-[1lh] flex items-center shrink-0 leading-[inherit]"><span class="nav-tag-pill flex items-center w-fit"><span class="nav-tag-pill-text px-1 py-0.5 rounded-md text-[0.65rem] leading-tight font-bold text-primary dark:text-primary-light bg-primary/10" data-nav-tag="Beta">Beta</span></span></div></div></div></a></li><li id="/guides/overview/principles" class="relative scroll-m-4 first:scroll-m-20" data-title="Principles"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/overview/principles"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/book.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/book.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Principles</span></div></div></a></li><li id="/guides/overview/models" class="relative scroll-m-4 first:scroll-m-20" data-title="Models"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/overview/models"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cube.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cube.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Models</span></div></div></a></li><li id="/guides/overview/mcp-server" class="relative scroll-m-4 first:scroll-m-20" data-title="MCP"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/overview/mcp-server"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/plug.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/plug.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">MCP</span></div></div></a></li><li data-title="Multimodal" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/layer-group.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/layer-group.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class=""><span>Multimodal</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li data-title="Authentication" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield-check.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield-check.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class=""><span>Authentication</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li id="/guides/overview/stripe-projects" class="relative scroll-m-4 first:scroll-m-20" data-title="Stripe Projects"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/overview/stripe-projects"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/stripe.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/stripe.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Stripe Projects</span></div></div></a></li><li id="/faq" class="relative scroll-m-4 first:scroll-m-20" data-title="FAQ" data-active="true" data-active-nav-item="true"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] bg-primary/10 text-primary [text-shadow:-0.2px_0_0_currentColor,0.2px_0_0_currentColor] dark:text-primary-light dark:bg-primary-light/10" style="padding-left:1rem" aria-current="page" href="/docs/faq"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-primary dark:bg-primary-light" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/question.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/question.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">FAQ</span></div></div></a></li><li id="/guides/overview/report-feedback" class="relative scroll-m-4 first:scroll-m-20" data-title="Report Feedback"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/overview/report-feedback"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/bug.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/bug.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Report Feedback</span></div></div></a></li></ul></div><div class="mt-6 lg:mt-8"><div class="sidebar-group-header flex items-center gap-2.5 pl-4 mb-3.5 lg:mb-2.5 font-semibold text-gray-900 dark:text-gray-200"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! sidebar-group-icon h-3.5 w-3.5 bg-current" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/route.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/route.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg><h3 class="sidebar-title text-[length:inherit] font-[inherit] leading-[inherit]"><span>Models &amp; Routing</span></h3></div><ul class="sidebar-group space-y-px"><li id="/guides/routing/model-fallbacks" class="relative scroll-m-4 first:scroll-m-20" data-title="Model Fallbacks"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/routing/model-fallbacks"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/arrows-rotate.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/arrows-rotate.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Model Fallbacks</span></div></div></a></li><li id="/guides/routing/provider-selection" class="relative scroll-m-4 first:scroll-m-20" data-title="Provider Selection"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/routing/provider-selection"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/network-wired.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/network-wired.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Provider Selection</span></div></div></a></li><li id="/guides/routing/auto-exacto" class="relative scroll-m-4 first:scroll-m-20" data-title="Auto Exacto"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/routing/auto-exacto"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/crosshairs.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/crosshairs.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Auto Exacto</span></div></div></a></li><li id="/guides/routing/private-models" class="relative scroll-m-4 first:scroll-m-20" data-title="Private Models"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/routing/private-models"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/lock.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/lock.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Private Models</span></div></div></a></li><li data-title="Model Variants" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/gem.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/gem.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class=""><span>Model Variants</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li data-title="Routers" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/robot.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/robot.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class=""><span>Routers</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li></ul></div><div class="mt-6 lg:mt-8"><div class="sidebar-group-header flex items-center gap-2.5 pl-4 mb-3.5 lg:mb-2.5 font-semibold text-gray-900 dark:text-gray-200"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! sidebar-group-icon h-3.5 w-3.5 bg-current" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/stars.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/stars.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg><h3 class="sidebar-title text-[length:inherit] font-[inherit] leading-[inherit]"><span>Features</span></h3></div><ul class="sidebar-group space-y-px"><li id="/guides/features/workspaces" class="relative scroll-m-4 first:scroll-m-20" data-title="Workspaces"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/workspaces"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/grid-2.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/grid-2.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Workspaces</span></div></div></a></li><li id="/guides/features/workspaces/workspace-budgets" class="relative scroll-m-4 first:scroll-m-20" data-title="Workspace Budgets"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/workspaces/workspace-budgets"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/wallet.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/wallet.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Workspace Budgets</span></div></div></a></li><li id="/guides/features/workspaces/switching" class="relative scroll-m-4 first:scroll-m-20" data-title="Switching Workspaces"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/workspaces/switching"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/repeat.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/repeat.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Switching Workspaces</span></div></div></a></li><li id="/guides/features/sso" class="relative scroll-m-4 first:scroll-m-20" data-title="Single Sign-On (SSO)"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/sso"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield-halved.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield-halved.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Single Sign-On (SSO)</span></div></div></a></li><li id="/guides/features/scim-mappings" class="relative scroll-m-4 first:scroll-m-20" data-title="SCIM Group Mappings"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/scim-mappings"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/users-gear.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/users-gear.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">SCIM Group Mappings</span></div></div></a></li><li id="/guides/features/presets" class="relative scroll-m-4 first:scroll-m-20" data-title="Presets"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/presets"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/sliders.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/sliders.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Presets</span></div></div></a></li><li id="/guides/features/classifiers" class="relative scroll-m-4 first:scroll-m-20" data-title="Custom Classifiers"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/classifiers"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/tag.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/tag.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Custom Classifiers</span></div></div></a></li><li id="/guides/features/response-caching" class="relative scroll-m-4 first:scroll-m-20" data-title="Response Caching"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/response-caching"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/box-archive.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/box-archive.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Response Caching</span></div></div></a></li><li id="/guides/features/tool-calling" class="relative scroll-m-4 first:scroll-m-20" data-title="Tool Calling"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/tool-calling"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/toolbox.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/toolbox.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Tool Calling</span></div></div></a></li><li data-title="Server Tools" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/server.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/server.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class=""><span>Server Tools</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li data-title="Plugins" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/plug.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/plug.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class=""><span>Plugins</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li id="/guides/features/structured-outputs" class="relative scroll-m-4 first:scroll-m-20" data-title="Structured Outputs"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/structured-outputs"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/code.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/code.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Structured Outputs</span></div></div></a></li><li id="/guides/features/message-transforms" class="relative scroll-m-4 first:scroll-m-20" data-title="Message Transforms"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/message-transforms"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/arrows-rotate.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/arrows-rotate.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Message Transforms</span></div></div></a></li><li id="/guides/features/zero-completion-insurance" class="relative scroll-m-4 first:scroll-m-20" data-title="Zero Completion Insurance"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/zero-completion-insurance"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Zero Completion Insurance</span></div></div></a></li><li id="/guides/features/zdr" class="relative scroll-m-4 first:scroll-m-20" data-title="ZDR"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/zdr"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield-halved.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield-halved.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">ZDR</span></div></div></a></li><li id="/app-attribution" class="relative scroll-m-4 first:scroll-m-20" data-title="App Attribution"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/app-attribution"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/chart-line.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/chart-line.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">App Attribution</span></div></div></a></li><li data-title="Guardrails" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield-check.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield-check.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class=""><span>Guardrails</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li><li id="/guides/features/service-tiers" class="relative scroll-m-4 first:scroll-m-20" data-title="Service Tiers"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/service-tiers"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/layer-group.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/layer-group.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Service Tiers</span></div></div></a></li><li id="/guides/features/sovereign-ai" class="relative scroll-m-4 first:scroll-m-20" data-title="Sovereign AI"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/sovereign-ai"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/globe.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/globe.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Sovereign AI</span></div></div></a></li><li id="/guides/features/router-metadata" class="relative scroll-m-4 first:scroll-m-20" data-title="Router Metadata"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/router-metadata"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/circle-info.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/circle-info.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Router Metadata</span></div></div></a></li><li id="/guides/features/input-output-logging" class="relative scroll-m-4 first:scroll-m-20" data-title="Input &amp; Output Logging"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/features/input-output-logging"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/file-lines.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/file-lines.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Input &amp; Output Logging</span></div></div></a></li><li data-title="Broadcast" data-group-tag="" class="space-y-px"><button class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" aria-expanded="false"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/broadcast-tower.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/broadcast-tower.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class=""><span>Broadcast</span></div><div class="h-[1lh] flex items-center shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 w-2 h-[1lh] -mr-0.5"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></button></li></ul></div><div class="mt-6 lg:mt-8"><div class="sidebar-group-header flex items-center gap-2.5 pl-4 mb-3.5 lg:mb-2.5 font-semibold text-gray-900 dark:text-gray-200"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! sidebar-group-icon h-3.5 w-3.5 bg-current" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/terminal.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/terminal.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg><h3 class="sidebar-title text-[length:inherit] font-[inherit] leading-[inherit]"><span>Ori</span></h3></div><ul class="sidebar-group space-y-px"><li id="/guides/ori/eval" class="relative scroll-m-4 first:scroll-m-20" data-title="Ori Eval"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/ori/eval"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/vial-circle-check.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/vial-circle-check.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Ori Eval</span></div></div></a></li><li id="/guides/ori/harness" class="relative scroll-m-4 first:scroll-m-20" data-title="Ori Harness"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/ori/harness"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/plug.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/plug.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Ori Harness</span></div></div></a></li><li id="/guides/ori/files" class="relative scroll-m-4 first:scroll-m-20" data-title="Where Ori writes files"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/ori/files"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/folder.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/folder.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Where Ori writes files</span></div></div></a></li></ul></div><div class="mt-6 lg:mt-8"><div class="sidebar-group-header flex items-center gap-2.5 pl-4 mb-3.5 lg:mb-2.5 font-semibold text-gray-900 dark:text-gray-200"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! sidebar-group-icon h-3.5 w-3.5 bg-current" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/shield.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg><h3 class="sidebar-title text-[length:inherit] font-[inherit] leading-[inherit]"><span>Privacy</span></h3></div><ul class="sidebar-group space-y-px"><li id="/guides/privacy/data-collection" class="relative scroll-m-4 first:scroll-m-20" data-title="Data Collection"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/privacy/data-collection"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/database.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/database.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Data Collection</span></div></div></a></li><li id="/guides/privacy/provider-logging" class="relative scroll-m-4 first:scroll-m-20" data-title="Provider Logging"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/privacy/provider-logging"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/file-lines.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/file-lines.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Provider Logging</span></div></div></a></li></ul></div><div class="mt-6 lg:mt-8"><div class="sidebar-group-header flex items-center gap-2.5 pl-4 mb-3.5 lg:mb-2.5 font-semibold text-gray-900 dark:text-gray-200"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! sidebar-group-icon h-3.5 w-3.5 bg-current" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/lightbulb.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/lightbulb.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg><h3 class="sidebar-title text-[length:inherit] font-[inherit] leading-[inherit]"><span>Best Practices</span></h3></div><ul class="sidebar-group space-y-px"><li id="/guides/best-practices/latency-and-performance" class="relative scroll-m-4 first:scroll-m-20" data-title="Latency and Performance"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/best-practices/latency-and-performance"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/gauge-high.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/gauge-high.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Latency and Performance</span></div></div></a></li><li id="/guides/best-practices/prompt-caching" class="relative scroll-m-4 first:scroll-m-20" data-title="Prompt Caching"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/best-practices/prompt-caching"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/database.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/database.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Prompt Caching</span></div></div></a></li><li id="/guides/best-practices/uptime-optimization" class="relative scroll-m-4 first:scroll-m-20" data-title="Uptime Optimization"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/best-practices/uptime-optimization"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/chart-line.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/chart-line.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Uptime Optimization</span></div></div></a></li><li id="/guides/best-practices/reasoning-tokens" class="relative scroll-m-4 first:scroll-m-20" data-title="Reasoning Tokens"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/best-practices/reasoning-tokens"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/lightbulb.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/lightbulb.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Reasoning Tokens</span></div></div></a></li></ul></div><div class="mt-6 lg:mt-8"><div class="sidebar-group-header flex items-center gap-2.5 pl-4 mb-3.5 lg:mb-2.5 font-semibold text-gray-900 dark:text-gray-200"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! sidebar-group-icon h-3.5 w-3.5 bg-current" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/users.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/users.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg><h3 class="sidebar-title text-[length:inherit] font-[inherit] leading-[inherit]"><span>Community</span></h3></div><ul class="sidebar-group space-y-px"><li id="/guides/community/for-providers" class="relative scroll-m-4 first:scroll-m-20" data-title="For Providers"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/for-providers"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cloud.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/cloud.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">For Providers</span></div></div></a></li><li id="/guides/community/frameworks-and-integrations-overview" class="relative scroll-m-4 first:scroll-m-20" data-title="Frameworks and Integrations Overview"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/frameworks-and-integrations-overview"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Frameworks and Integrations Overview</span></div></div></a></li><li id="/guides/community/awesome-openrouter" class="relative scroll-m-4 first:scroll-m-20" data-title="Awesome OpenRouter"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/awesome-openrouter"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/star.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/star.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Awesome OpenRouter</span></div></div></a></li><li id="/guides/community/effect-ai-sdk" class="relative scroll-m-4 first:scroll-m-20" data-title="Effect AI SDK"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/effect-ai-sdk"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Effect AI SDK</span></div></div></a></li><li id="/guides/community/arize" class="relative scroll-m-4 first:scroll-m-20" data-title="Arize AX"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/arize"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Arize AX</span></div></div></a></li><li id="/guides/community/langchain" class="relative scroll-m-4 first:scroll-m-20" data-title="LangChain"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/langchain"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">LangChain</span></div></div></a></li><li id="/guides/community/livekit" class="relative scroll-m-4 first:scroll-m-20" data-title="LiveKit"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/livekit"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">LiveKit</span></div></div></a></li><li id="/guides/community/langfuse" class="relative scroll-m-4 first:scroll-m-20" data-title="Langfuse"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/langfuse"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Langfuse</span></div></div></a></li><li id="/guides/community/mastra" class="relative scroll-m-4 first:scroll-m-20" data-title="Mastra"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/mastra"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Mastra</span></div></div></a></li><li id="/guides/community/openai-sdk" class="relative scroll-m-4 first:scroll-m-20" data-title="OpenAI SDK"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/openai-sdk"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">OpenAI SDK</span></div></div></a></li><li id="/guides/community/anthropic-agent-sdk" class="relative scroll-m-4 first:scroll-m-20" data-title="Anthropic Agent SDK"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/anthropic-agent-sdk"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Anthropic Agent SDK</span></div></div></a></li><li id="/guides/community/pydantic-ai" class="relative scroll-m-4 first:scroll-m-20" data-title="PydanticAI"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/pydantic-ai"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">PydanticAI</span></div></div></a></li><li id="/guides/community/render" class="relative scroll-m-4 first:scroll-m-20" data-title="Render"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/render"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Render</span></div></div></a></li><li id="/guides/community/replit" class="relative scroll-m-4 first:scroll-m-20" data-title="Replit"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/replit"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Replit</span></div></div></a></li><li id="/guides/community/tanstack-ai" class="relative scroll-m-4 first:scroll-m-20" data-title="TanStack AI"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/tanstack-ai"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">TanStack AI</span></div></div></a></li><li id="/guides/community/vercel-ai-sdk" class="relative scroll-m-4 first:scroll-m-20" data-title="Vercel AI SDK"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/vercel-ai-sdk"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Vercel AI SDK</span></div></div></a></li><li id="/guides/community/xcode" class="relative scroll-m-4 first:scroll-m-20" data-title="Xcode"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/xcode"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Xcode</span></div></div></a></li><li id="/guides/community/zapier" class="relative scroll-m-4 first:scroll-m-20" data-title="Zapier"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/zapier"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Zapier</span></div></div></a></li><li id="/guides/community/infisical" class="relative scroll-m-4 first:scroll-m-20" data-title="Infisical"><a class="group flex items-start pr-3 py-1.5 cursor-pointer gap-x-3 text-left focus-visible:-outline-offset-2 break-words hyphens-auto rounded-xl w-full outline-offset-[-1px] hover:bg-gray-600/5 dark:hover:bg-gray-200/5 text-gray-700 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300" style="padding-left:1rem" href="/docs/guides/community/infisical"><div class="h-[1lh] flex items-center shrink-0"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-4 bg-gray-400 dark:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/puzzle-piece.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="flex-1 flex min-w-0 items-start gap-x-2.5"><div class="flex min-w-0 flex-1 flex-wrap items-center gap-1.5 [word-break:break-word]"><span class="min-w-0 max-w-full break-words hyphens-auto">Infisical</span></div></div></a></li></ul></div><script>(function () {
  try {
    if (window.__mintlifyInitialSidebarScrollDone) return;
    window.__mintlifyInitialSidebarScrollDone = true;

    var path = (window.location.pathname || '/').split('#')[0].split('?')[0];
    if (path.endsWith('/index')) path = path.slice(0, -6);
    else if (path === 'index') path = '';

    var candidates = [];
    if (path) candidates.push(path);
    if (path.startsWith('/')) candidates.push(path.slice(1));
    else candidates.push('/' + path);

    var item = null;
    for (var i = 0; i < candidates.length && !item; i++) {
      var matches = document.querySelectorAll('[id="' + candidates[i].replace(/"/g, '\\"') + '"]');
      for (var j = 0; j < matches.length; j++) {
        if (matches[j].closest('#sidebar, #sidebar-content')) {
          item = matches[j];
          break;
        }
      }
    }
    if (!item) return;

    var parent = item.closest('[data-component-part="scroll-area-viewport"]');
    if (!parent) {
      parent = item.parentElement;
      while (parent) {
        var style = getComputedStyle(parent);
        if (style.overflowY === 'auto' || style.overflowY === 'scroll') break;
        parent = parent.parentElement;
      }
    }
    if (!parent) return;

    var parentRect = parent.getBoundingClientRect();
    var itemRect = item.getBoundingClientRect();
    if (itemRect.top >= parentRect.top && itemRect.bottom <= parentRect.bottom) return;

    var itemTopRelative = itemRect.top - parentRect.top + parent.scrollTop;
    parent.scrollTop = itemTopRelative - parentRect.height / 2 + itemRect.height / 2;
  } catch (e) {}
})();</script></div></div></div></div></div></nav><main id="content-container" class="lg:flex-1 lg:min-w-0"><script 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&auto=format&n=ksNSeB_K7gD-BUDh&q=85&s=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/faq#webpage","url":"https://openrouter.ai/docs/faq","name":"Frequently Asked Questions","description":"Common questions about OpenRouter","dateModified":"2026-08-10T18:01:31.180Z","isPartOf":{"@id":"https://openrouter.ai/docs#website"},"breadcrumb":{"@id":"https://openrouter.ai/docs/faq#breadcrumb"}},{"@type":"BreadcrumbList","@id":"https://openrouter.ai/docs/faq#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Overview","item":"https://openrouter.ai/docs/quickstart"},{"@type":"ListItem","position":2,"name":"Frequently Asked Questions","item":"https://openrouter.ai/docs/faq"}]},{"@type":["Article","TechArticle"],"@id":"https://openrouter.ai/docs/faq#article","headline":"Frequently Asked Questions","name":"Frequently Asked Questions","description":"Common questions about OpenRouter","url":"https://openrouter.ai/docs/faq","mainEntityOfPage":{"@id":"https://openrouter.ai/docs/faq#webpage"},"image":"https://openrouter.ai/dynamic-og?pathname=faq&title=FAQ&description=Common%20questions%20about%20OpenRouter","dateModified":"2026-08-10T18:01:31.180Z","publisher":{"@id":"https://openrouter.ai/#organization"},"isPartOf":{"@id":"https://openrouter.ai/docs#website"}}]}</script><script>document.documentElement.setAttribute('data-page-mode', "none");</script><span class="fixed inset-0 bg-background-light dark:bg-background-dark -z-10 pointer-events-none" id="background-color"></span><span class="block absolute dark:hidden inset-0 overflow-hidden pointer-events-none"></span><span class="hidden absolute dark:block inset-0 overflow-hidden pointer-events-none"></span><style data-custom-css-index="0" data-custom-css-path="style.css">/*
 * OpenRouter Docs — Bauhaus theme overrides
 *
 * Custom CSS for Mintlify to align with the bauhaus design system.
 * Uses Mintlify's exposed ID/element selectors for targeted styling.
 *
 * Brand palette:
 *   Ink #03080A   Cloud #FCFCFE   Grape #7624F4
 *   Volt #C8FF00  Coral #FF6849   Royal #035ADE
 */

/* ── Code font: Geist Mono ── */
@import url('https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500;600&display=swap');

/*
 * Inverse semantic pair mirrors packages/frontend/components/v2/theme.css.
 * Mintlify is a separate app, so its generated tooltip DOM uses the same
 * light Ink/Cloud and dark Cloud/Ink values through RGB channel variables.
 */
: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;
}

/* ── Text selection: accent tint per DESIGN.md ── */
::selection {
  background: rgb(118 36 244 / 0.14);
}

.dark ::selection,
html.dark ::selection {
  background: rgb(200 255 0 / 0.14);
  color: inherit;
}

/* ── Dark-mode accent swap: Volt (#C8FF00 = rgb(200 255 0)) per DESIGN.md ──
 * Mintlify + Tailwind use space-separated RGB: rgb(var(--primary-light) / alpha).
 * Override accent in dark mode from Grape to Volt. */
.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;

  /* ── Dark-mode border: Cloud at 14% per DESIGN.md ── */
  --default-border-color: rgb(252 252 254 / 0.14);
}

/* ── Border radius: bauhaus 4/6/8px scale ── */
#navbar {
  border-radius: 0;
}

/* Sidebar active item */
#sidebar a[aria-current="page"],
nav[aria-label="Pages"] a[aria-current="page"] {
  border-radius: 8px;
}

/* Cards and code blocks */
[data-component-part="code-block-root"] {
  border-radius: 8px;
}

/* ── Link styling per DESIGN.md ──
 * underline at 40% opacity of current color, full on hover, offset 2px */
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;
}

/* ── Sidebar badges: outline style ── */
.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;
}

/* Match the home navbar logo height (h-6 / 1.5rem). */
.nav-logo {
  height: 1.5rem;
}

/* ── Sidebar expand chevrons: raise dark-mode contrast ──
 * Collapsible group toggles render a caret whose default dark tone
 * (gray-600 on Ink) is nearly invisible, so it isn't clear which items
 * have subsections. Derive the caret from Cloud via the DESIGN.md opacity
 * scale: muted-foreground (Cloud `a0`) at rest, full Cloud (foreground) on
 * hover — no custom hex outside the brand palette. */
.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);
}

/* ── Sidebar expand chevrons: enlarge for legibility ──
 * The default caret (w-2 ≈ 8px) is easy to miss; bump its footprint so it
 * reads clearly as an expandable affordance. */
nav[aria-label="Pages"] button[aria-expanded] svg.transition-transform {
  width: 0.625rem;
  height: 0.625rem;
}

/* ── Tooltips: inverse surface pairing ──
 * Mintlify has a foreground variable for Radix tooltips but no matching
 * background variable, so both values are mirrored here from the inverse pair.
 * Radix opens tooltips as "delayed-open" on a normal hover but "instant-open"
 * when moving between triggers within its skip-delay window; cover both. */
[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 + code block alignment ──
 * A code block that is the only child of a callout body carries Mintlify's default
 * prose margins (mt-5 mb-8), which push the snippet down so it no longer lines
 * up with the top-aligned callout icon. Drop those margins so the snippet's
 * top edge aligns with the icon. */
.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;
}

/* ── Floating code-block buttons: opaque background ──
 * Mintlify only backs the floating buttons (report / copy / ask) with
 * gray-100/gray-800 when the code block has no fade overlay
 * (group-[:not(:has([data-fade-overlay]))]). Collapsible/expandable blocks
 * always carry a fade overlay, so the buttons stay transparent and the code
 * text bleeds through behind them. Apply the same background unconditionally
 * so the buttons are legible on every code block. */
[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);
}

/* ── Changelog: Update tags as outline pills (matches sidebar badges) ── */
[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);
}

/* ── Changelog: selected filter pill readability ──
 * Mintlify renders the active filter as bg-primary + text-white/90. In dark
 * mode our primary is Volt (#C8FF00), so switch the text to Ink per DESIGN.md. */
.dark #changelog-filters-content button.bg-primary,
html.dark #changelog-filters-content button.bg-primary {
  color: rgb(3 8 10 / 0.9) !important;
}

/* ── Changelog: separate inline status badges from bullet text ── */
.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;
}
</style><!--$--><!--/$--><div class="flex flex-row-reverse gap-12 box-border w-full pt-40 lg:pt-10"><div class="hidden xl:flex self-start sticky xl:flex-col max-w-[28rem] z-21 h-[calc(100vh-9.5rem)] top-[9.5rem]" id="content-side-layout"><div class="z-10 hidden xl:flex box-border max-h-full pl-10 w-[19rem]" id="table-of-contents-layout"><div role="presentation" style="position:relative;--scroll-area-corner-height:0px;--scroll-area-corner-width:0px" data-component-part="scroll-area" id="table-of-contents" class="min-w-0 text-gray-600 text-sm leading-6 w-[16.5rem] -mt-10"><div role="presentation" data-id="base-ui-_R_1dktbsnlhjiuasnpfiutb_-viewport" tabindex="-1" class="size-full rounded-[inherit] [--scroll-area-fade-size:32px] pt-10 pb-4 base-ui-disable-scrollbar" style="overflow:scroll" data-component-part="scroll-area-viewport"><div role="presentation" style="min-width:fit-content" data-component-part="scroll-area-content" class="min-w-0! w-full space-y-2"><nav aria-labelledby="_R_dktbsnlhjiuasnpfiutb_"><h2 id="_R_dktbsnlhjiuasnpfiutb_" class="m-0 font-normal"><button type="button" class="text-gray-700 dark:text-gray-300 font-medium flex items-center space-x-2 hover:text-gray-900 dark:hover:text-gray-100 transition-colors cursor-pointer"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M2.75 14.25H15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.75 3.75H15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.75 9H8.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg><span>On this page</span></button></h2><div><ul id="table-of-contents-content" class="toc"><li class="toc-item relative" data-depth="0"><a style="--toc-padding-left:0rem" href="#getting-started" class="break-words py-1 block pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 dark:text-gray-400 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light [[data-active]&gt;&amp;]:[text-shadow:-0.15px_0_0_currentColor,0.15px_0_0_currentColor]">Getting started</a></li><li class="toc-item relative" data-depth="0"><a style="--toc-padding-left:0rem" href="#pricing-and-fees" class="break-words py-1 block pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 dark:text-gray-400 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light [[data-active]&gt;&amp;]:[text-shadow:-0.15px_0_0_currentColor,0.15px_0_0_currentColor]">Pricing and fees</a></li><li class="toc-item relative" data-depth="0"><a style="--toc-padding-left:0rem" href="#models-and-providers" class="break-words py-1 block pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 dark:text-gray-400 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light [[data-active]&gt;&amp;]:[text-shadow:-0.15px_0_0_currentColor,0.15px_0_0_currentColor]">Models and providers</a></li><li class="toc-item relative" data-depth="0"><a style="--toc-padding-left:0rem" href="#api-technical-specifications" class="break-words py-1 block pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 dark:text-gray-400 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light [[data-active]&gt;&amp;]:[text-shadow:-0.15px_0_0_currentColor,0.15px_0_0_currentColor]">API technical specifications</a></li><li class="toc-item relative" data-depth="0"><a style="--toc-padding-left:0rem" href="#privacy-and-data-logging" class="break-words py-1 block pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 dark:text-gray-400 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light [[data-active]&gt;&amp;]:[text-shadow:-0.15px_0_0_currentColor,0.15px_0_0_currentColor]">Privacy and data logging</a></li><li class="toc-item relative" data-depth="0"><a style="--toc-padding-left:0rem" href="#credit-and-billing-systems" class="break-words py-1 block pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 dark:text-gray-400 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light [[data-active]&gt;&amp;]:[text-shadow:-0.15px_0_0_currentColor,0.15px_0_0_currentColor]">Credit and billing systems</a></li><li class="toc-item relative" data-depth="0"><a style="--toc-padding-left:0rem" href="#account-management" class="break-words py-1 block pl-[calc(var(--toc-padding-left)+var(--toc-focus-padding,0rem))] focus-visible:[--toc-focus-padding:0.25rem] focus-visible:-ml-1 focus-visible:-outline-offset-2 dark:text-gray-400 [li:not([data-active])&gt;&amp;:hover]:text-gray-900 dark:[li:not([data-active])&gt;&amp;:hover]:text-gray-300 [[data-active]&gt;&amp;]:text-primary dark:[[data-active]&gt;&amp;]:text-primary-light [[data-active]&gt;&amp;]:[text-shadow:-0.15px_0_0_currentColor,0.15px_0_0_currentColor]">Account management</a></li></ul></div></nav></div></div></div></div></div><div class="relative grow box-border flex-col w-full mx-auto px-1 lg:pl-[5.7rem] lg:-ml-12 xl:w-[calc(100%-28rem)]" id="content-area"><header id="header" class="relative leading-none @container/page-header"><div class="mt-0.5 space-y-2.5"><div class="eyebrow h-5 text-primary dark:text-primary-light text-sm font-semibold">Overview</div><div class="flex flex-col sm:flex-row items-start sm:items-center relative gap-2 min-w-0"><h1 id="page-title" class="text-3xl sm:text-4xl text-gray-900 tracking-tight dark:text-gray-200 [overflow-wrap:anywhere] font-semibold">Frequently Asked Questions</h1><div id="page-context-menu" class="items-center shrink-0 min-w-[156px] justify-end ml-auto hidden @[520px]/page-header:flex"><button id="page-context-menu-button" class="rounded-l-xl px-3 text-gray-700 dark:text-gray-300 py-1.5 border border-gray-200 dark:border-white/[0.07] bg-background-light dark:bg-background-dark hover:bg-gray-600/5 dark:hover:bg-gray-200/5 border-r-0" aria-label="Copy page"><div class="flex items-center gap-2 text-sm text-center font-medium"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg><span class="grid"><span aria-hidden="true" class="invisible col-start-1 row-start-1">Copy page</span><span class="col-start-1 row-start-1">Copy page</span></span></div></button><button type="button" tabindex="0" aria-haspopup="menu" id="base-ui-_R_1mshlktbsnlhjiuasnpfiutb_" aria-label="More actions" class="group disabled:pointer-events-none [&amp;&gt;span]:line-clamp-1 overflow-hidden group focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-primary dark:focus-visible:outline-primary-light py-0.5 gap-1 text-sm text-gray-950/50 dark:text-white/50 group-hover:text-gray-950/70 dark:group-hover:text-white/70 rounded-none rounded-r-xl border flex items-center justify-center h-[34px] border-gray-200 aspect-square dark:border-white/[0.07] bg-background-light dark:bg-background-dark hover:bg-gray-600/5 dark:hover:bg-gray-200/5"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 rotate-90"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div></div><div class="mt-2 text-lg prose prose-gray dark:prose-invert [&amp;&gt;*]:[overflow-wrap:anywhere]"><p>Common questions about OpenRouter</p></div><div id="page-context-menu" class="flex items-center shrink-0 min-w-[156px] mt-3 @[520px]/page-header:hidden"><button id="page-context-menu-button" class="rounded-l-xl px-3 text-gray-700 dark:text-gray-300 py-1.5 border border-gray-200 dark:border-white/[0.07] bg-background-light dark:bg-background-dark hover:bg-gray-600/5 dark:hover:bg-gray-200/5 border-r-0" aria-label="Copy page"><div class="flex items-center gap-2 text-sm text-center font-medium"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg><span class="grid"><span aria-hidden="true" class="invisible col-start-1 row-start-1">Copy page</span><span class="col-start-1 row-start-1">Copy page</span></span></div></button><button type="button" tabindex="0" aria-haspopup="menu" id="base-ui-_R_3dhlktbsnlhjiuasnpfiutb_" aria-label="More actions" class="group disabled:pointer-events-none [&amp;&gt;span]:line-clamp-1 overflow-hidden group focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-primary dark:focus-visible:outline-primary-light py-0.5 gap-1 text-sm text-gray-950/50 dark:text-white/50 group-hover:text-gray-950/70 dark:group-hover:text-white/70 rounded-none rounded-r-xl border flex items-center justify-center h-[34px] border-gray-200 aspect-square dark:border-white/[0.07] bg-background-light dark:bg-background-dark hover:bg-gray-600/5 dark:hover:bg-gray-200/5"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3 transition-transform text-gray-400 group-hover:text-gray-600 dark:text-gray-600 dark:group-hover:text-gray-400 shrink-0 rotate-90"><path d="M6.5 2.75L12.75 9L6.5 15.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></header><div class="mdx-content @container/columns-container relative mt-8 prose prose-gray dark:prose-invert [contain:inline-size] isolate empty:hidden mb-14" data-page-title="Frequently Asked Questions" data-page-href="/faq" id="content"><h2 class="flex whitespace-pre-wrap group font-semibold" id="getting-started"><div class="absolute" tabindex="-1"><a href="#getting-started" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.311 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">Getting started</span></h2>
<div class="accordion-group [&amp;&gt;details]:border-0 [&amp;&gt;details]:rounded-none [&amp;&gt;details&gt;summary]:rounded-none [&amp;&gt;details]:mb-0 overflow-hidden mt-0 mb-3 rounded-xl prose prose-gray dark:prose-invert divide-y! divide-inherit! border dark:border-white/10"><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="why-should-i-use-openrouter-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="why-should-i-use-openrouter" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="why-should-i-use-openrouter-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">Why should I use OpenRouter?</p></div></summary><div id="why-should-i-use-openrouter-accordion-children" role="region" aria-labelledby="why-should-i-use-openrouter-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">OpenRouter provides a unified API to access all the major LLM models on the
market. It also allows users to aggregate their billing in one place and
keep track of all of their usage using our analytics.</span><span data-as="p">OpenRouter passes through the pricing of the underlying providers, while pooling their uptime,
so you get the same pricing you’d get from the provider directly, with a
unified API and fallbacks so that you get much better uptime.</span><span data-as="p"><a class="link" href="/docs/quickstart">Learn more in our Quickstart guide</a>.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="how-do-i-get-started-with-openrouter-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="how-do-i-get-started-with-openrouter" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="how-do-i-get-started-with-openrouter-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">How do I get started with OpenRouter?</p></div></summary><div id="how-do-i-get-started-with-openrouter-accordion-children" role="region" aria-labelledby="how-do-i-get-started-with-openrouter-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">To get started, create an account and add credits on the
<a href="https://openrouter.ai/settings/credits" target="_blank" rel="noreferrer" class="link">Credits</a> page. Credits are simply
deposits on OpenRouter that you use for LLM inference.
When you use the API or chat interface, we deduct the request cost from your
credits. Each model and provider has a different price per million tokens.</span><span data-as="p">Once you have credits you can either use the chat room, or create API keys
and start using the API. You can read our <a class="link" href="/docs/quickstart">quickstart</a>
or <a class="link" href="/docs/cookbook/get-started/enterprise-quickstart">enterprise</a> guide for code samples and more.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="how-do-i-get-support-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="how-do-i-get-support" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="how-do-i-get-support-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">How do I get support?</p></div></summary><div id="how-do-i-get-support-accordion-children" role="region" aria-labelledby="how-do-i-get-support-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">The best way to get technical support is to join our
<a href="https://discord.gg/openrouter" target="_blank" rel="noreferrer" class="link">Discord</a> and ask the community in the #help forum.</span><span data-as="p">For billing and account management questions, please contact us at <a href="mailto:support@openrouter.ai" target="_blank" rel="noreferrer" class="link">support@openrouter.ai</a>.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="how-do-i-get-billed-for-my-usage-on-openrouter-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="how-do-i-get-billed-for-my-usage-on-openrouter" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="how-do-i-get-billed-for-my-usage-on-openrouter-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">How do I get billed for my usage on OpenRouter?</p></div></summary><div id="how-do-i-get-billed-for-my-usage-on-openrouter-accordion-children" role="region" aria-labelledby="how-do-i-get-billed-for-my-usage-on-openrouter-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">For each model we have the pricing displayed per million tokens. There is
usually a different price for prompt and completion tokens. There are also
models that charge per request, for images and for reasoning tokens. All of
these details will be visible on the models page.</span><span data-as="p">When you make a request to OpenRouter, we receive the total number of tokens processed
by the provider. We then calculate the corresponding cost and deduct it from your credits.
You can review your complete usage history in the <a href="https://openrouter.ai/activity" target="_blank" rel="noreferrer" class="link">Activity tab</a>.</span><span data-as="p">We pass through the pricing of the underlying providers; there is no markup
on inference pricing (however we do charge a <a class="link" href="/docs/faq#pricing-and-fees">fee</a> when purchasing credits).</span></div></details></div>
<h2 class="flex whitespace-pre-wrap group font-semibold" id="pricing-and-fees"><div class="absolute" tabindex="-1"><a href="#pricing-and-fees" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.311 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">Pricing and fees</span></h2>
<div class="accordion-group [&amp;&gt;details]:border-0 [&amp;&gt;details]:rounded-none [&amp;&gt;details&gt;summary]:rounded-none [&amp;&gt;details]:mb-0 overflow-hidden mt-0 mb-3 rounded-xl prose prose-gray dark:prose-invert divide-y! divide-inherit! border dark:border-white/10"><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="what-are-the-fees-for-using-openrouter-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="what-are-the-fees-for-using-openrouter" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="what-are-the-fees-for-using-openrouter-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">What are the fees for using OpenRouter?</p></div></summary><div id="what-are-the-fees-for-using-openrouter-accordion-children" role="region" aria-labelledby="what-are-the-fees-for-using-openrouter-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">OpenRouter charges a <!-- --> fee when you purchase credits. We pass through
the pricing of the underlying model providers without any markup, so you pay
the same rate as you would directly with the provider.</span><span data-as="p">Crypto payments are charged a fee of <!-- -->.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="is-there-a-fee-for-using-my-own-provider-keys-byok-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="is-there-a-fee-for-using-my-own-provider-keys-byok" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="is-there-a-fee-for-using-my-own-provider-keys-byok-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">Is there a fee for using my own provider keys (BYOK)?</p></div></summary><div id="is-there-a-fee-for-using-my-own-provider-keys-byok-accordion-children" role="region" aria-labelledby="is-there-a-fee-for-using-my-own-provider-keys-byok-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">Yes. BYOK has a plan-dependent free allowance measured by list-price
inference cost, not request count. Pay-as-you-go includes
<!-- --> per month with no BYOK fee,
while Enterprise includes <!-- -->.
Usage above the allowance has a fee of <!-- -->% of what the
same model and provider would normally cost on OpenRouter. This fee is
deducted from your OpenRouter credits. This allows you to manage your rate
limits and costs directly with the provider while still using
OpenRouter’s unified interface. See the
<a href="https://openrouter.ai/pricing" target="_blank" rel="noreferrer" class="link">pricing page</a> for details.</span><span data-as="p"><a class="link" href="/docs/guides/overview/auth/byok">Learn more about BYOK</a>.</span></div></details></div>
<h2 class="flex whitespace-pre-wrap group font-semibold" id="models-and-providers"><div class="absolute" tabindex="-1"><a href="#models-and-providers" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.311 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">Models and providers</span></h2>
<div class="accordion-group [&amp;&gt;details]:border-0 [&amp;&gt;details]:rounded-none [&amp;&gt;details&gt;summary]:rounded-none [&amp;&gt;details]:mb-0 overflow-hidden mt-0 mb-3 rounded-xl prose prose-gray dark:prose-invert divide-y! divide-inherit! border dark:border-white/10"><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="what-llm-models-does-openrouter-support-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="what-llm-models-does-openrouter-support" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="what-llm-models-does-openrouter-support-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">What LLM models does OpenRouter support?</p></div></summary><div id="what-llm-models-does-openrouter-support-accordion-children" role="region" aria-labelledby="what-llm-models-does-openrouter-support-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">OpenRouter provides access to a wide variety of LLM models, including frontier models from major AI labs.
For a complete list of models you can visit the <a href="https://openrouter.ai/models" target="_blank" rel="noreferrer" class="link">models browser</a> or fetch the list through the <a href="https://openrouter.ai/api/v1/models" target="_blank" rel="noreferrer" class="link">models api</a>.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="how-frequently-are-new-models-added-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="how-frequently-are-new-models-added" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="how-frequently-are-new-models-added-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">How frequently are new models added?</p></div></summary><div id="how-frequently-are-new-models-added-accordion-children" role="region" aria-labelledby="how-frequently-are-new-models-added-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">We work on adding models as quickly as we can. We often have partnerships with
the labs releasing models and can release models as soon as they are
available. If there is a model missing that you’d like OpenRouter to support, feel free to message us on
<a href="https://discord.gg/openrouter" target="_blank" rel="noreferrer" class="link">Discord</a>.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="what-are-model-variants-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="what-are-model-variants" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="what-are-model-variants-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">What are model variants?</p></div></summary><div id="what-are-model-variants-accordion-children" role="region" aria-labelledby="what-are-model-variants-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">Variants are suffixes that can be added to the model slug to change its behavior.</span><span data-as="p">Static variants can only be used with specific models and these are listed in our <a href="https://openrouter.ai/api/v1/models" target="_blank" rel="noreferrer" class="link">models api</a>.</span><ol>
<li><code>:free</code> - The model is always provided for free and has low rate limits. <a class="link" href="/docs/guides/routing/model-variants/free">Learn more</a>.</li>
<li><code>:extended</code> - The model has longer than usual context length. <a class="link" href="/docs/guides/routing/model-variants/extended">Learn more</a>.</li>
<li><code>:thinking</code> - The model supports reasoning by default. <a class="link" href="/docs/guides/routing/model-variants/thinking">Learn more</a>.</li>
</ol><span data-as="p">Dynamic variants can be used on all models and they change the behavior of how the request is routed or used.</span><ol>
<li><code>:online</code> (deprecated) - All requests will run a query to extract web results that are attached to the prompt. Use the <a class="link" href="/docs/guides/features/server-tools/web-search"><code>openrouter:web_search</code> server tool</a> instead. <a class="link" href="/docs/guides/routing/model-variants/online">Learn more</a>.</li>
<li><code>:nitro</code> - Providers will be sorted by throughput rather than the default sort, optimizing for faster response times. <a class="link" href="/docs/guides/routing/provider-selection#nitro-shortcut">Learn more</a>.</li>
<li><code>:floor</code> - Providers will be sorted by price rather than the default sort, prioritizing the most cost-effective options. <a class="link" href="/docs/guides/routing/provider-selection#floor-price-shortcut">Learn more</a>.</li>
<li><code>:exacto</code> - Providers will be sorted using quality-first signals tuned for tool-calling reliability. <a class="link" href="/docs/guides/routing/model-variants/exacto">Learn more</a>.</li>
</ol></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="i-am-an-inference-provider-how-can-i-get-listed-on-openrouter-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="i-am-an-inference-provider-how-can-i-get-listed-on-openrouter" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="i-am-an-inference-provider-how-can-i-get-listed-on-openrouter-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">I am an inference provider, how can I get listed on OpenRouter?</p></div></summary><div id="i-am-an-inference-provider-how-can-i-get-listed-on-openrouter-accordion-children" role="region" aria-labelledby="i-am-an-inference-provider-how-can-i-get-listed-on-openrouter-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">You can read our requirements at the <a class="link" href="/docs/guides/community/for-providers">Providers
page</a>. If you would like to contact us, the best
place to reach us is over email.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="what-is-the-expected-latency-response-time-for-different-models-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="what-is-the-expected-latency-response-time-for-different-models" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="what-is-the-expected-latency-response-time-for-different-models-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">What is the expected latency/response time for different models?</p></div></summary><div id="what-is-the-expected-latency-response-time-for-different-models-accordion-children" role="region" aria-labelledby="what-is-the-expected-latency-response-time-for-different-models-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">For each model on OpenRouter we show the latency (time to first token) and the token
throughput for all providers. You can use this to estimate how long requests
will take. If you would like to optimize for throughput you can use the
<code>:nitro</code> variant to route to the fastest provider.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="how-does-model-fallback-work-if-a-provider-is-unavailable-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="how-does-model-fallback-work-if-a-provider-is-unavailable" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="how-does-model-fallback-work-if-a-provider-is-unavailable-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">How does model fallback work if a provider is unavailable?</p></div></summary><div id="how-does-model-fallback-work-if-a-provider-is-unavailable-accordion-children" role="region" aria-labelledby="how-does-model-fallback-work-if-a-provider-is-unavailable-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">If a provider returns an error OpenRouter will automatically fall back to the
next provider. This happens transparently to the user and allows production
apps to be much more resilient. OpenRouter has a lot of options to configure
the provider routing behavior. The full documentation can be found <a class="link" href="/docs/guides/routing/provider-selection">here</a>.</span></div></details></div>
<h2 class="flex whitespace-pre-wrap group font-semibold" id="api-technical-specifications"><div class="absolute" tabindex="-1"><a href="#api-technical-specifications" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.311 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">API technical specifications</span></h2>
<div class="accordion-group [&amp;&gt;details]:border-0 [&amp;&gt;details]:rounded-none [&amp;&gt;details&gt;summary]:rounded-none [&amp;&gt;details]:mb-0 overflow-hidden mt-0 mb-3 rounded-xl prose prose-gray dark:prose-invert divide-y! divide-inherit! border dark:border-white/10"><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="what-authentication-methods-are-supported-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="what-authentication-methods-are-supported" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="what-authentication-methods-are-supported-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">What authentication methods are supported?</p></div></summary><div id="what-authentication-methods-are-supported-accordion-children" role="region" aria-labelledby="what-authentication-methods-are-supported-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">OpenRouter uses three authentication methods:</span><ol>
<li>Cookie-based authentication for the web interface and chatroom</li>
<li>API keys (passed as Bearer tokens) for accessing the completions API and other core endpoints</li>
<li><a class="link" href="/docs/guides/overview/auth/management-api-keys">Management API keys</a> for programmatically managing API keys through the key management endpoints</li>
</ol><span data-as="p"><a class="link" href="/docs/api_reference/authentication">Learn more about API authentication</a>.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="how-are-rate-limits-calculated-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="how-are-rate-limits-calculated" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="how-are-rate-limits-calculated-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">How are rate limits calculated?</p></div></summary><div id="how-are-rate-limits-calculated-accordion-children" role="region" aria-labelledby="how-are-rate-limits-calculated-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">For free models, rate limits are determined by the credits that you have purchased.
If you have purchased at least <!-- --> credits, your free model rate limit will be <!-- --> requests per day.
Otherwise, you will be rate limited to <!-- --> free model API requests per day.</span><span data-as="p">You can learn more about how rate limits work for paid accounts in our <a class="link" href="/docs/api_reference/limits">rate limits documentation</a>.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="what-api-endpoints-are-available-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="what-api-endpoints-are-available" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="what-api-endpoints-are-available-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">What API endpoints are available?</p></div></summary><div id="what-api-endpoints-are-available-accordion-children" role="region" aria-labelledby="what-api-endpoints-are-available-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">OpenRouter implements the OpenAI API specification for /completions and
/chat/completions endpoints, allowing you to use any model with the same
request/response format. Additional endpoints like /api/v1/models are also
available. See our <a class="link" href="/docs/api_reference/overview">API documentation</a> for
detailed specifications.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="what-are-the-supported-formats-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="what-are-the-supported-formats" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="what-are-the-supported-formats-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">What are the supported formats?</p></div></summary><div id="what-are-the-supported-formats-accordion-children" role="region" aria-labelledby="what-are-the-supported-formats-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">The API supports text, images, and PDFs.
<a class="link" href="/docs/guides/overview/multimodal/image-understanding">Images</a> can be passed as
URLs or base64 encoded images. <a class="link" href="/docs/guides/overview/multimodal/pdfs">PDFs</a> can also be sent as URLs or base64 encoded data, and work with any model on OpenRouter.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="how-does-streaming-work-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="how-does-streaming-work" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="how-does-streaming-work-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">How does streaming work?</p></div></summary><div id="how-does-streaming-work-accordion-children" role="region" aria-labelledby="how-does-streaming-work-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">Streaming uses server-sent events (SSE) for real-time token delivery. Set
<code>stream: true</code> in your request to enable streaming responses.</span><span data-as="p"><a class="link" href="/docs/api_reference/streaming">Learn more about streaming</a>.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="what-sdk-support-is-available-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="what-sdk-support-is-available" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="what-sdk-support-is-available-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">What SDK support is available?</p></div></summary><div id="what-sdk-support-is-available-accordion-children" role="region" aria-labelledby="what-sdk-support-is-available-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">OpenRouter is a drop-in replacement for OpenAI. Therefore, any SDKs that
support OpenAI by default also support OpenRouter. Check out our
<a class="link" href="/docs/guides/community/openai-sdk">OpenAI SDK docs</a> for more details.</span><span data-as="p"><a class="link" href="/docs/guides/community/frameworks-and-integrations-overview">See all supported frameworks and integrations</a>.</span></div></details></div>
<h2 class="flex whitespace-pre-wrap group font-semibold" id="privacy-and-data-logging"><div class="absolute" tabindex="-1"><a href="#privacy-and-data-logging" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.311 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">Privacy and data logging</span></h2>
<span data-as="p">Please see our <a href="https://openrouter.ai/terms" target="_blank" rel="noreferrer" class="link">Terms of Service</a> and <a href="https://openrouter.ai/privacy" target="_blank" rel="noreferrer" class="link">Privacy Policy</a>.</span>
<div class="accordion-group [&amp;&gt;details]:border-0 [&amp;&gt;details]:rounded-none [&amp;&gt;details&gt;summary]:rounded-none [&amp;&gt;details]:mb-0 overflow-hidden mt-0 mb-3 rounded-xl prose prose-gray dark:prose-invert divide-y! divide-inherit! border dark:border-white/10"><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="what-data-is-logged-during-api-use-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="what-data-is-logged-during-api-use" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="what-data-is-logged-during-api-use-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">What data is logged during API use?</p></div></summary><div id="what-data-is-logged-during-api-use-accordion-children" role="region" aria-labelledby="what-data-is-logged-during-api-use-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">We log basic request metadata (timestamps, model used, token counts). Prompt
and completion are not logged by default. We do zero logging of your prompts/completions,
even if an error occurs, unless you opt-in to logging them.</span><span data-as="p">We have an opt-in <a href="https://openrouter.ai/settings/preferences" target="_blank" rel="noreferrer" class="link">setting</a> that
lets users opt-in to log their prompts and completions in exchange for a 1%
discount on usage costs.</span><span data-as="p"><a class="link" href="/docs/guides/privacy/data-collection">Learn more about data collection</a>.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="what-data-is-logged-during-chatroom-use-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="what-data-is-logged-during-chatroom-use" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="what-data-is-logged-during-chatroom-use-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">What data is logged during Chatroom use?</p></div></summary><div id="what-data-is-logged-during-chatroom-use-accordion-children" role="region" aria-labelledby="what-data-is-logged-during-chatroom-use-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">The same data privacy applies to the chatroom as the API. All conversations
in the chatroom are stored locally on your device. Conversations will not sync across devices.
It is possible to export and import conversations using the settings menu in the chatroom.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="what-third-party-sharing-occurs-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="what-third-party-sharing-occurs" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="what-third-party-sharing-occurs-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">What third-party sharing occurs?</p></div></summary><div id="what-third-party-sharing-occurs-accordion-children" role="region" aria-labelledby="what-third-party-sharing-occurs-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">OpenRouter is a proxy that sends your requests to the model provider for it to be completed.
We work with all providers to, when possible, ensure that prompts and completions are not logged or used for training.
Providers that do log, or where we have been unable to confirm their policy, will not be routed to unless the model training
toggle is switched on in the <a href="https://openrouter.ai/settings/privacy" target="_blank" rel="noreferrer" class="link">privacy settings</a> tab.</span><span data-as="p">If you specify <a class="link" href="/docs/guides/routing/provider-selection">provider routing</a> in your request, but none of the providers
match the level of privacy specified in your account settings, you will get an error and your request will not complete.</span><span data-as="p"><a class="link" href="/docs/guides/privacy/provider-logging">Learn more about provider logging policies</a>.</span></div></details></div>
<h2 class="flex whitespace-pre-wrap group font-semibold" id="credit-and-billing-systems"><div class="absolute" tabindex="-1"><a href="#credit-and-billing-systems" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.311 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">Credit and billing systems</span></h2>
<div class="accordion-group [&amp;&gt;details]:border-0 [&amp;&gt;details]:rounded-none [&amp;&gt;details&gt;summary]:rounded-none [&amp;&gt;details]:mb-0 overflow-hidden mt-0 mb-3 rounded-xl prose prose-gray dark:prose-invert divide-y! divide-inherit! border dark:border-white/10"><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="what-purchase-options-exist-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="what-purchase-options-exist" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="what-purchase-options-exist-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">What purchase options exist?</p></div></summary><div id="what-purchase-options-exist-accordion-children" role="region" aria-labelledby="what-purchase-options-exist-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">OpenRouter uses a credit system where the base currency is US dollars. All
of the pricing on our site and API is denoted in dollars. Users can top up
their balance manually or set up auto top up so that the balance is
replenished when it gets below the set threshold.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="do-credits-expire-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="do-credits-expire" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="do-credits-expire-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">Do credits expire?</p></div></summary><div id="do-credits-expire-accordion-children" role="region" aria-labelledby="do-credits-expire-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">Per our <a href="https://openrouter.ai/terms" target="_blank" rel="noreferrer" class="link">terms</a>, we reserve the right to expire
unused credits after one year of purchase.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="my-credits-havent-showed-up-in-my-account-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="my-credits-havent-showed-up-in-my-account" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="my-credits-havent-showed-up-in-my-account-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">My credits haven&#x27;t showed up in my account</p></div></summary><div id="my-credits-havent-showed-up-in-my-account-accordion-children" role="region" aria-labelledby="my-credits-havent-showed-up-in-my-account-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">If you paid using Stripe, sometimes there is an issue with the Stripe
integration and credits can get delayed in showing up on your account. Please allow up to one hour.
If your credits still have not appeared after an hour, check to confirm you have not been charged and
that you do not have a stripe receipt email. If you do not have a receipt email or have not been charged,
your card may have been declined. Please try again with a different card or payment method.</span><span data-as="p">If you have been charged and still do not have credits, please reach out to us via email
at <a href="mailto:support@openrouter.ai" target="_blank" rel="noreferrer" class="link">support@openrouter.ai</a> with details of the purchase.</span><span data-as="p">If you paid using crypto, please reach out to us via email at <a href="mailto:support@openrouter.ai" target="_blank" rel="noreferrer" class="link">support@openrouter.ai</a>
and we will look into it.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="whats-the-refund-policy-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="whats-the-refund-policy" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="whats-the-refund-policy-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">What&#x27;s the refund policy?</p></div></summary><div id="whats-the-refund-policy-accordion-children" role="region" aria-labelledby="whats-the-refund-policy-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">Refunds for unused Credits may be requested within twenty-four (24) hours from the time the transaction was processed. If no refund request is received within twenty-four (24) hours following the purchase, any unused Credits become non-refundable. To request a refund within the eligible period, you can use the refund button on the <a href="https://openrouter.ai/settings/credits" target="_blank" rel="noreferrer" class="link">Credits</a> page. The unused credit amount will be refunded to your payment method; the platform fees are non-refundable. Note that cryptocurrency payments are never refundable.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="how-to-monitor-credit-usage-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="how-to-monitor-credit-usage" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="how-to-monitor-credit-usage-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">How to monitor credit usage?</p></div></summary><div id="how-to-monitor-credit-usage-accordion-children" role="region" aria-labelledby="how-to-monitor-credit-usage-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">The <a href="https://openrouter.ai/activity" target="_blank" rel="noreferrer" class="link">Activity</a> page allows users to view
their historic usage and filter the usage by model, provider and api key.</span><span data-as="p">We also provide a <a class="link" href="/docs/api/api-reference/credits/get-remaining-credits">credits api</a> that has
live information about the balance and remaining credits for the account.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="what-free-tier-options-exist-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="what-free-tier-options-exist" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="what-free-tier-options-exist-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">What free tier options exist?</p></div></summary><div id="what-free-tier-options-exist-accordion-children" role="region" aria-labelledby="what-free-tier-options-exist-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">All new users receive a small free allowance to test out OpenRouter.
There are many <a href="https://openrouter.ai/models?max_price=0" target="_blank" rel="noreferrer" class="link">free models</a> available
on OpenRouter. These models have low rate limits (<!-- --> requests per day total)
and are usually not suitable for production use. If you have purchased at least <!-- --> credits,
the free models will be limited to <!-- --> requests per day.</span><span data-as="p">You can also use the <a class="link" href="/docs/cookbook/get-started/free-models-router-playground">Free Models Router</a> (<code>openrouter/free</code>) to automatically select a free model for your requests.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="how-do-volume-discounts-work-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="how-do-volume-discounts-work" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="how-do-volume-discounts-work-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">How do volume discounts work?</p></div></summary><div id="how-do-volume-discounts-work-accordion-children" role="region" aria-labelledby="how-do-volume-discounts-work-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">OpenRouter does not currently offer volume discounts, but you can reach out to us
over email if you think you have an exceptional use case.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="what-payment-methods-are-accepted-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="what-payment-methods-are-accepted" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="what-payment-methods-are-accepted-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">What payment methods are accepted?</p></div></summary><div id="what-payment-methods-are-accepted-accordion-children" role="region" aria-labelledby="what-payment-methods-are-accepted-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">We accept all major credit cards, AliPay and cryptocurrency payments in
USDC. We are working on integrating PayPal soon, if there are any payment
methods that you would like us to support please reach out on <a href="https://discord.gg/openrouter" target="_blank" rel="noreferrer" class="link">Discord</a>.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="how-does-openrouter-make-money-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="how-does-openrouter-make-money" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="how-does-openrouter-make-money-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">How does OpenRouter make money?</p></div></summary><div id="how-does-openrouter-make-money-accordion-children" role="region" aria-labelledby="how-does-openrouter-make-money-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">We charge a small <a class="link" href="/docs/faq#pricing-and-fees">fee</a> when purchasing credits. We never mark-up the pricing
of the underlying providers, and you’ll always pay the same as the provider’s
listed price.</span></div></details></div>
<h2 class="flex whitespace-pre-wrap group font-semibold" id="account-management"><div class="absolute" tabindex="-1"><a href="#account-management" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.311 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">Account management</span></h2>
<div class="accordion-group [&amp;&gt;details]:border-0 [&amp;&gt;details]:rounded-none [&amp;&gt;details&gt;summary]:rounded-none [&amp;&gt;details]:mb-0 overflow-hidden mt-0 mb-3 rounded-xl prose prose-gray dark:prose-invert divide-y! divide-inherit! border dark:border-white/10"><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="how-can-i-delete-my-account-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="how-can-i-delete-my-account" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="how-can-i-delete-my-account-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">How can I delete my account?</p></div></summary><div id="how-can-i-delete-my-account-accordion-children" role="region" aria-labelledby="how-can-i-delete-my-account-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">Go to the <a href="https://openrouter.ai/settings/preferences" target="_blank" rel="noreferrer" class="link">Settings</a> page and click Manage Account.
In the modal that opens, select the Security tab. You’ll find an option there to delete your account.</span><span data-as="p">Note that unused credits will be lost and cannot be reclaimed if you delete and later recreate your account.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="how-does-team-access-work-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="how-does-team-access-work" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="how-does-team-access-work-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">How does team access work?</p></div></summary><div id="how-does-team-access-work-accordion-children" role="region" aria-labelledby="how-does-team-access-work-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">Organization management information can be found in our <a class="link" href="/docs/cookbook/administration/organization-management">organization management documentation</a>.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="what-analytics-are-available-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="what-analytics-are-available" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="what-analytics-are-available-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">What analytics are available?</p></div></summary><div id="what-analytics-are-available-accordion-children" role="region" aria-labelledby="what-analytics-are-available-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">Our <a href="https://openrouter.ai/activity" target="_blank" rel="noreferrer" class="link">activity dashboard</a> provides real-time
usage metrics. If you would like any specific reports or metrics please
contact us.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="how-can-i-contact-support-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="how-can-i-contact-support" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="how-can-i-contact-support-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">How can I contact support?</p></div></summary><div id="how-can-i-contact-support-accordion-children" role="region" aria-labelledby="how-can-i-contact-support-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">For account and billing questions, please contact us at <a href="mailto:support@openrouter.ai" target="_blank" rel="noreferrer" class="link">support@openrouter.ai</a>.</span></div></details><details class="accordion border-standard rounded-2xl mb-3 overflow-hidden bg-background-light dark:bg-codeblock cursor-default"><summary class="relative not-prose flex flex-row items-center content-center w-full cursor-pointer list-none [&amp;::-webkit-details-marker]:hidden py-4 px-5 [&amp;&gt;div]:ml-2 [&amp;&gt;div]:mr-0 hover:bg-gray-100 hover:dark:bg-gray-800 rounded-t-xl" aria-controls="how-can-i-file-a-bug-report-or-change-request-for-openrouter-accordion-children" aria-expanded="false" data-component-part="accordion-button"><div id="how-can-i-file-a-bug-report-or-change-request-for-openrouter" class="absolute top-[-8rem]"></div><div class="mr-0.5" data-component-part="accordion-caret-right"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! h-3 w-3 transition bg-gray-700 dark:bg-gray-400 duration-75" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/solid/caret-right.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="leading-tight text-left w-full" contentEditable="false" data-component-part="accordion-title-container"><p id="how-can-i-file-a-bug-report-or-change-request-for-openrouter-accordion-title" class="m-0 font-medium text-gray-900 dark:text-gray-200" data-component-part="accordion-title">How can I file a bug report or change request for OpenRouter?</p></div></summary><div id="how-can-i-file-a-bug-report-or-change-request-for-openrouter-accordion-children" role="region" aria-labelledby="how-can-i-file-a-bug-report-or-change-request-for-openrouter-accordion-title" class="mt-2 mb-4 mx-6 prose prose-gray dark:prose-invert overflow-x-auto cursor-default" data-component-part="accordion-content"><span data-as="p">You can file bug reports or change requests by posting in our <a href="https://discord.gg/openrouter" target="_blank" rel="noreferrer" class="link">Discord</a>.</span></div></details></div></div><nav id="pagination" aria-label="Pagination" class="px-0.5 flex items-center gap-6 text-sm font-semibold text-gray-700 dark:text-gray-200"><a rel="prev" aria-label="Previous: Stripe Projects" data-component-part="pagination-prev" class="group flex items-center min-w-0 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary dark:focus-visible:outline-primary-light gap-3 rounded-sm pagination-prev" href="/docs/guides/overview/stripe-projects"><svg viewBox="0 0 3 6" aria-hidden="true" data-component-part="pagination-chevron" class="h-1.5 shrink-0 stroke-gray-400 overflow-visible group-hover:stroke-gray-600 dark:group-hover:stroke-gray-300"><path d="M3 0L0 3L3 6" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg><div class="truncate group-hover:text-gray-900 dark:group-hover:text-white" data-component-part="pagination-title">Stripe Projects</div></a><a rel="next" aria-label="Next: Report Feedback" data-component-part="pagination-next" class="group flex items-center min-w-0 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary dark:focus-visible:outline-primary-light gap-3 rounded-sm ml-auto pagination-next" href="/docs/guides/overview/report-feedback"><div class="truncate group-hover:text-gray-900 dark:group-hover:text-white" data-component-part="pagination-title">Report Feedback</div><svg viewBox="0 0 3 6" aria-hidden="true" data-component-part="pagination-chevron" class="h-1.5 shrink-0 stroke-gray-400 overflow-visible group-hover:stroke-gray-600 dark:group-hover:stroke-gray-300 rotate-180"><path d="M3 0L0 3L3 6" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></nav><div class="left-0 right-0 sticky bottom-0 w-full overflow-hidden z-20 pointer-events-none print:hidden"><div class="chat-assistant-floating-input w-full group/assistant-bar relative before:content-[&quot;&quot;] before:absolute before:left-0 before:right-0 before:top-1/2 before:h-[200px] before:bg-transparent dark:before:bg-transparent translate-y-[100px] opacity-0"><div class="relative pb-4 sm:pb-6"><div class="flex flex-col w-full rounded-2xl pointer-events-auto bg-background-light dark:bg-background-dark border border-gray-200 dark:border-white/30 focus-within:border-primary dark:focus-within:border-primary-light transition-colors max-w-[386px] mx-auto"><div class="relative flex items-end"><textarea id="chat-assistant-textarea" aria-label="Ask a question..." autoComplete="off" placeholder="Ask a question..." class="chat-assistant-input w-full bg-transparent border-0 peer/input text-gray-900 dark:text-gray-100 placeholder-gray-500 dark:placeholder-gray-400 outline-hidden! focus:outline-hidden! focus:ring-0 py-2.5 pl-3.5 pr-10 font-bodyWeight text-sm" style="resize:none"></textarea><span class="absolute right-11 bottom-3 text-xs font-medium text-gray-400 dark:text-gray-500 select-none pointer-events-none peer-focus/input:hidden hidden sm:inline">⌘<!-- -->I</span><button class="chat-assistant-send-button flex justify-center items-center rounded-full p-1 size-6 bg-primary/30 dark:bg-primary-dark/30 absolute right-2.5 bottom-2" aria-label="Send message" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-2.5 shrink-0 text-white dark:text-white"><path d="M9.0 1.5754L8.9999 16.4171" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.2563 8.319L8.9999 1.5754L15.7435 8.3191" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div></div></div></div><footer id="footer" class="flex gap-12 justify-between pt-10 border-t border-gray-100 sm:flex dark:border-gray-800/50 pb-28"></footer></div></div></main></div><!--$--><!--/$--></div><div data-assistant-sheet-container="" class="sticky shrink-0 z-22 bg-background-light dark:bg-background-dark mt-(--banner-height,0px) top-(--banner-height,0px) h-[calc(100vh-var(--banner-height,0px))] max-lg:hidden print:hidden" style="width:var(--assistant-sheet-width, 0px);overflow:hidden"><div class="absolute left-0 top-0 bottom-0 w-px z-10 cursor-col-resize after:content-[&quot;&quot;] after:absolute after:inset-y-0 after:-inset-x-2 after:select-none bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700"></div><div id="chat-assistant-sheet" class="flex flex-col overflow-hidden shrink-0 relative h-full bg-background-light dark:bg-background-dark chat-assistant-sheet" aria-hidden="true"><div class="w-full flex flex-col flex-1 min-h-0 lg:pt-3"><div class="chat-assistant-sheet-header flex items-center justify-between pb-3 px-4"><div class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="size-5 text-primary dark:text-primary-light shrink-0" aria-hidden="true"><path d="M5.65799 2.99L4.39499 2.569L3.97399 1.306C3.83699 0.898 3.16199 0.898 3.02499 1.306L2.60399 2.569L1.34099 2.99C1.13699 3.058 0.998993 3.249 0.998993 3.464C0.998993 3.679 1.13699 3.87 1.34099 3.938L2.60399 4.359L3.02499 5.622C3.09299 5.826 3.28499 5.964 3.49999 5.964C3.71499 5.964 3.90599 5.826 3.97499 5.622L4.39599 4.359L5.65899 3.938C5.86299 3.87 6.00099 3.679 6.00099 3.464C6.00099 3.249 5.86199 3.058 5.65799 2.99Z" fill="currentColor" stroke="none"></path><path d="M9.5 2.75L11.412 7.587L16.25 9.5L11.412 11.413L9.5 16.25L7.587 11.413L2.75 9.5L7.587 7.587L9.5 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg><span class="font-medium text-gray-900 dark:text-gray-100">Assistant</span></div><div class="flex items-center gap-1"><button class="group hover:bg-gray-100 dark:hover:bg-white/10 p-1.5 rounded-lg" aria-label="Maximize assistant panel"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-4 sm:size-3.5 text-gray-500 group-hover:text-gray-700 dark:group-hover:text-gray-300 shrink-0"><path d="M10.75 2.75H15.25V7.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M15.25 2.75L10.75 7.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.75 10.75V15.25H7.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.75 15.25L7.25 10.75" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><button class="group hover:bg-gray-100 dark:hover:bg-white/10 p-1.5 rounded-lg" aria-label="Close assistant panel"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-[20px] sm:size-4 text-gray-500 group-hover:text-gray-700 dark:group-hover:text-gray-300 shrink-0"><path d="M14 4L4 14" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M4 4L14 14" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div><div id="chat-content" class="chat-assistant-sheet-content flex flex-col-reverse flex-1 overflow-y-auto relative px-5 min-h-0"><div class="grow"></div><div class="h-full flex flex-col justify-between"><div class="mt-4 flex flex-col items-center text-sm"><div class="mx-8 text-center text-gray-400 dark:text-gray-600 text-xs chat-assistant-disclaimer-text">Responses are generated using AI and may contain mistakes.</div></div></div></div><div class="px-4 pb-4 shrink-0"><div class=""><div class="flex flex-col w-full rounded-2xl pointer-events-auto bg-background-light dark:bg-background-dark border border-gray-200 dark:border-white/30 focus-within:border-primary dark:focus-within:border-primary-light transition-colors"><div class="relative flex items-end"><textarea id="chat-assistant-textarea" aria-label="Ask a question..." autoComplete="off" placeholder="Ask a question..." class="chat-assistant-input w-full bg-transparent border-0 peer/input text-gray-900 dark:text-gray-100 placeholder-gray-500 dark:placeholder-gray-400 outline-hidden! focus:outline-hidden! focus:ring-0 py-2.5 pl-3.5 pr-10 font-bodyWeight text-sm pb-0!" style="resize:none" rows="2"></textarea></div><div class="flex items-center justify-between px-2 pb-2"><input type="file" accept="image/*,.pdf,.js,.jsx,.ts,.tsx,.mjs,.cjs,.md,.mdx,.json,.html,.css,.py,.csv,.txt,.yaml,.yml,.xml,.sql,.sh,.bash,.zsh,.graphql,.gql,.toml,.env,.go,.rs,.rb,.java,.kt,.swift,.c,.cpp,.cc,.h,.hpp,.cs,.php,.dart,.lua,.r,.scala,.ini,.cfg,.conf,.log,.dockerfile,.makefile,.gitignore" multiple="" class="hidden"/><button type="button" class="p-1 rounded-lg text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 hover:bg-gray-100 dark:hover:bg-white/10" aria-label="Add attachment"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3.5 shrink-0"><path d="M7.75 5V11.75C7.75 12.578 8.422 13.25 9.25 13.25C10.078 13.25 10.75 12.578 10.75 11.75V4.75C10.75 3.093 9.407 1.75 7.75 1.75C6.093 1.75 4.75 3.093 4.75 4.75V11.75C4.75 14.235 6.765 16.25 9.25 16.25C11.735 16.25 13.75 14.235 13.75 11.75V5" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><button class="chat-assistant-send-button flex justify-center items-center rounded-full p-1 size-6 bg-primary/30 dark:bg-primary-dark/30" aria-label="Send message" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-2.5 shrink-0 text-white dark:text-white"><path d="M9.0 1.5754L8.9999 16.4171" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.2563 8.319L8.9999 1.5754L15.7435 8.3191" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div></div></div></div></div></div></div></div><script src="/docs/_next/static/chunks/6d55b684068fd47e.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n9:I[168027,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"default\"]\n:HL[\"/docs/_next/static/chunks/462bacc63bed9960.css?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"style\"]\n:HL[\"/docs/_next/static/chunks/130071cec1814339.css?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"style\"]\n:HL[\"/docs/_next/static/media/83afe278b6a6bb3c.p.3a6ba036.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/docs/_next/static/media/PaperMono_Variable.p.aa32f7a0.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/docs/_next/static/media/f67ad414ed34149c.p.84166d94.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"DJEWuMed6amFoZzQ1598Z\",\"p\":\"/docs\",\"c\":[\"\",\"_sites\",\"openrouter-d02e98a0\",\"faq\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"%5Fsites\",{\"children\":[[\"subdomain\",\"openrouter-d02e98a0\",\"d\"],{\"children\":[\"(multitenant)\",{\"children\":[[\"slug\",\"faq\",\"oc\"],{\"children\":[\"__PAGE__\",{}]}]}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/docs/_next/static/chunks/462bacc63bed9960.css?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/docs/_next/static/chunks/130071cec1814339.css?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"suppressHydrationWarning\":true,\"lang\":\"en\",\"className\":\"inter_1d81deff-module__CYM0aG__variable papermono_89c757f2-module__6aS5zq__variable dark\",\"data-banner-state\":\"visible\",\"data-assistant-state\":\"closed\",\"data-page-mode\":\"none\",\"data-current-path\":\"/\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"!function(){var b=\\\"/docs\\\";\\nfunction a(p){if(p==null)return\\\"/\\\";p=\\\"\\\"+p;if(\\\"\\\"===p)return\\\"/\\\";return\\\"/\\\"===p.charAt(0)?p:\\\"/\\\"+p}\\nfunction u(p){if(p==null)return p;p=\\\"\\\"+p;if(!p||p.charAt(p.length-1)===\\\"/\\\")return p.slice(0,-1);return p}\\nfunction i(p){if(p==null)return p;p=\\\"\\\"+p;if(6\u003c=p.length\u0026\u0026p.substring(p.length-6)===\\\"/index\\\")return p.substring(0,p.length-6);if(\\\"index\\\"===p)return\\\"\\\";return p}\\nvar p=(location.pathname||\\\"\\\").split(\\\"?\\\")[0].split(\\\"#\\\")[0]||\\\"\\\";\\nif(b)if(p===b)p=\\\"\\\";else if(0===p.indexOf(b+\\\"/\\\"))p=p.substring(b.length);\\np=a(p);p=u(p);p=i(p);p=\\\"\\\"===p||\\\"index\\\"===p?\\\"/\\\":a(p);\\ndocument.documentElement.setAttribute(\\\"data-current-path\\\",p);\\n}();\"}}],[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"!function(){\\nfunction read(){try{\\nvar e=performance.getEntriesByType?performance.getEntriesByType(\\\"navigation\\\"):[];\\nvar st=(e[0]\u0026\u0026e[0].serverTiming)||[];\\nvar g={};\\nfor(var i=0;i\u003cst.length;i++){var n=st[i].name,d=st[i].description;if(!d)continue;try{d=decodeURIComponent(d)}catch(x){}\\nif(n===\\\"country\\\")g.country=d;else if(n===\\\"region\\\")g.region=d;else if(n===\\\"continent\\\")g.continent=d;}\\nvar w=window;w.mintlify=w.mintlify||{};w.mintlify.geo=g;\\n}catch(x){}}\\nread();document.addEventListener(\\\"DOMContentLoaded\\\",read);\\n}();\"}}],[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"!function(){try{\\nvar w=window;w.mintlify=w.mintlify||{};\\nvar q=w.mintlify.__apiPlaygroundInputsQueue;\\nif(!Array.isArray(q)){q=[];w.mintlify.__apiPlaygroundInputsQueue=q;}\\nw.mintlify.api=w.mintlify.api||{};\\nw.mintlify.api.playground=w.mintlify.api.playground||{};\\nif(typeof w.mintlify.api.playground.setServerVariables!==\\\"function\\\"){\\nw.mintlify.api.playground.setServerVariables=function(v){q.push({type:\\\"set\\\",variables:v});};\\n}\\nif(typeof w.mintlify.api.playground.clearServerVariables!==\\\"function\\\"){\\nw.mintlify.api.playground.clearServerVariables=function(){q.push({type:\\\"clear\\\"});};\\n}\\n}catch(e){}}();\"}}],[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(a,b){try{let c=document.getElementById(\\\"banner\\\")?.innerText;if(c){for(let d=0;d\u003clocalStorage.length;d++){let e=localStorage.key(d);if(e?.endsWith(a)\u0026\u0026localStorage.getItem(e)===c)return void document.documentElement.setAttribute(b,\\\"hidden\\\")}document.documentElement.setAttribute(b,\\\"visible\\\");return}for(let c=0;c\u003clocalStorage.length;c++){let d=localStorage.key(c);if(d?.endsWith(a)\u0026\u0026localStorage.getItem(d))return void document.documentElement.setAttribute(b,\\\"hidden\\\")}document.documentElement.setAttribute(b,\\\"visible\\\")}catch(a){document.documentElement.setAttribute(b,\\\"hidden\\\")}})(\\n  \\\"bannerDismissed\\\",\\n  \\\"data-banner-state\\\",\\n)\"}}],false]}],\"$L2\"]}]]}],{\"children\":[\"%5Fsites\",\"$L3\",{\"children\":[[\"subdomain\",\"openrouter-d02e98a0\",\"d\"],\"$L4\",{\"children\":[\"(multitenant)\",\"$L5\",{\"children\":[[\"slug\",\"faq\",\"oc\"],\"$L6\",{\"children\":[\"__PAGE__\",\"$L7\",{},null,false]},null,false]},null,false]},null,false]},null,false]},null,false],\"$L8\",false]],\"m\":\"$undefined\",\"G\":[\"$9\",[\"$La\",\"$Lb\"]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"c:I[667786,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"MintlifyApiPlaygroundInputsInit\"]\nd:I[339756,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"default\"]\ne:I[556357,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/27af74e29bec69c2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"default\"]\nf:I[837457,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"10:I[894587,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"ThemeProvider\"]\n"])</script><script>self.__next_f.push([1,"11:I[152823,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"ColorVariables\"]\n"])</script><script>self.__next_f.push([1,"12:I[531961,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"FontScript\"]\n"])</script><script>self.__next_f.push([1,"13:I[649328,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"RoundedVariables\"]\n"])</script><script>self.__next_f.push([1,"14:I[702910,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e168288d4907c254.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"RecommendedPagesList\"]\n15:I[570420,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"DataCurrentPathUpdater\"]\n16:I[341175,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/6b1866b1722b1057.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"default\"]\n19:I[897367,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"OutletBoundary\"]\n1b:I[711533,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"AsyncMetadataOutlet\"]\n1d:I[897367,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyM"])</script><script>self.__next_f.push([1,"jrsgK\"],\"ViewportBoundary\"]\n1f:I[897367,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"MetadataBoundary\"]\n20:\"$Sreact.suspense\"\n"])</script><script>self.__next_f.push([1,"2:[\"$\",\"body\",null,{\"className\":\"antialiased\",\"children\":[[\"$\",\"$Lc\",null,{}],false,[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$e\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs/_next/static/chunks/27af74e29bec69c2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true}],[\"$\",\"script\",\"script-2\",{\"src\":\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true}],[\"$\",\"script\",\"script-3\",{\"src\":\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true}],[\"$\",\"script\",\"script-4\",{\"src\":\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true}]],\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L10\",null,{\"children\":[[\"$\",\"$L11\",null,{}],[\"$\",\"$L12\",null,{}],[\"$\",\"$L13\",null,{}],[\"$\",\"style\",null,{\"children\":\":root {\\n  --primary: 17 120 102;\\n  --primary-light: 74 222 128;\\n  --primary-dark: 22 101 52;\\n  --background-light: 255 255 255;\\n  --background-dark: 15 17 23;\\n}\"}],[\"$\",\"main\",null,{\"className\":\"h-screen bg-background-light dark:bg-background-dark text-left\",\"children\":[\"$\",\"article\",null,{\"className\":\"bg-custom bg-fixed bg-center bg-cover relative flex flex-col items-center justify-center h-full\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full max-w-xl px-10\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-flex mb-6 rounded-full px-3 py-1 text-sm font-semibold mr-4 text-white p-1 bg-primary\",\"children\":[\"Error \",404]}],[\"$\",\"h1\",null,{\"className\":\"font-semibold mb-3 text-3xl\",\"children\":\"Page not found!\"}],[\"$\",\"p\",null,{\"className\":\"text-lg text-gray-600 dark:text-gray-400 mb-6\",\"children\":\"We couldn't find the page.\"}],[\"$\",\"$L14\",null,{}]]}]}]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],false,[\"$\",\"$L15\",null,{}]]}]\n"])</script><script>self.__next_f.push([1,"3:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script><script>self.__next_f.push([1,"4:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$16\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs/_next/static/chunks/6b1866b1722b1057.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true}],[\"$\",\"script\",\"script-2\",{\"src\":\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true}],[\"$\",\"script\",\"script-3\",{\"src\":\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true}],[\"$\",\"script\",\"script-4\",{\"src\":\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true}]],\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L10\",null,{\"children\":[[\"$\",\"$L11\",null,{}],[\"$\",\"$L12\",null,{}],[\"$\",\"$L13\",null,{}],[\"$\",\"style\",null,{\"children\":\":root {\\n  --primary: 17 120 102;\\n  --primary-light: 74 222 128;\\n  --primary-dark: 22 101 52;\\n  --background-light: 255 255 255;\\n  --background-dark: 15 17 23;\\n}\"}],[\"$\",\"main\",null,{\"className\":\"h-screen bg-background-light dark:bg-background-dark text-left\",\"children\":[\"$\",\"article\",null,{\"className\":\"bg-custom bg-fixed bg-center bg-cover relative flex flex-col items-center justify-center h-full\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full max-w-xl px-10\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-flex mb-6 rounded-full px-3 py-1 text-sm font-semibold mr-4 text-white p-1 bg-primary\",\"children\":[\"Error \",404]}],[\"$\",\"h1\",null,{\"className\":\"font-semibold mb-3 text-3xl\",\"children\":\"Page not found!\"}],[\"$\",\"p\",null,{\"className\":\"text-lg text-gray-600 dark:text-gray-400 mb-6\",\"children\":\"We couldn't find the page.\"}],[\"$\",\"$L14\",null,{}]]}]}]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script><script>self.__next_f.push([1,"5:[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-8\",{\"src\":\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-9\",{\"src\":\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-10\",{\"src\":\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-11\",{\"src\":\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-12\",{\"src\":\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-13\",{\"src\":\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L17\"]}]\n"])</script><script>self.__next_f.push([1,"6:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script><script>self.__next_f.push([1,"7:[\"$\",\"$1\",\"c\",{\"children\":[\"$L18\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/docs/_next/static/chunks/68ad056007b94e04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/docs/_next/static/chunks/cb00d03b4d1e9ae2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/docs/_next/static/chunks/f48a8fa65184b0c7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/docs/_next/static/chunks/0dd7d15c30c41f1b.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/docs/_next/static/chunks/ca83a905f88dbab7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/docs/_next/static/chunks/555577647291460f.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/docs/_next/static/chunks/2dd53f5a4cfe6dd5.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L19\",null,{\"children\":[\"$L1a\",[\"$\",\"$L1b\",null,{\"promise\":\"$@1c\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"8:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L1d\",null,{\"children\":\"$L1e\"}],null],[\"$\",\"$L1f\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$20\",null,{\"fallback\":null,\"children\":\"$L21\"}]}]}]]}]\na:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/docs/_next/static/chunks/462bacc63bed9960.css?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nb:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/docs/_next/static/chunks/130071cec1814339.css?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"1e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover\"}]]\n1a:null\n"])</script><script>self.__next_f.push([1,"1c:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"OpenRouter FAQ\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Common questions about OpenRouter\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"OpenRouter | Documentation\"}],[\"$\",\"meta\",\"3\",{\"name\":\"generator\",\"content\":\"Mintlify\"}],[\"$\",\"meta\",\"4\",{\"name\":\"msapplication-config\",\"content\":\"/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/browserconfig.xml\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"OpenRouter | Documentation\"}],[\"$\",\"meta\",\"6\",{\"name\":\"msapplication-TileColor\",\"content\":\"#7624F4\"}],[\"$\",\"link\",\"7\",{\"rel\":\"canonical\",\"href\":\"https://openrouter.ai/docs/faq\"}],[\"$\",\"link\",\"8\",{\"rel\":\"alternate\",\"type\":\"application/xml\",\"href\":\"/docs/sitemap.xml\"}],[\"$\",\"link\",\"9\",{\"rel\":\"alternate\",\"type\":\"text/markdown\",\"href\":\"/docs/faq.md\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:title\",\"content\":\"OpenRouter FAQ\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:description\",\"content\":\"Find answers to commonly asked questions about OpenRouter's unified API, model access, pricing, and integration.\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:url\",\"content\":\"https://openrouter.ai/docs/faq\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:site_name\",\"content\":\"OpenRouter Documentation\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image\",\"content\":\"https://openrouter.ai/dynamic-og?pathname=faq\u0026title=FAQ\u0026description=Common%20questions%20about%20OpenRouter\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:title\",\"content\":\"OpenRouter FAQ\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:description\",\"content\":\"Find answers to commonly asked questions about OpenRouter's unified API, model access, pricing, and integration.\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image\",\"content\":\"https://openrouter.ai/dynamic-og?pathname=faq\u0026title=FAQ\u0026description=Common%20questions%20about%20OpenRouter\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"24\",{\"rel\":\"icon\",\"href\":\"/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/android-chrome-192x192.png\",\"type\":\"image/png\",\"sizes\":\"192x192\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"25\",{\"rel\":\"apple-touch-icon\",\"href\":\"/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/apple-touch-icon.png\",\"type\":\"image/png\",\"sizes\":\"180x180\",\"media\":\"$undefined\"}],[\"$\",\"link\",\"26\",{\"rel\":\"icon\",\"href\":\"/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/favicon-16x16.png\",\"type\":\"image/png\",\"sizes\":\"16x16\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"27\",{\"rel\":\"icon\",\"href\":\"/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/favicon-32x32.png\",\"type\":\"image/png\",\"sizes\":\"32x32\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"28\",{\"rel\":\"shortcut icon\",\"href\":\"/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"$undefined\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"29\",{\"rel\":\"icon\",\"href\":\"/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/android-chrome-192x192.png\",\"type\":\"image/png\",\"sizes\":\"192x192\",\"media\":\"(prefers-color-scheme: dark)\"}],[\"$\",\"link\",\"30\",{\"rel\":\"icon\",\"href\":\"/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/favicon-16x16.png\",\"type\":\"image/png\",\"sizes\":\"16x16\",\"media\":\"(prefers-color-scheme: dark)\"}],[\"$\",\"link\",\"31\",{\"rel\":\"icon\",\"href\":\"/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/favicon-32x32.png\",\"type\":\"image/png\",\"sizes\":\"32x32\",\"media\":\"(prefers-color-scheme: dark)\"}],[\"$\",\"link\",\"32\",{\"rel\":\"shortcut icon\",\"href\":\"/docs/_mintlify/favicons/openrouter-d02e98a0/EmhfYwFO2tvnkuV-/_generated/favicon-dark/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"$undefined\",\"media\":\"(prefers-color-scheme: dark)\"}],\"$L22\"],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"21:\"$1c:metadata\"\n"])</script><script>self.__next_f.push([1,"23:I[27201,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"IconMark\"]\n22:[\"$\",\"$L23\",\"33\",{}]\n"])</script><script>self.__next_f.push([1,"24:I[707934,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"WebMcpRegistration\"]\n"])</script><script>self.__next_f.push([1,"25:I[590280,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"LivePreviewProvider\"]\n"])</script><script>self.__next_f.push([1,"26:I[973254,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"LivePreviewFavicon\"]\n"])</script><script>self.__next_f.push([1,"27:I[479520,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"\"]\n"])</script><script>self.__next_f.push([1,"28:I[197336,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"29:I[91557,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/68ad056007b94e04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cb00d03b4d1e9ae2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f48a8fa65184b0c7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0dd7d15c30c41f1b.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/ca83a905f88dbab7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/555577647291460f.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/2dd53f5a4cfe6dd5.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"AuthProvider\"]\n"])</script><script>self.__next_f.push([1,"2a:I[91557,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/68ad056007b94e04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cb00d03b4d1e9ae2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f48a8fa65184b0c7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0dd7d15c30c41f1b.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/ca83a905f88dbab7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/555577647291460f.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/2dd53f5a4cfe6dd5.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"DeploymentMetadataProvider\"]\n"])</script><script>self.__next_f.push([1,"2b:I[91557,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/68ad056007b94e04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cb00d03b4d1e9ae2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f48a8fa65184b0c7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0dd7d15c30c41f1b.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/ca83a905f88dbab7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/555577647291460f.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/2dd53f5a4cfe6dd5.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"DocsConfigProvider\"]\n"])</script><script>self.__next_f.push([1,"2d:I[597003,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/68ad056007b94e04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cb00d03b4d1e9ae2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f48a8fa65184b0c7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0dd7d15c30c41f1b.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/ca83a905f88dbab7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/555577647291460f.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/2dd53f5a4cfe6dd5.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"ScopedNavProvider\"]\n"])</script><script>self.__next_f.push([1,"17:[null,[\"$\",\"$L24\",null,{\"subdomain\":\"openrouter-d02e98a0\"}],[\"$\",\"$L25\",null,{\"isLivePreviewRoute\":false,\"children\":[[\"$\",\"$L26\",null,{}],[\"$\",\"$L10\",null,{\"appearance\":{\"default\":\"dark\"},\"codeblockTheme\":\"system\",\"children\":[[\"$\",\"blockquote\",null,{\"className\":\"sr-only\",\"data-agent-docs-index\":true,\"aria-hidden\":\"true\",\"children\":[[\"$\",\"h2\",null,{\"children\":\"Documentation Index\"}],[\"$\",\"p\",null,{\"children\":[\"Fetch the complete documentation index at:\",\" \",[\"$\",\"a\",null,{\"href\":\"/docs/llms.txt\",\"tabIndex\":-1,\"children\":\"/docs/llms.txt\"}]]}],[\"$\",\"p\",null,{\"children\":\"Use this file to discover all available pages before exploring further.\"}]]}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root{--banner-height:0px!important}\"}}],false,null,null,[\"$\",\"$L27\",null,{\"id\":\"_mintlify-banner-script\",\"strategy\":\"beforeInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function j(a,b,c,d,e){try{let f,g,h=[];try{h=window.location.pathname.split(\\\"/\\\").filter(a=\u003e\\\"\\\"!==a\u0026\u0026\\\"global\\\"!==a).slice(0,2)}catch{h=[]}let i=h.find(a=\u003ec.includes(a)),j=[];for(let c of(i?j.push(i):j.push(b),j.push(\\\"global\\\"),j)){if(!c)continue;let b=a[c];if(b?.content){f=b.content,g=c;break}}if(!f)return void document.documentElement.setAttribute(d,\\\"hidden\\\");let k=!0,l=0;for(;l\u003clocalStorage.length;){let a=localStorage.key(l);if(l++,!a?.endsWith(e))continue;let b=localStorage.getItem(a);if(b\u0026\u0026b===f){k=!1;break}g\u0026\u0026(a.startsWith(`lang:${g}_`)||!a.startsWith(\\\"lang:\\\"))\u0026\u0026(localStorage.removeItem(a),l--)}document.documentElement.setAttribute(d,k?\\\"visible\\\":\\\"hidden\\\")}catch(a){console.error(a),document.documentElement.setAttribute(d,\\\"hidden\\\")}})(\\n  {},\\n  \\\"en\\\",\\n  [],\\n  \\\"data-banner-state\\\",\\n  \\\"bannerDismissed\\\",\\n)\"}}],[\"$\",\"$L28\",null,{\"appId\":\"$undefined\",\"autoBoot\":true,\"children\":[\"$\",\"$L29\",null,{\"value\":{\"auth\":\"$undefined\",\"userAuth\":\"$undefined\"},\"children\":[\"$\",\"$L2a\",null,{\"value\":{\"subdomain\":\"openrouter-d02e98a0\",\"actualSubdomain\":\"openrouter-d02e98a0\",\"gitSource\":{\"type\":\"github\",\"owner\":\"openrouterteam\",\"repo\":\"docs\",\"deployBranch\":\"main\",\"contentDirectory\":\"\",\"isPrivate\":false,\"mountPath\":\"\",\"label\":\"\"},\"chroma\":{\"collectionId\":\"dc11a0e9-b1d5-4637-97c0-33856f152add\",\"liveDeploymentHistoryId\":\"6a8799a5798e682b30d8e238\",\"schemaVersion\":\"v3\",\"latestBuiltDeploymentHistoryId\":\"6a8799a5798e682b30d8e238\"},\"feedback\":{\"contextualFeedback\":{\"allowEmail\":false},\"agentFeedback\":true,\"issues\":false},\"entitlements\":{\"AI_CHAT\":{\"status\":\"ENABLED\"},\"REMOVE_BRANDING\":{\"status\":\"ENABLED\"},\"CONTEXTUAL_FEEDBACK\":{\"status\":\"ENABLED\"},\"CODE_SNIPPET_FEEDBACK\":{\"status\":\"ENABLED\"}},\"buildId\":\"6a8799a5798e682b30d8e238\",\"clientVersion\":\"0.0.3482\",\"preview\":\"$undefined\",\"searchFilterCounts\":[{\"language\":\"default\",\"tag\":\"API Reference\",\"count\":216},{\"language\":\"default\",\"tag\":\"Docs\",\"count\":121},{\"language\":\"default\",\"tag\":\"Client SDKs\",\"count\":90},{\"language\":\"default\",\"tag\":\"Features\",\"count\":56},{\"language\":\"default\",\"tag\":\"TypeScript SDK\",\"count\":46},{\"language\":\"default\",\"tag\":\"Cookbook\",\"count\":46},{\"language\":\"default\",\"tag\":\"Agent SDK\",\"count\":39},{\"language\":\"default\",\"tag\":\"Go SDK\",\"count\":29},{\"language\":\"default\",\"tag\":\"Python SDK\",\"count\":29},{\"language\":\"default\",\"tag\":\"Overview\",\"count\":20}],\"searchSettings\":\"$undefined\",\"disableKonamiCode\":\"$undefined\"},\"children\":[\"$\",\"$L2b\",null,{\"value\":{\"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\":\"$17:2:props:children:1:props:appearance\",\"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/docs\",\"label\":\"Docs\"}]},\"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,\"codeblocks\":\"system\"},\"navigation\":{\"pages\":[]}},\"docsNavWithMetadata\":\"$undefined\",\"anonymizedNav\":\"$undefined\",\"hasFullNav\":false},\"children\":\"$L2c\"}]}]}]}]]}]]}]]\n"])</script><script>self.__next_f.push([1,"18:[\"$\",\"$L2d\",null,{\"scopedNav\":{\"global\":null,\"tabs\":[{\"tab\":\"Docs\",\"icon\":\"book\",\"groups\":[{\"group\":\"Overview\",\"icon\":\"compass\",\"pages\":[{\"title\":\"Quickstart\",\"description\":\"Get started with OpenRouter\",\"slug\":\"quickstart\",\"seoTitle\":\"OpenRouter Quickstart Guide | Developer Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter Quickstart Guide\",\"og:description\":\"Get started with OpenRouter's unified API for hundreds of AI models. Learn how to integrate using the API directly, the Client SDKs, or the Agent SDK.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=quickstart\u0026title=Quick%20Start\u0026description=Start%20using%20OpenRouter%20API%20in%20minutes%20with%20any%20SDK\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"rocket\",\"href\":\"/quickstart\"},{\"title\":\"Batch API Quickstart\",\"sidebarTitle\":\"Batch\",\"description\":\"Submit and retrieve asynchronous batches of inference requests\",\"slug\":\"batch-quickstart\",\"seoTitle\":\"Batch API Quickstart | OpenRouter Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Batch API Quickstart\",\"og:description\":\"Submit multiple inference requests with OpenRouter and retrieve their results asynchronously.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=batch-quickstart\u0026title=Batch%20API%20Quickstart\u0026description=Submit%20and%20retrieve%20asynchronous%20batches%20of%20inference%20requests\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"boxes-stacked\",\"tag\":\"Beta\",\"href\":\"/batch-quickstart\"},{\"title\":\"Principles\",\"description\":\"Core principles and values of OpenRouter\",\"seoTitle\":\"Principles | OpenRouter's Core Values and Mission\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Principles - OpenRouter's Core Values\",\"og:description\":\"Learn about OpenRouter's guiding principles and mission. Understand our commitment to price optimization, standardized APIs, and high availability in AI model deployment.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=principles\u0026title=Core%20Values\u0026description=Multi-model%20AI%20access%20with%20optimized%20pricing%20and%20reliability\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"book\",\"href\":\"/guides/overview/principles\"},{\"title\":\"Models\",\"description\":\"One API for hundreds of models\",\"seoTitle\":\"OpenRouter Models | Access 400+ AI Models Through One API\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter Models - Unified Access to 400+ AI Models\",\"og:description\":\"Access all major language models (LLMs) through OpenRouter's unified API. Browse available models, compare capabilities, and integrate with your preferred provider.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=models\u0026title=AI%20Model%20Hub\u0026description=Access%20all%20LLMs%20through%20one%20unified%20API%20endpoint\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"cube\",\"href\":\"/guides/overview/models\"},{\"title\":\"MCP\",\"description\":\"Connect your AI coding tools to OpenRouter over MCP\",\"seoTitle\":\"OpenRouter MCP Server | OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter MCP Server - OpenRouter\",\"og:description\":\"Plug OpenRouter into the AI tools you already use. Pull live model, pricing, credit, and ranking data, search the docs, and send test messages, all from your editor.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=OpenRouter%20MCP%20Server\u0026description=Connect%20your%20AI%20tools%20to%20OpenRouter\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"plug\",\"href\":\"/guides/overview/mcp-server\"},{\"group\":\"Multimodal\",\"icon\":\"layer-group\",\"pages\":[{\"title\":\"Multimodal Capabilities\",\"description\":\"Send images, PDFs, audio, and video to OpenRouter models, generate speech from text, or transcribe audio to text\",\"seoTitle\":\"OpenRouter Multimodal | Complete Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter Multimodal Capabilities - Complete Documentation\",\"og:description\":\"Send images, PDFs, audio, and video to OpenRouter models, generate speech from text, or transcribe audio to text through our unified API.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=OpenRouter%20Multimodal\u0026description=Send%20images%2C%20PDFs%2C%20audio%2C%20and%20video%20to%20OpenRouter%20models%2C%20or%20generate%20speech%20from%20text.\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"compass\",\"sidebarTitle\":\"Overview\",\"href\":\"/guides/overview/multimodal/overview\"},{\"title\":\"Image Generation\",\"description\":\"How to generate images with OpenRouter's dedicated Image API\",\"seoTitle\":\"OpenRouter Image Generation | Complete Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter Image Generation - Complete Documentation\",\"og:description\":\"Generate images using AI models through the OpenRouter Image API.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=OpenRouter%20Image%20Generation\u0026description=Generate%20images%20using%20AI%20models%20through%20the%20OpenRouter%20Image%20API.\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"wand-magic-sparkles\",\"href\":\"/guides/overview/multimodal/image-generation\"},{\"title\":\"Video Generation\",\"description\":\"How to generate videos with OpenRouter models\",\"seoTitle\":\"OpenRouter Video Generation | Complete Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter Video Generation - Complete Documentation\",\"og:description\":\"Generate videos using AI models through the OpenRouter API.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=OpenRouter%20Video%20Generation\u0026description=Generate%20videos%20using%20AI%20models%20through%20the%20OpenRouter%20API.\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"film\",\"href\":\"/guides/overview/multimodal/video-generation\"},{\"title\":\"Text-to-Speech\",\"description\":\"How to generate speech audio from text with OpenRouter models\",\"seoTitle\":\"OpenRouter Text-to-Speech (TTS) | Complete Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter Text-to-Speech - Complete Documentation\",\"og:description\":\"Generate speech audio from text using AI models through the OpenRouter API.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=OpenRouter%20Text-to-Speech\u0026description=Generate%20speech%20audio%20from%20text%20using%20AI%20models%20through%20the%20OpenRouter%20API.\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"microphone\",\"href\":\"/guides/overview/multimodal/tts\"},{\"title\":\"Speech-to-Text\",\"description\":\"How to transcribe audio into text with OpenRouter models\",\"seoTitle\":\"OpenRouter Speech-to-Text (STT) | Complete Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter Speech-to-Text - Complete Documentation\",\"og:description\":\"Transcribe audio into text using AI models through the OpenRouter API. Access multiple STT providers with a single unified interface.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=OpenRouter%20Speech-to-Text\u0026description=Transcribe%20audio%20into%20text%20using%20AI%20models%20through%20the%20OpenRouter%20API.\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"headset\",\"href\":\"/guides/overview/multimodal/stt\"},{\"title\":\"Audio\",\"description\":\"How to send and receive audio with OpenRouter models\",\"seoTitle\":\"OpenRouter Audio | Complete Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter Audio - Complete Documentation\",\"og:description\":\"Send audio files to and receive audio responses from speech-capable models through the OpenRouter API.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=OpenRouter%20Audio\u0026description=Send%20and%20receive%20audio%20with%20speech-capable%20models%20through%20the%20OpenRouter%20API.\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"volume-high\",\"href\":\"/guides/overview/multimodal/audio\"},{\"title\":\"PDF Inputs\",\"description\":\"How to send PDFs to OpenRouter models\",\"seoTitle\":\"OpenRouter PDF Inputs | Complete Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter PDF Inputs - Complete Documentation\",\"og:description\":\"Send PDF documents to any model on OpenRouter.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=OpenRouter%20PDF%20Inputs\u0026description=Send%20PDF%20documents%20to%20any%20model%20on%20OpenRouter.\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"file-pdf\",\"sidebarTitle\":\"PDFs\",\"href\":\"/guides/overview/multimodal/pdfs\"},{\"title\":\"Image Inputs\",\"description\":\"How to send images to OpenRouter models\",\"seoTitle\":\"OpenRouter Image Inputs | Complete Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter Image Inputs - Complete Documentation\",\"og:description\":\"Send images to vision models through the OpenRouter API.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=OpenRouter%20Image%20Inputs\u0026description=Send%20images%20to%20vision%20models%20through%20the%20OpenRouter%20API.\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"image\",\"sidebarTitle\":\"Image Understanding\",\"href\":\"/guides/overview/multimodal/image-understanding\"},{\"title\":\"Video Inputs\",\"description\":\"How to send video files to OpenRouter models\",\"seoTitle\":\"OpenRouter Video Inputs | Complete Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter Video Inputs - Complete Documentation\",\"og:description\":\"Send video files to video-capable models through the OpenRouter API.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=OpenRouter%20Video%20Inputs\u0026description=Send%20video%20files%20to%20video-capable%20models%20through%20the%20OpenRouter%20API.\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"video\",\"sidebarTitle\":\"Video Understanding\",\"href\":\"/guides/overview/multimodal/videos\"}]},{\"group\":\"Authentication\",\"icon\":\"shield-check\",\"pages\":[{\"title\":\"OAuth PKCE\",\"description\":\"Connect your users to OpenRouter\",\"seoTitle\":\"OAuth PKCE | Secure Authentication for OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OAuth PKCE - Secure User Authentication\",\"og:description\":\"Implement secure user authentication with OpenRouter using OAuth PKCE. Complete guide to setting up and managing OAuth authentication flows.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=use-cases/oauth-pkce\u0026title=OAuth%20PKCE\u0026description=Secure%20one-click%20authentication%20for%20your%20OpenRouter%20users\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"shield-check\",\"sidebarTitle\":\"OAuth\",\"href\":\"/guides/overview/auth/oauth\"},{\"title\":\"Management API Keys\",\"description\":\"Manage API keys programmatically\",\"seoTitle\":\"Management API Keys | Programmatic Control of OpenRouter API Keys\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Management API Keys - Programmatic Control of OpenRouter API Keys\",\"og:description\":\"Manage OpenRouter API keys programmatically through dedicated management endpoints. Create, read, update, and delete API keys for automated key distribution and control.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=features/management-api-keys\u0026title=Management%20API%20Keys\u0026description=Programmatically%20manage%20OpenRouter%20API%20keys\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"key\",\"href\":\"/guides/overview/auth/management-api-keys\"},{\"title\":\"BYOK\",\"description\":\"Bring your own provider API keys\",\"seoTitle\":\"BYOK | Use Your Own Provider Keys with OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"BYOK - Bring Your Own Keys to OpenRouter\",\"og:description\":\"Learn how to use your existing AI provider keys with OpenRouter. Integrate your own API keys while using OpenRouter's unified interface and features.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=BYOK\u0026description=Bring%20Your%20Own%20Keys%20to%20OpenRouter\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"key\",\"href\":\"/guides/overview/auth/byok\"}]},{\"title\":\"Stripe Projects\",\"description\":\"Add OpenRouter to your app with the Stripe Projects CLI\",\"seoTitle\":\"Stripe Projects Integration | OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Stripe Projects - Add OpenRouter via Stripe CLI\",\"og:description\":\"Provision OpenRouter API access directly from the Stripe Projects CLI. Get an API key, manage credentials, and access 400+ AI models in seconds.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Stripe%20Projects\u0026description=Add%20OpenRouter%20to%20your%20app%20via%20Stripe%20CLI\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"stripe\",\"href\":\"/guides/overview/stripe-projects\"},{\"title\":\"Frequently Asked Questions\",\"description\":\"Common questions about OpenRouter\",\"slug\":\"faq\",\"seoTitle\":\"OpenRouter FAQ | Developer Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter FAQ\",\"og:description\":\"Find answers to commonly asked questions about OpenRouter's unified API, model access, pricing, and integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=faq\u0026title=FAQ\u0026description=Common%20questions%20about%20OpenRouter\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"question\",\"sidebarTitle\":\"FAQ\",\"href\":\"/faq\"},{\"title\":\"Report Feedback\",\"seoTitle\":\"Report Feedback | Submit Bug Reports on OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Report Feedback - Submit Bug Reports for Generations\",\"og:description\":\"Learn how to report issues with AI generations on OpenRouter using the Report Feedback feature in the Chatroom and Logs page.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Report%20Feedback\u0026description=Submit%20bug%20reports%20for%20generations\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"bug\",\"description\":null,\"href\":\"/guides/overview/report-feedback\"}]},{\"group\":\"Models \u0026 Routing\",\"icon\":\"route\",\"pages\":[{\"title\":\"Model Fallbacks\",\"description\":\"Automatic failover between models\",\"seoTitle\":\"Model Fallbacks | Reliable AI with Automatic Failover\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Model Fallbacks - Automatic Failover Between Models\",\"og:description\":\"Configure automatic failover between AI models when providers are down, rate-limited, or refuse requests.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Model%20Fallbacks\u0026description=Automatic%20failover%20between%20AI%20models\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"arrows-rotate\",\"href\":\"/guides/routing/model-fallbacks\"},{\"title\":\"Provider Routing\",\"description\":\"Route requests to the best provider\",\"seoTitle\":\"Provider Routing | Intelligent Multi-Provider Request Routing\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Provider Routing - Smart Multi-Provider Request Management\",\"og:description\":\"Route AI model requests across multiple providers intelligently. Learn how to optimize for cost, performance, and reliability with OpenRouter's provider routing.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=features/provider-routing\u0026title=Smart%20Routing\u0026description=Optimize%20AI%20requests%20across%20providers%20for%20best%20performance\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"network-wired\",\"sidebarTitle\":\"Provider Selection\",\"href\":\"/guides/routing/provider-selection\"},{\"title\":\"Auto Exacto\",\"description\":\"Automatic tool-calling provider optimization\",\"seoTitle\":\"Auto Exacto | Smarter provider routing for tool-calling requests\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Auto Exacto - Automatic tool-calling provider optimization\",\"og:description\":\"Learn how Auto Exacto automatically optimizes provider ordering for tool-calling requests using throughput, success rate, and benchmark signals.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Auto%20Exacto\u0026description=Automatic%20tool-calling%20provider%20optimization\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"crosshairs\",\"href\":\"/guides/routing/auto-exacto\"},{\"title\":\"Private Models\",\"description\":\"Bring your own model to OpenRouter, scoped to approved users and organizations\",\"seoTitle\":\"Private Models | Private Endpoints on OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Private Models - Bring Your Own Model Endpoints to OpenRouter\",\"og:description\":\"Run your own custom, fine-tuned, or dedicated model deployments through the OpenRouter API. Private models are scoped to approved users and organizations and hidden from public model lists.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Private%20Models\u0026description=Bring%20your%20own%20model%20endpoints%20to%20OpenRouter\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"lock\",\"href\":\"/guides/routing/private-models\"},{\"group\":\"Model Variants\",\"icon\":\"gem\",\"pages\":[{\"title\":\"Free Variant\",\"description\":\"Access free models with the :free variant\",\"seoTitle\":\"Free Variant | Free Model Access\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Free Variant - Free Model Access\",\"og:description\":\"Access free models using the :free variant suffix.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Free%20Variant\u0026description=Free%20model%20access\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"circle-dollar\",\"sidebarTitle\":\"Free\",\"href\":\"/guides/routing/model-variants/free\"},{\"title\":\"Extended Variant\",\"description\":\"Extended context windows with :extended\",\"seoTitle\":\"Extended Variant | Extended Context Windows\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Extended Variant - Extended Context Windows\",\"og:description\":\"Access extended context window versions of models using the :extended variant.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Extended%20Variant\u0026description=Extended%20context%20windows\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"arrows-left-right\",\"sidebarTitle\":\"Extended\",\"href\":\"/guides/routing/model-variants/extended\"},{\"title\":\"Exacto Variant\",\"description\":\"Route requests with quality-first provider sorting\",\"seoTitle\":\"Exacto Variant | Quality-first provider routing for tool use\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Exacto Variant - Quality-first provider routing for tool use\",\"og:description\":\"Learn how to use the :exacto model variant to prioritize providers with stronger tool-calling quality signals.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Exacto%20Variant\u0026description=Quality-first%20provider%20routing\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"gem\",\"sidebarTitle\":\"Exacto\",\"href\":\"/guides/routing/model-variants/exacto\"},{\"title\":\"Thinking Variant\",\"description\":\"Enable extended reasoning with :thinking\",\"seoTitle\":\"Thinking Variant | Extended Reasoning\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Thinking Variant - Extended Reasoning\",\"og:description\":\"Enable extended reasoning capabilities using the :thinking variant.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Thinking%20Variant\u0026description=Extended%20reasoning\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"brain\",\"sidebarTitle\":\"Thinking\",\"href\":\"/guides/routing/model-variants/thinking\"},{\"title\":\"Online Variant\",\"description\":\"Real-time web search with :online\",\"seoTitle\":\"Online Variant | Real-Time Web Search\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Online Variant - Real-Time Web Search\",\"og:description\":\"Enable real-time web search capabilities using the :online variant.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Online%20Variant\u0026description=Real-time%20web%20search\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"globe-pointer\",\"sidebarTitle\":\"Online\",\"href\":\"/guides/routing/model-variants/online\"},{\"title\":\"Nitro Variant\",\"description\":\"High-speed model inference with :nitro\",\"seoTitle\":\"Nitro Variant | High-Speed Inference\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Nitro Variant - High-Speed Inference\",\"og:description\":\"Access high-speed model inference using the :nitro variant.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Nitro%20Variant\u0026description=High-speed%20inference\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"bolt\",\"sidebarTitle\":\"Nitro\",\"href\":\"/guides/routing/model-variants/nitro\"},{\"title\":\"Floor Variant\",\"description\":\"Lowest-cost model inference with :floor\",\"seoTitle\":\"Floor Variant | Lowest-Cost Inference\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Floor Variant - Lowest-Cost Inference\",\"og:description\":\"Access the cheapest available inference using the :floor variant.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Floor%20Variant\u0026description=Lowest-cost%20inference\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"arrow-down-to-line\",\"sidebarTitle\":\"Floor\",\"href\":\"/guides/routing/model-variants/floor\"}]},{\"group\":\"Routers\",\"icon\":\"robot\",\"pages\":[{\"title\":\"Auto Router\",\"description\":\"Automatically select the best model for your prompt\",\"seoTitle\":\"Auto Router | Smart AI Model Selection\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Auto Router - Intelligent Model Selection\",\"og:description\":\"Automatically select the best AI model for your prompts using OpenRouter's Auto Router, powered by the wisdom of the market.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Auto%20Router\u0026description=Intelligent%20AI%20model%20selection\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"icon\":\"wand-magic-sparkles\",\"href\":\"/guides/routing/routers/auto-router\"},{\"title\":\"Body Builder\",\"description\":\"Generate multiple parallel API requests from natural language\",\"seoTitle\":\"Body Builder | Multi-Model Request Generation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Body Builder - Generate Parallel API Requests\",\"og:description\":\"Use natural language to generate multiple OpenRouter API requests for parallel model execution.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Body%20Builder\u0026description=Multi-model%20request%20generation\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"icon\":\"hammer\",\"href\":\"/guides/routing/routers/body-builder\"},{\"title\":\"Free Models Router\",\"description\":\"Get free AI inference by routing to available free models\",\"seoTitle\":\"Free Models Router | Zero-Cost AI Inference\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Free Models Router - Zero-Cost AI Inference\",\"og:description\":\"Route requests to free AI models automatically using OpenRouter's Free Models Router.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Free%20Models%20Router\u0026description=Zero-cost%20AI%20inference\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"icon\":\"gift\",\"href\":\"/guides/routing/routers/free-router\"},{\"title\":\"Latest Model Resolution\",\"description\":\"Always target the newest version of a model family with a single slug\",\"seoTitle\":\"Latest Model Resolution | Stay on the Freshest Version Automatically\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Latest Model Resolution - Always Target the Newest Version\",\"og:description\":\"Use ~author/family-latest slugs to automatically route to the newest model in a family on OpenRouter.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Latest%20Model%20Resolution\u0026description=Always%20target%20the%20newest%20version\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"icon\":\"clock-rotate-left\",\"href\":\"/guides/routing/routers/latest-resolution\"},{\"title\":\"Pareto Router\",\"description\":\"Pick a coding model by minimum coding score without choosing a specific model\",\"seoTitle\":\"Pareto Router | Coding-Score-Based Model Selection\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Pareto Router - Coding-Score-Based Model Selection\",\"og:description\":\"Route coding requests by a single minimum coding score using OpenRouter's Pareto Router.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Pareto%20Router\u0026description=Coding-score-based%20model%20selection\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"icon\":\"chart-line\",\"href\":\"/guides/routing/routers/pareto-router\"},{\"title\":\"Fusion Router\",\"description\":\"Multi-model deliberation as a model slug\",\"seoTitle\":\"Fusion Router | Multi-model AI Deliberation with OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Fusion Router - openrouter/fusion\",\"og:description\":\"Use the openrouter/fusion model slug to access multi-model deliberation (a panel of models, an analyst, and a final answer) in a single API call.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Fusion%20Router\u0026description=Multi-model%20deliberation%20as%20a%20model%20slug\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"icon\":\"circle-nodes\",\"href\":\"/guides/routing/routers/fusion-router\"}]}]},{\"group\":\"Features\",\"icon\":\"stars\",\"pages\":[{\"title\":\"Workspaces\",\"description\":\"Organize your projects, teams, and agents into separate environments\",\"seoTitle\":\"Workspaces | OpenRouter Project \u0026 Team Management\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Workspaces - Organize Projects, Teams, and Agents\",\"og:description\":\"Separate your OpenRouter projects into independent environments, each with its own API keys, routing defaults, guardrails, and observability.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Workspaces\u0026description=Organize%20projects%2C%20teams%2C%20and%20agents\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"grid-2\",\"href\":\"/guides/features/workspaces\"},{\"title\":\"Workspace Budgets\",\"description\":\"Set spending limits per workspace with automatic enforcement\",\"seoTitle\":\"Workspace Budgets | OpenRouter Spend Controls\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Workspace Budgets - Per-Workspace Spend Limits\",\"og:description\":\"Cap workspace spend with daily, weekly, monthly, or lifetime budgets. Requests are blocked automatically when a budget is met.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Workspace%20Budgets\u0026description=Per-workspace%20spend%20limits\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"wallet\",\"href\":\"/guides/features/workspaces/workspace-budgets\"},{\"title\":\"Switching Workspaces\",\"description\":\"Change which workspace your Chat and Fusion requests run in.\",\"seoTitle\":\"Switching Workspaces | OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Switching Workspaces - Change Your Active Workspace\",\"og:description\":\"Switch your active workspace directly from the Chat and Fusion sidebar so cookie-authenticated requests run in the workspace you choose.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Switching%20Workspaces\u0026description=Change%20your%20active%20workspace\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"repeat\",\"href\":\"/guides/features/workspaces/switching\"},{\"title\":\"Single Sign-On (SSO)\",\"description\":\"Let your team sign in to OpenRouter through your identity provider\",\"seoTitle\":\"OpenRouter Single Sign-On (SSO) | Developer Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter Single Sign-On (SSO)\",\"og:description\":\"Set up SAML single sign-on for your OpenRouter organization with Okta, Microsoft Entra ID, Google Workspace, or a custom SAML identity provider.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=guides/features/sso\u0026title=Single%20Sign-On\u0026description=Sign%20in%20through%20your%20identity%20provider\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"shield-halved\",\"href\":\"/guides/features/sso\"},{\"title\":\"SCIM Group Mappings\",\"description\":\"Automatically provision workspace access from your identity provider groups\",\"seoTitle\":\"OpenRouter SCIM Group Mappings | Developer Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter SCIM Group Mappings\",\"og:description\":\"Map groups provisioned by your identity provider to OpenRouter workspaces so members are automatically granted the right access.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=guides/features/scim-mappings\u0026title=SCIM%20Group%20Mappings\u0026description=Automatic%20workspace%20provisioning%20from%20your%20IdP\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"users-gear\",\"href\":\"/guides/features/scim-mappings\"},{\"title\":\"Presets\",\"description\":\"Manage your LLM configurations\",\"seoTitle\":\"Presets | Configuration Management for AI Models\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Presets - Configuration Management for AI Models\",\"og:description\":\"Learn how to use OpenRouter's presets to manage model configurations, system prompts, and parameters across your applications.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Presets\u0026description=Configuration%20management%20for%20AI%20models\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"sliders\",\"href\":\"/guides/features/presets\"},{\"title\":\"Custom Classifiers\",\"description\":\"Automatically categorize LLM generations in your workspace\",\"seoTitle\":\"Custom Classifiers | OpenRouter AI Usage Classification\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Custom Classifiers - Automatic AI Usage Classification\",\"og:description\":\"Define custom taxonomies and automatically classify every LLM generation by department, task type, complexity, or any dimension you choose.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Custom%20Classifiers\u0026description=Automatic%20AI%20usage%20classification\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"tag\",\"href\":\"/guides/features/classifiers\"},{\"title\":\"Response Caching\",\"description\":\"Cache responses for identical API requests to save time and money\",\"seoTitle\":\"Response Caching | Cache API Responses with OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Response Caching - Cache Identical API Responses\",\"og:description\":\"Cache identical LLM requests with OpenRouter's response caching feature. Reduce costs and latency for agent workflows, unit testing, and repeated context processing.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Response%20Caching\u0026description=Cache%20responses%20for%20identical%20API%20requests%20to%20save%20time%20and%20money\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"box-archive\",\"href\":\"/guides/features/response-caching\"},{\"title\":\"Tool \u0026 Function Calling\",\"description\":\"Use tools in your prompts\",\"seoTitle\":\"Tool \u0026 Function Calling | Use Tools with OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Tool \u0026 Function Calling - Use Tools with OpenRouter\",\"og:description\":\"Use tools (or functions) in your prompts with OpenRouter. Learn how to use tools with OpenAI, Anthropic, and other models that support tool calling.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Tool%20\u0026%20Function%20Calling\u0026description=Use%20tools%20with%20OpenRouter\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"toolbox\",\"sidebarTitle\":\"Tool Calling\",\"href\":\"/guides/features/tool-calling\"},{\"group\":\"Server Tools\",\"icon\":\"server\",\"pages\":[{\"title\":\"Server Tools\",\"description\":\"Tools operated by OpenRouter that models can call during request\",\"seoTitle\":\"Server Tools | Model-Callable Tools Operated by OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Server Tools - Model-Callable Tools by OpenRouter\",\"og:description\":\"Add powerful server-side tools like web search, web fetch, datetime, and image generation to any model on OpenRouter. Models decide when to call them, and OpenRouter executes them automatically.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Server%20Tools\u0026description=Model-Callable%20Tools%20by%20OpenRouter\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"compass\",\"sidebarTitle\":\"Overview\",\"tag\":\"Beta\",\"href\":\"/guides/features/server-tools\"},{\"title\":\"Web Search\",\"description\":\"Give any model access to real-time web information\",\"seoTitle\":\"Web Search Server Tool | Real-Time Web Search for Any Model\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Web Search Server Tool - Real-Time Web Search for Any Model\",\"og:description\":\"Add real-time web search to any model on OpenRouter. The model decides when to search, OpenRouter executes it, and results are returned with citations.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=features/server-tools/web-search\u0026title=Web%20Search%20Server%20Tool\u0026description=Real-time%20web%20search%20for%20any%20model\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"globe\",\"tag\":\"Beta\",\"href\":\"/guides/features/server-tools/web-search\"},{\"title\":\"Web Fetch\",\"description\":\"Give any model the ability to fetch content from URLs\",\"seoTitle\":\"Web Fetch Server Tool | URL Content Retrieval for Any Model\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Web Fetch Server Tool - URL Content Retrieval for Any Model\",\"og:description\":\"Add URL content fetching to any model on OpenRouter. The model decides when to fetch, OpenRouter retrieves the content, and results are returned as text.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Web%20Fetch%20Server%20Tool\u0026description=URL%20content%20retrieval%20for%20any%20model\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"link\",\"tag\":\"Beta\",\"href\":\"/guides/features/server-tools/web-fetch\"},{\"title\":\"Datetime\",\"description\":\"Give any model access to the current date and time\",\"seoTitle\":\"Datetime Server Tool | Current Date and Time for Any Model\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Datetime Server Tool - Current Date and Time for Any Model\",\"og:description\":\"Add current date and time awareness to any model on OpenRouter. The model calls the tool when it needs temporal context.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Datetime%20Server%20Tool\u0026description=Current%20date%20and%20time%20for%20any%20model\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"clock\",\"tag\":\"Beta\",\"href\":\"/guides/features/server-tools/datetime\"},{\"title\":\"Image Generation\",\"description\":\"Generate images from text prompts with any model\",\"seoTitle\":\"Image Generation Server Tool | AI Image Generation for Any Model\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Image Generation Server Tool - AI Image Generation for Any Model\",\"og:description\":\"Add AI image generation to any model on OpenRouter. The model calls the tool with a prompt, OpenRouter generates the image and returns it.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Image%20Generation%20Server%20Tool\u0026description=AI%20image%20generation%20for%20any%20model\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"image\",\"tag\":\"Beta\",\"href\":\"/guides/features/server-tools/image-generation\"},{\"title\":\"Apply Patch\",\"description\":\"Let models propose file changes via V4A diffs\",\"seoTitle\":\"Apply Patch Server Tool | File Editing for Coding Agents\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Apply Patch Server Tool - File Editing for Coding Agents\",\"og:description\":\"Enable any model on OpenRouter to propose file edits using V4A diff patches. The model generates the patch, OpenRouter validates it, and your application applies it.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=features/server-tools/apply-patch\u0026title=Apply%20Patch%20Server%20Tool\u0026description=File%20editing%20for%20coding%20agents\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"file-code\",\"tag\":\"Beta\",\"href\":\"/guides/features/server-tools/apply-patch\"},{\"title\":\"Bash\",\"hidden\":true,\"description\":\"Give any model a sandboxed shell to run commands server-side\",\"seoTitle\":\"Bash Server Tool | Sandboxed Shell Execution for Any Model\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Bash Server Tool - Sandboxed Shell Execution for Any Model\",\"og:description\":\"Add a sandboxed shell to any model on OpenRouter. The model decides when to run commands, OpenRouter executes them server-side in an isolated container, and stdout/stderr are returned.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Bash%20Server%20Tool\u0026description=Sandboxed%20shell%20execution%20for%20any%20model\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"href\":\"/guides/features/server-tools/bash\",\"hiddenSetByFrontmatter\":true},{\"title\":\"Shell\",\"description\":\"Give any model a sandboxed hosted shell on the Responses and Messages APIs\",\"seoTitle\":\"Shell Server Tool | Hosted Shell Execution for Any Model\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Shell Server Tool - Hosted Shell Execution for Any Model\",\"og:description\":\"Add a hosted shell to any model on OpenRouter's Responses and Messages APIs. A sandbox-backed clone of OpenAI's hosted shell tool: the model runs commands server-side in an isolated container.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Shell%20Server%20Tool\u0026description=Hosted%20shell%20execution%20for%20any%20model\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"terminal\",\"tag\":\"Beta\",\"href\":\"/guides/features/server-tools/shell\"},{\"title\":\"Files\",\"hidden\":true,\"description\":\"Let any model read, write, edit, and list workspace files\",\"seoTitle\":\"Files Server Tool | Workspace File Access for Any Model\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Files Server Tool - Workspace File Access for Any Model\",\"og:description\":\"Give any model on OpenRouter the ability to read, write, edit, and list text files in your workspace via the Files API. The model decides when to operate on files, and OpenRouter executes the operations server-side.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Files%20Server%20Tool\u0026description=Workspace%20file%20access%20for%20any%20model\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"folder-open\",\"tag\":\"Beta\",\"href\":\"/guides/features/server-tools/files\",\"hiddenSetByFrontmatter\":true},{\"title\":\"Search Models\",\"description\":\"Let any model search the OpenRouter model catalog\",\"seoTitle\":\"Search Models Server Tool | Model Discovery for Any Model\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Search Models Server Tool - Model Discovery for Any Model\",\"og:description\":\"Give any model on OpenRouter the ability to search and filter the OpenRouter model catalog by name, modality, context length, and series.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Search%20Models%20Server%20Tool\u0026description=Model%20discovery%20for%20any%20model\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"magnifying-glass\",\"tag\":\"Beta\",\"href\":\"/guides/features/server-tools/search-models\"},{\"title\":\"Fusion\",\"description\":\"Multi-model deliberation as a server tool\",\"seoTitle\":\"Fusion Server Tool | Multi-model AI Analysis with OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Fusion Server Tool - Multi-model Analysis for Any Model\",\"og:description\":\"Let any model invoke an expert panel and analyst to surface consensus, contradictions, coverage gaps, unique insights, and blind spots.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Fusion%20Server%20Tool\u0026description=Multi-model%20deliberation%20on%20demand\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"circle-nodes\",\"tag\":\"Beta\",\"href\":\"/guides/features/server-tools/fusion\"},{\"title\":\"Advisor\",\"description\":\"Consult a stronger model mid-generation as a server tool\",\"seoTitle\":\"Advisor Server Tool | Mid-generation Model Consultation on OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Advisor Server Tool - Consult a Stronger Model Mid-generation\",\"og:description\":\"Let a fast executor model consult a higher-intelligence advisor model for guidance mid-generation, with any OpenRouter model.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Advisor%20Server%20Tool\u0026description=Consult%20a%20stronger%20model%20on%20demand\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"lightbulb\",\"tag\":\"Beta\",\"href\":\"/guides/features/server-tools/advisor\"},{\"title\":\"Subagent\",\"description\":\"Delegate tasks to a smaller, faster model as a server tool\",\"seoTitle\":\"Subagent Server Tool | Mid-generation Task Delegation on OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Subagent Server Tool - Delegate Tasks to Smaller Models\",\"og:description\":\"Let a large model break work into focused sub-tasks and delegate them to a smaller, cheaper, faster worker model: any OpenRouter model, with optional tools.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Subagent%20Server%20Tool\u0026description=Delegate%20tasks%20to%20smaller%20models\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"sitemap\",\"tag\":\"Beta\",\"href\":\"/guides/features/server-tools/subagent\"}]},{\"group\":\"Plugins\",\"icon\":\"plug\",\"pages\":[{\"title\":\"Plugins\",\"description\":\"Extend model capabilities with OpenRouter plugins\",\"seoTitle\":\"Plugins | Extend AI Model Capabilities\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Plugins - Extend AI Model Capabilities\",\"og:description\":\"Enable powerful plugins like web search, PDF processing, and response healing to extend any model's capabilities on OpenRouter.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Plugins\u0026description=Extend%20AI%20Model%20Capabilities\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"compass\",\"sidebarTitle\":\"Overview\",\"href\":\"/guides/features/plugins\"},{\"title\":\"Web Search\",\"description\":\"Model-agnostic grounding\",\"seoTitle\":\"Web Search | Add Real-time Web Data to AI Model Responses\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Web Search - Real-time Web Grounding for AI Models\",\"og:description\":\"Enable real-time web search capabilities in your AI model responses. Add factual, up-to-date information to any model's output with OpenRouter's web search feature.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=features/web-search\u0026title=Web%20Search\u0026description=Add%20real-time%20web%20data%20to%20any%20AI%20model%20response\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"globe\",\"href\":\"/guides/features/plugins/web-search\"},{\"title\":\"Response Healing\",\"description\":\"Automatically fix malformed JSON responses\",\"seoTitle\":\"Response Healing | Validate and Repair AI Model Responses\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Response Healing - Fix Malformed JSON from AI Models\",\"og:description\":\"Automatically validate and repair malformed JSON responses from AI models. Ensure your responses match your schema even when models return imperfect formatting.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Response%20Healing\u0026description=Validate%20and%20Repair%20AI%20Model%20Responses\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"bandage\",\"href\":\"/guides/features/plugins/response-healing\"},{\"title\":\"Fusion\",\"description\":\"Multi-model analysis with an analyst model\",\"seoTitle\":\"Fusion | Multi-model AI Analysis with OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Fusion - Multi-model Analysis on OpenRouter\",\"og:description\":\"Get richer answers by running a panel of models in parallel and comparing their responses through an analyst. Fusion makes this a one-line addition to any OpenRouter request.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Fusion\u0026description=Multi-model%20Analysis%20with%20a%20Analyst%20Model\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"circle-nodes\",\"href\":\"/guides/features/plugins/fusion\"}]},{\"title\":\"Structured Outputs\",\"description\":\"Return structured data from your models\",\"seoTitle\":\"Structured Outputs | Enforce JSON Schema in OpenRouter API Responses\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Structured Outputs - Type-Safe JSON Responses from AI Models\",\"og:description\":\"Enforce JSON Schema validation on AI model responses. Get consistent, type-safe outputs and avoid parsing errors with OpenRouter's structured output feature.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Structured%20Outputs\u0026description=Type-Safe%20JSON%20Responses%20from%20AI%20Models\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"code\",\"href\":\"/guides/features/structured-outputs\"},{\"title\":\"Message Transforms\",\"description\":\"Transform prompt messages\",\"seoTitle\":\"Message Transforms | Pre-process AI Model Inputs with OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Message Transforms - Optimize AI Model Inputs\",\"og:description\":\"Transform and optimize messages before sending them to AI models. Learn about middle-out compression and context window optimization with OpenRouter.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Message%20Transforms\u0026description=Optimize%20AI%20model%20inputs%20with%20OpenRouter\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"arrows-rotate\",\"href\":\"/guides/features/message-transforms\"},{\"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\"},{\"title\":\"Zero Data Retention\",\"description\":\"How OpenRouter gives you control over your data\",\"seoTitle\":\"Zero Data Retention | How OpenRouter gives you control over your data\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Zero Data Retention - How OpenRouter gives you control over your data\",\"og:description\":\"Learn how OpenRouter gives you control over your data\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Zero%20Data%20Retention\u0026description=How%20OpenRouter%20gives%20you%20control%20over%20your%20data\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"shield-halved\",\"sidebarTitle\":\"ZDR\",\"href\":\"/guides/features/zdr\"},{\"title\":\"App Attribution\",\"description\":\"Get your app featured in OpenRouter rankings and analytics\",\"slug\":\"app-attribution\",\"seoTitle\":\"App Attribution | OpenRouter Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"App Attribution\",\"og:description\":\"Learn how to attribute your API usage to your app and appear in OpenRouter's app rankings and model analytics.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=app-attribution\u0026title=App%20Attribution\u0026description=Get%20your%20app%20featured%20in%20rankings\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"chart-line\",\"href\":\"/app-attribution\"},{\"group\":\"Guardrails\",\"icon\":\"shield-check\",\"pages\":[{\"title\":\"Guardrails\",\"description\":\"Control spending and model access for your organization\",\"seoTitle\":\"Guardrails | OpenRouter Organization Controls\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Guardrails - Organization Spending and Access Controls\",\"og:description\":\"Set spending limits, restrict model access, and enforce data policies for your organization members and API keys with OpenRouter guardrails.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Guardrails\u0026description=Control%20spending%20and%20model%20access\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"book-open\",\"sidebarTitle\":\"Overview\",\"href\":\"/guides/features/guardrails\"},{\"group\":\"Prompt Injection Detection\",\"icon\":\"syringe\",\"root\":{\"title\":\"Prompt Injection Detection\",\"description\":\"Regex-based prompt injection guardrail patterns\",\"seoTitle\":\"Prompt Injection Detection | OpenRouter Guardrails\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Prompt Injection Detection - Guardrail Regex Patterns\",\"og:description\":\"Reference documentation for the regex-based prompt injection detection patterns used by OpenRouter guardrails, inspired by the OWASP LLM Prompt Injection Prevention Cheat Sheet.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Prompt%20Injection%20Detection\u0026description=Guardrail%20regex%20patterns\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"icon\":\"syringe\",\"href\":\"/guides/features/guardrails/prompt-injection\"},\"pages\":[{\"title\":\"Allowlist\",\"description\":\"Exclude known-safe phrases from prompt injection detection\",\"seoTitle\":\"Allowlist | OpenRouter Guardrails\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Prompt Injection Allowlist - Exclude Safe Phrases from Detection\",\"og:description\":\"Add specific phrases to an allowlist so they are not flagged, redacted, or blocked by the regex-based prompt injection guardrail.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Prompt%20Injection%20Allowlist\u0026description=Exclude%20safe%20phrases%20from%20detection\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"list-check\",\"href\":\"/guides/features/guardrails/prompt-injection/allowlist\"}]},{\"title\":\"Sensitive Info Guardrail\",\"description\":\"Automatically detect and handle sensitive information in API requests\",\"seoTitle\":\"Sensitive Info Guardrail | OpenRouter Data Protection\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Sensitive Info Guardrail - Automatic PII Detection and Redaction\",\"og:description\":\"Protect sensitive data in your AI requests with OpenRouter Sensitive Info Guardrails. Automatically detect and redact or block PII like emails, phone numbers, names, addresses, and more.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Sensitive%20Info%20Guardrail\u0026description=Automatically%20detect%20and%20handle%20sensitive%20information\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"eye-slash\",\"sidebarTitle\":\"Sensitive Info\",\"href\":\"/guides/features/guardrails/sensitive-info\"}]},{\"title\":\"Service Tiers\",\"description\":\"Control cost and latency tradeoffs with service tier selection\",\"seoTitle\":\"Service Tiers | OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Service Tiers - Control Cost and Latency Tradeoffs\",\"og:description\":\"Learn how to use service tiers on OpenRouter to control cost and latency tradeoffs when routing requests to AI providers.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Service%20Tiers\u0026description=Control%20Cost%20and%20Latency%20Tradeoffs\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"layer-group\",\"href\":\"/guides/features/service-tiers\"},{\"title\":\"Sovereign AI\",\"description\":\"Keep AI workloads within national and regional boundaries\",\"seoTitle\":\"Sovereign AI | In-Region AI Routing with OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Sovereign AI - In-Region AI Routing with OpenRouter\",\"og:description\":\"Learn how OpenRouter enables sovereign AI with in-region routing, data residency controls, and compliance features that keep your AI workloads within national and regional boundaries.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Sovereign%20AI\u0026description=In-Region%20AI%20Routing%20with%20OpenRouter\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"globe\",\"href\":\"/guides/features/sovereign-ai\"},{\"title\":\"Router Metadata\",\"description\":\"Surface routing decisions on every response with a single opt-in header\",\"seoTitle\":\"Router Metadata | OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Router Metadata - Inspect Routing Decisions on Every Response\",\"og:description\":\"Opt in to OpenRouter routing metadata to see which provider was selected, fallback attempts, and pipeline stages applied to your request.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Router%20Metadata\u0026description=Inspect%20Routing%20Decisions%20on%20Every%20Response\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"circle-info\",\"href\":\"/guides/features/router-metadata\"},{\"title\":\"Input \u0026 Output Logging\",\"description\":\"Privately store and review your prompts and completions\",\"seoTitle\":\"Input \u0026 Output Logging | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Input \u0026 Output Logging - Privately Store Prompts and Completions\",\"og:description\":\"Store your prompts and completions privately on OpenRouter for debugging, evaluation, and optimization. View them in your Logs page.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Input%20%26%20Output%20Logging\u0026description=Privately%20store%20and%20review%20prompts\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"file-lines\",\"sidebarTitle\":\"Input \u0026 Output Logging\",\"href\":\"/guides/features/input-output-logging\"},{\"group\":\"Broadcast\",\"icon\":\"broadcast-tower\",\"pages\":[{\"title\":\"Broadcast\",\"description\":\"Send traces to external observability platforms\",\"seoTitle\":\"Broadcast | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast - Send Traces to Observability Platforms\",\"og:description\":\"Connect your LLM observability platforms to automatically receive traces from your OpenRouter requests. Supports Langfuse, Datadog, Braintrust, and more.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Broadcast\u0026description=Send%20traces%20to%20observability%20platforms\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"compass\",\"sidebarTitle\":\"Overview\",\"href\":\"/guides/features/broadcast\"},{\"title\":\"Arize AX\",\"description\":\"Send traces to Arize AX\",\"seoTitle\":\"Broadcast to Arize AX | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to Arize AX - Send Traces to Arize AX\",\"og:description\":\"Connect Arize AX to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for Arize AX integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Arize%20AX%20Broadcast\u0026description=Send%20traces%20to%20Arize%20AX\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/arize\"},{\"title\":\"Braintrust\",\"description\":\"Send traces to Braintrust\",\"seoTitle\":\"Broadcast to Braintrust | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to Braintrust - Send Traces to Braintrust\",\"og:description\":\"Connect Braintrust to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for Braintrust integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Braintrust%20Broadcast\u0026description=Send%20traces%20to%20Braintrust\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/braintrust\"},{\"title\":\"ClickHouse\",\"description\":\"Send traces to ClickHouse\",\"seoTitle\":\"Broadcast to ClickHouse | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to ClickHouse - Send Traces to Your Analytics Database\",\"og:description\":\"Connect ClickHouse to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for ClickHouse integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=ClickHouse%20Broadcast\u0026description=Send%20traces%20to%20ClickHouse\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/clickhouse\"},{\"title\":\"Comet Opik\",\"description\":\"Send traces to Comet Opik\",\"seoTitle\":\"Broadcast to Comet Opik | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to Comet Opik - Send Traces to Opik\",\"og:description\":\"Connect Comet Opik to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for Opik integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Comet%20Opik%20Broadcast\u0026description=Send%20traces%20to%20Comet%20Opik\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/opik\"},{\"title\":\"Datadog\",\"description\":\"Send traces to Datadog\",\"seoTitle\":\"Datadog Broadcast | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Datadog Broadcast - Send Traces to Datadog LLM Observability\",\"og:description\":\"Connect Datadog LLM Observability to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for Datadog integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Datadog%20Broadcast\u0026description=Send%20traces%20to%20Datadog%20LLM%20Observability\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/datadog\"},{\"title\":\"Google BigQuery\",\"description\":\"Send traces to Google BigQuery\",\"seoTitle\":\"Broadcast to Google BigQuery | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to Google BigQuery - Send Traces to Your Data Warehouse\",\"og:description\":\"Connect Google BigQuery to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for BigQuery integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=BigQuery%20Broadcast\u0026description=Send%20traces%20to%20Google%20BigQuery\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/bigquery\"},{\"title\":\"Grafana Cloud\",\"description\":\"Send traces to Grafana Cloud\",\"seoTitle\":\"Broadcast to Grafana Cloud | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to Grafana Cloud - Send Traces to Grafana Tempo\",\"og:description\":\"Connect Grafana Cloud to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for Grafana Cloud integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Grafana%20Cloud%20Broadcast\u0026description=Send%20traces%20to%20Grafana%20Cloud\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/grafana\"},{\"title\":\"Langfuse\",\"description\":\"Send traces to Langfuse\",\"seoTitle\":\"Broadcast to Langfuse | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to Langfuse - Send Traces to Langfuse\",\"og:description\":\"Connect Langfuse to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for Langfuse integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Langfuse%20Broadcast\u0026description=Send%20traces%20to%20Langfuse\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/langfuse\"},{\"title\":\"LangSmith\",\"description\":\"Send traces to LangSmith\",\"seoTitle\":\"Broadcast to LangSmith | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to LangSmith - Send Traces to LangSmith\",\"og:description\":\"Connect LangSmith to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for LangSmith integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=LangSmith%20Broadcast\u0026description=Send%20traces%20to%20LangSmith\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/langsmith\"},{\"title\":\"New Relic\",\"description\":\"Send traces to New Relic\",\"seoTitle\":\"Broadcast to New Relic | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to New Relic - Send Traces to New Relic\",\"og:description\":\"Connect New Relic to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for New Relic integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=New%20Relic%20Broadcast\u0026description=Send%20traces%20to%20New%20Relic\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/newrelic\"},{\"title\":\"OpenTelemetry Collector\",\"description\":\"Send traces to any OpenTelemetry-compatible backend\",\"seoTitle\":\"Broadcast to OpenTelemetry Collector | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to OpenTelemetry Collector - Send Traces to OTLP Backends\",\"og:description\":\"Connect any OpenTelemetry-compatible backend to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for OTLP integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=OpenTelemetry%20Collector%20Broadcast\u0026description=Send%20traces%20to%20OTLP%20backends\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/otel-collector\"},{\"title\":\"PostHog\",\"description\":\"Send traces to PostHog\",\"seoTitle\":\"Broadcast to PostHog | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to PostHog - Send Traces to PostHog\",\"og:description\":\"Connect PostHog to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for PostHog integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=PostHog%20Broadcast\u0026description=Send%20traces%20to%20PostHog\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/posthog\"},{\"title\":\"Raindrop\",\"description\":\"Send traces to Raindrop\",\"seoTitle\":\"Broadcast to Raindrop | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to Raindrop - Send Traces to Raindrop\",\"og:description\":\"Connect Raindrop to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for Raindrop integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Raindrop%20Broadcast\u0026description=Send%20traces%20to%20Raindrop\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/raindrop\"},{\"title\":\"Ramp\",\"description\":\"Send traces to Ramp\",\"seoTitle\":\"Broadcast to Ramp | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to Ramp - Send Traces to Ramp\",\"og:description\":\"Connect Ramp to automatically receive AI usage traces from your OpenRouter requests. Step-by-step setup guide for Ramp integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Ramp%20Broadcast\u0026description=Send%20traces%20to%20Ramp\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/ramp\"},{\"title\":\"S3 / S3-Compatible\",\"description\":\"Send traces to Amazon S3 or S3-compatible storage\",\"seoTitle\":\"Broadcast to S3 | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to S3 - Send Traces to S3 Storage\",\"og:description\":\"Connect Amazon S3 or S3-compatible storage to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for S3 integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=S3%20Broadcast\u0026description=Send%20traces%20to%20S3%20storage\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/s3\"},{\"title\":\"Sentry\",\"description\":\"Send traces to Sentry\",\"seoTitle\":\"Broadcast to Sentry | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to Sentry - Send Traces to Sentry\",\"og:description\":\"Connect Sentry to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for Sentry integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Sentry%20Broadcast\u0026description=Send%20traces%20to%20Sentry\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/sentry\"},{\"title\":\"Snowflake\",\"description\":\"Send traces to Snowflake\",\"seoTitle\":\"Broadcast to Snowflake | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to Snowflake - Send Traces to Your Data Warehouse\",\"og:description\":\"Connect Snowflake to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for Snowflake integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Snowflake%20Broadcast\u0026description=Send%20traces%20to%20Snowflake\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/snowflake\"},{\"title\":\"W\u0026B Weave\",\"description\":\"Send traces to W\u0026B Weave\",\"seoTitle\":\"Broadcast to W\u0026B Weave | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to W\u0026B Weave - Send Traces to W\u0026B Weave\",\"og:description\":\"Connect W\u0026B Weave to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for W\u0026B Weave integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=W%26B%20Weave%20Broadcast\u0026description=Send%20traces%20to%20W%26B%20Weave\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/weave\"},{\"title\":\"Webhook\",\"description\":\"Send traces to any HTTP endpoint\",\"seoTitle\":\"Broadcast to Webhook | OpenRouter Observability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Broadcast to Webhook - Send Traces to Any HTTP Endpoint\",\"og:description\":\"Connect any HTTP endpoint to automatically receive traces from your OpenRouter requests. Step-by-step setup guide for Webhook integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Webhook%20Broadcast\u0026description=Send%20traces%20to%20any%20HTTP%20endpoint\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/features/broadcast/webhook\"}]}]},{\"group\":\"Ori\",\"icon\":\"terminal\",\"pages\":[{\"title\":\"Ori Eval\",\"description\":\"Find the best model for your project by testing your agent on real prompts, with one harness and one model for each run\",\"seoTitle\":\"Ori Eval | Find the Best Model for Your Project\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Ori Eval - Find the Best Model for Your Project\",\"og:description\":\"Ask which model is best for your project. Ori finds test data in your repo, writes the eval, runs your candidates, and recommends one, with the scores that support the recommendation.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Ori%20Eval\u0026description=Find%20the%20best%20model%20for%20your%20project\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"nofollow\":false,\"icon\":\"vial-circle-check\",\"href\":\"/guides/ori/eval\"},{\"title\":\"Ori Harness\",\"description\":\"Run your existing agent CLI on OpenRouter with any model, organization guardrails, and one bill\",\"seoTitle\":\"Ori Harness | Run Your Agent on OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Ori Harness - Run Your Agent on OpenRouter\",\"og:description\":\"Run the agent CLI you already use on OpenRouter. Choose any model, keep your organization guardrails, and get one bill across agents.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Ori%20Harness\u0026description=Run%20your%20agent%20on%20OpenRouter\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"nofollow\":false,\"icon\":\"plug\",\"href\":\"/guides/ori/harness\"},{\"title\":\"Where Ori writes files\",\"description\":\"Find the files and directories that Ori creates during a run\",\"seoTitle\":\"Where Ori writes files | OpenRouter Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Where Ori writes files\",\"og:description\":\"Find the files and directories that Ori creates during a run.\",\"nofollow\":false,\"icon\":\"folder\",\"href\":\"/guides/ori/files\"}]},{\"group\":\"Privacy\",\"icon\":\"shield\",\"expanded\":false,\"pages\":[{\"title\":\"Data Collection\",\"description\":\"What data OpenRouter collects\",\"seoTitle\":\"Data Collection | OpenRouter Privacy\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Data Collection - OpenRouter Privacy\",\"og:description\":\"Learn what data OpenRouter collects and how it's used.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Data%20Collection\u0026description=What%20data%20OpenRouter%20collects\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"database\",\"href\":\"/guides/privacy/data-collection\"},{\"title\":\"Provider Logging\",\"description\":\"Provider logging and data retention policies\",\"seoTitle\":\"Provider Logging | Provider Data Retention\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Provider Logging - Provider Data Retention Policies\",\"og:description\":\"Understand how AI providers handle logging and data retention when you use OpenRouter.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Provider%20Logging\u0026description=Provider%20data%20retention%20policies\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"file-lines\",\"href\":\"/guides/privacy/provider-logging\"}]},{\"group\":\"Best Practices\",\"icon\":\"lightbulb\",\"expanded\":false,\"pages\":[{\"title\":\"Latency and Performance\",\"description\":\"Understanding OpenRouter's performance characteristics\",\"seoTitle\":\"Latency and Performance | Minimizing Gateway Latency\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Latency and Performance | Minimizing Gateway Latency\",\"og:description\":\"Learn about OpenRouter's performance characteristics, latency optimizations, and best practices for achieving optimal response times.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Latency%20and%20Performance\u0026description=Understanding%20OpenRouter's%20performance%20characteristics\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"gauge-high\",\"href\":\"/guides/best-practices/latency-and-performance\"},{\"title\":\"Prompt Caching\",\"description\":\"Cache prompt messages\",\"seoTitle\":\"Prompt Caching | Reduce AI Model Costs with OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Prompt Caching - Optimize AI Model Costs with Smart Caching\",\"og:description\":\"Reduce your AI model costs with OpenRouter's prompt caching feature. Learn how to cache and reuse responses across OpenAI, Anthropic Claude, and DeepSeek models.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Prompt%20Caching\u0026description=Optimize%20AI%20model%20costs%20with%20OpenRouter\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"database\",\"href\":\"/guides/best-practices/prompt-caching\"},{\"title\":\"Uptime Optimization\",\"description\":\"OpenRouter tracks provider availability\",\"seoTitle\":\"Uptime Optimization | Maximize AI Model Availability\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Uptime Optimization - Ensure Reliable AI Model Access\",\"og:description\":\"Learn how OpenRouter maximizes AI model uptime through real-time monitoring, intelligent routing, and automatic fallbacks across multiple providers.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Uptime%20Optimization\u0026description=Maximize%20AI%20model%20availability\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"chart-line\",\"href\":\"/guides/best-practices/uptime-optimization\"},{\"title\":\"Reasoning Tokens\",\"seoTitle\":\"Reasoning Tokens | Enhanced AI Model Reasoning with OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Reasoning Tokens - Improve AI Model Decision Making\",\"og:description\":\"Learn how to use reasoning tokens to enhance AI model outputs. Implement step-by-step reasoning traces for better decision making and transparency.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Reasoning%20Tokens\u0026description=Enhance%20AI%20model%20outputs%20with%20OpenRouter\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"lightbulb\",\"description\":null,\"href\":\"/guides/best-practices/reasoning-tokens\"}]},{\"group\":\"Community\",\"icon\":\"users\",\"expanded\":false,\"pages\":[{\"title\":\"Provider Integration\",\"seoTitle\":\"Provider Integration | Add Your AI Models to OpenRouter\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Provider Integration - Add Your Models to OpenRouter\",\"og:description\":\"Learn how to integrate your AI models with OpenRouter. Complete guide for providers to make their models available through OpenRouter's unified API.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Provider%20Integration\u0026description=Add%20Your%20Models%20to%20OpenRouter\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"cloud\",\"sidebarTitle\":\"For Providers\",\"description\":null,\"href\":\"/guides/community/for-providers\"},{\"title\":\"Frameworks and Integrations Overview\",\"description\":\"Using OpenRouter with Popular Frameworks and Integrations\",\"seoTitle\":\"Frameworks and Integrations | OpenRouter SDK and Library Support\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Frameworks and Integrations - OpenRouter SDK Support\",\"og:description\":\"Integrate OpenRouter using popular frameworks and SDKs. Complete guides for OpenAI SDK, LangChain, PydanticAI, and Vercel AI SDK integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Frameworks\u0026description=Frameworks%20and%20SDK%20Support\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/community/frameworks-and-integrations-overview\"},{\"title\":\"Awesome OpenRouter\",\"description\":\"Community-curated list of projects built with OpenRouter\",\"seoTitle\":\"Awesome OpenRouter | Community Projects and Apps\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Awesome OpenRouter - Community Projects\",\"og:description\":\"Discover community-built projects and apps powered by OpenRouter. Submit your own project to the awesome-openrouter list.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Awesome%20OpenRouter\u0026description=Community%20Projects\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"star\",\"href\":\"/guides/community/awesome-openrouter\"},{\"title\":\"Effect AI SDK\",\"description\":\"Integrate OpenRouter using the Effect AI SDK\",\"seoTitle\":\"Effect AI SDK Integration | OpenRouter SDK Support\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Effect AI SDK Integration - OpenRouter SDK Support\",\"og:description\":\"Integrate OpenRouter using the Effect AI SDK. Complete guide for integrating the Effect AI SDK with OpenRouter.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Effect%20AI%20SDK\u0026description=Effect%20AI%20SDK%20Integration\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/community/effect-ai-sdk\"},{\"title\":\"Arize AX\",\"description\":\"Using OpenRouter with Arize AX\",\"seoTitle\":\"Arize AX Integration | OpenRouter SDK Support\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Arize AX Integration - OpenRouter SDK Support\",\"og:description\":\"Integrate OpenRouter using Arize AX for observability and tracing. Complete guide for Arize AX integration with OpenRouter for Python and JavaScript applications.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Arize%20AX\u0026description=Arize%20AX%20Integration\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/community/arize\"},{\"title\":\"LangChain\",\"description\":\"Using OpenRouter with LangChain\",\"seoTitle\":\"LangChain Integration | OpenRouter SDK Support\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"LangChain Integration - OpenRouter SDK Support\",\"og:description\":\"Integrate OpenRouter using LangChain framework. Complete guide for LangChain integration with OpenRouter for Python and JavaScript.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=LangChain\u0026description=LangChain%20Integration\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/community/langchain\"},{\"title\":\"LiveKit\",\"description\":\"Using OpenRouter with LiveKit Agents\",\"seoTitle\":\"LiveKit Integration | OpenRouter SDK Support\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"LiveKit Integration - OpenRouter SDK Support\",\"og:description\":\"Integrate OpenRouter using LiveKit Agents framework. Complete guide for LiveKit integration with OpenRouter to build voice AI agents with access to 400+ models.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=LiveKit\u0026description=LiveKit%20Integration\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/community/livekit\"},{\"title\":\"Langfuse\",\"description\":\"Using OpenRouter with Langfuse\",\"seoTitle\":\"Langfuse Integration | OpenRouter SDK Support\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Langfuse Integration - OpenRouter SDK Support\",\"og:description\":\"Integrate OpenRouter using Langfuse for observability and tracing. Complete guide for Langfuse integration with OpenRouter for Python applications.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Langfuse\u0026description=Langfuse%20Integration\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/community/langfuse\"},{\"title\":\"Mastra\",\"description\":\"Using OpenRouter with Mastra\",\"seoTitle\":\"Mastra Integration | OpenRouter SDK Support\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Mastra Integration - OpenRouter SDK Support\",\"og:description\":\"Integrate OpenRouter using Mastra framework. Complete guide for Mastra integration with OpenRouter for unified AI model access.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Mastra\u0026description=Mastra%20Integration\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/community/mastra\"},{\"title\":\"OpenAI SDK\",\"description\":\"Using OpenRouter with OpenAI SDK\",\"seoTitle\":\"OpenAI SDK Integration | OpenRouter SDK Support\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenAI SDK Integration - OpenRouter SDK Support\",\"og:description\":\"Integrate OpenRouter using the official OpenAI SDK. Complete guide for OpenAI SDK integration with OpenRouter for Python and TypeScript.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=OpenAI%20SDK\u0026description=OpenAI%20SDK%20Integration\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/community/openai-sdk\"},{\"title\":\"Anthropic Agent SDK\",\"description\":\"Using OpenRouter with the Anthropic Agent SDK\",\"seoTitle\":\"Anthropic Agent SDK Integration | OpenRouter SDK Support\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Anthropic Agent SDK Integration - OpenRouter SDK Support\",\"og:description\":\"Integrate OpenRouter using the Anthropic Agent SDK. Complete guide for building AI agents with OpenRouter in Python and TypeScript.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Anthropic%20Agent%20SDK\u0026description=Anthropic%20Agent%20SDK%20Integration\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/community/anthropic-agent-sdk\"},{\"title\":\"PydanticAI\",\"description\":\"Using OpenRouter with PydanticAI\",\"seoTitle\":\"PydanticAI Integration | OpenRouter SDK Support\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"PydanticAI Integration - OpenRouter SDK Support\",\"og:description\":\"Integrate OpenRouter using PydanticAI framework. Complete guide for PydanticAI integration with OpenRouter for Python applications.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=PydanticAI\u0026description=PydanticAI%20Integration\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/community/pydantic-ai\"},{\"title\":\"Render\",\"description\":\"Using OpenRouter with Render Workflows\",\"seoTitle\":\"Render Integration | OpenRouter with Render Workflows\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Render Integration - OpenRouter with Render Workflows\",\"og:description\":\"Run OpenRouter model calls inside Render Workflows with queuing, retries, and parallel task runs. Covers local development, deployment, and triggering from an app.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Render\u0026description=Using%20OpenRouter%20with%20Render%20Workflows\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/community/render\"},{\"title\":\"Replit\",\"description\":\"Using OpenRouter with Replit Agent and Replit Apps\",\"seoTitle\":\"Replit Integration | Add OpenRouter API Key to Replit\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Replit Integration - Add OpenRouter API Key to Replit\",\"og:description\":\"Add your OpenRouter API key to Replit to access 400+ AI models in Replit Agent and your Replit apps. Covers BYOK setup and project Secrets.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Replit\u0026description=Add%20OpenRouter%20API%20Key%20to%20Replit\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/community/replit\"},{\"title\":\"TanStack AI\",\"description\":\"Using OpenRouter with TanStack AI\",\"seoTitle\":\"TanStack AI Integration | OpenRouter SDK Support\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"TanStack AI Integration - OpenRouter SDK Support\",\"og:description\":\"Integrate OpenRouter using TanStack AI. Complete guide for TanStack AI integration with OpenRouter for React, Solid, and Preact applications.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=TanStack%20AI\u0026description=TanStack%20AI%20Integration\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/community/tanstack-ai\"},{\"title\":\"Vercel AI SDK\",\"description\":\"Using OpenRouter with Vercel AI SDK\",\"seoTitle\":\"Vercel AI SDK Integration | OpenRouter SDK Support\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Vercel AI SDK Integration - OpenRouter SDK Support\",\"og:description\":\"Integrate OpenRouter using Vercel AI SDK. Complete guide for Vercel AI SDK integration with OpenRouter for Next.js applications.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Vercel%20AI%20SDK\u0026description=Vercel%20AI%20SDK%20Integration\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/community/vercel-ai-sdk\"},{\"title\":\"Xcode\",\"description\":\"Using OpenRouter with Apple Intelligence in Xcode\",\"seoTitle\":\"Xcode Integration | OpenRouter Apple Intelligence Support\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Xcode Integration - OpenRouter Apple Intelligence Support\",\"og:description\":\"Integrate OpenRouter with Apple Intelligence in Xcode 26. Complete setup guide for accessing hundreds of AI models directly in your Xcode development environment.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Xcode\u0026description=Apple%20Intelligence%20Integration\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/community/xcode\"},{\"title\":\"Zapier\",\"description\":\"Build AI automations with OpenRouter \u0026 Zapier\",\"seoTitle\":\"Zapier Integration | OpenRouter AI Automations\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Zapier Integration - OpenRouter AI Automations\",\"og:description\":\"Build powerful AI automations by connecting OpenRouter with 8000+ apps through Zapier. Access 400+ AI models in your workflows.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Zapier\u0026description=Build%20AI%20automations%20with%20OpenRouter%20%26%20Zapier\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"puzzle-piece\",\"href\":\"/guides/community/zapier\"},{\"title\":\"Infisical\",\"description\":\"Automatic API Key Rotation with Infisical\",\"seoTitle\":\"Infisical Integration | OpenRouter API Key Management\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"Infisical Integration - OpenRouter API Key Management\",\"og:description\":\"Set up automatic API key rotation for OpenRouter using Infisical. Complete guide for secure key management and zero-downtime rotation.\",\"og:image\":\"https://openrouter.ai/dynamic-og?title=Infisical\u0026description=Automatic%20API%20Key%20Rotation\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"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\"}]}]},\"maps\":{\"firstHrefInVersion\":{},\"firstHrefInLanguage\":{}},\"children\":\"$L2e\"}]\n"])</script><script>self.__next_f.push([1,"2f:I[604804,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"LoginButtonProvider\"]\n"])</script><script>self.__next_f.push([1,"30:I[141180,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"SidebarLoginButtonProvider\"]\n"])</script><script>self.__next_f.push([1,"31:I[343590,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"NavigationContextController\"]\n"])</script><script>self.__next_f.push([1,"32:I[378486,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"PageListProvider\"]\n"])</script><script>self.__next_f.push([1,"33:I[742977,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"PrefetchProvider\"]\n"])</script><script>self.__next_f.push([1,"34:I[237978,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"PageModeOverrideProvider\"]\n"])</script><script>self.__next_f.push([1,"35:I[378896,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"ConfiguredVariationProvider\"]\n"])</script><script>self.__next_f.push([1,"36:I[557611,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"Fonts\"]\n"])</script><script>self.__next_f.push([1,"37:I[330080,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"BannerProvider\"]\n"])</script><script>self.__next_f.push([1,"38:I[864506,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"NavbarTransitionScript\"]\n"])</script><script>self.__next_f.push([1,"3b:I[763509,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/68ad056007b94e04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cb00d03b4d1e9ae2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f48a8fa65184b0c7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0dd7d15c30c41f1b.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/ca83a905f88dbab7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/555577647291460f.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/2dd53f5a4cfe6dd5.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"ThemeLayout\"]\n"])</script><script>self.__next_f.push([1,"3c:I[91557,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/68ad056007b94e04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cb00d03b4d1e9ae2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f48a8fa65184b0c7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0dd7d15c30c41f1b.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/ca83a905f88dbab7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/555577647291460f.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/2dd53f5a4cfe6dd5.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"ApiReferenceProvider\"]\n"])</script><script>self.__next_f.push([1,"3d:I[91557,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/68ad056007b94e04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cb00d03b4d1e9ae2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f48a8fa65184b0c7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0dd7d15c30c41f1b.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/ca83a905f88dbab7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/555577647291460f.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/2dd53f5a4cfe6dd5.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"PageProvider\"]\n"])</script><script>self.__next_f.push([1,"3e:I[91557,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/68ad056007b94e04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cb00d03b4d1e9ae2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f48a8fa65184b0c7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0dd7d15c30c41f1b.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/ca83a905f88dbab7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/555577647291460f.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/2dd53f5a4cfe6dd5.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"OpenApiProvider\"]\n"])</script><script>self.__next_f.push([1,"3f:I[525343,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/68ad056007b94e04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cb00d03b4d1e9ae2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f48a8fa65184b0c7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0dd7d15c30c41f1b.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/ca83a905f88dbab7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/555577647291460f.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/2dd53f5a4cfe6dd5.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"TabSyncContextProvider\"]\n"])</script><script>self.__next_f.push([1,"39:T9e0,"])</script><script>self.__next_f.push([1,"(function () {\n  var measure = function(){let a=document.querySelectorAll(\"[id='navbar'], [data-top-chrome]\"),b=0;a.forEach(a=\u003e{let c=a.getBoundingClientRect();c.height\u003e0\u0026\u0026(b=Math.max(b,c.bottom))});let c=0,d=document.getElementById(\"content-container\");if(d){let{overflowY:a}=getComputedStyle(d);(\"auto\"===a||\"scroll\"===a)\u0026\u0026(c=Math.max(0,d.getBoundingClientRect().top))}let e=`${Math.round(Math.max(0,b-c))+40}px`,f=document.documentElement.style;f.getPropertyValue(\"--scroll-mt\")!==e\u0026\u0026f.setProperty(\"--scroll-mt\",e)};\n  (function(a){let b=[],c=0,d=\"undefined\"==typeof ResizeObserver?null:new ResizeObserver(f);function e(){let c=Array.from(document.querySelectorAll(\"[id='navbar'], [data-top-chrome]\"));(c.length!==b.length||c.some((a,c)=\u003ea!==b[c]))\u0026\u0026d\u0026\u0026(d.disconnect(),c.forEach(a=\u003ed.observe(a))),b=c,a()}function f(){c||(c=requestAnimationFrame(()=\u003e{c=0,e()}))}let g=\"[id='navbar'], [data-top-chrome]\";function h(a){let b=a.target;if(b instanceof Element\u0026\u0026b.closest(g))return!0;for(let b of a.addedNodes)if(b instanceof Element\u0026\u0026(b.matches(g)||b.querySelector(g)))return!0;for(let b of a.removedNodes)if(b instanceof Element\u0026\u0026(b.matches(g)||b.querySelector(g)))return!0;return!1}new MutationObserver(a=\u003e{a.some(h)\u0026\u0026f()}).observe(document.documentElement,{childList:!0,subtree:!0}),window.addEventListener(\"resize\",f),\"loading\"===document.readyState\u0026\u0026document.addEventListener(\"DOMContentLoaded\",e),e()})(measure);\n  (function(a){let b=window.location.hash.slice(1);if(!b)return;function c(){return\"smooth\"===getComputedStyle(document.documentElement).scrollBehavior}function d(c){let d=document.getElementById(b);return!!d\u0026\u0026(a(),d.scrollIntoView(c?{behavior:c}:void 0),!0)}if(\"complete\"===document.readyState)return void d();let e=new MutationObserver(()=\u003e{!c()\u0026\u0026d(\"instant\")\u0026\u0026f()});function f(){e.disconnect(),window.removeEventListener(\"load\",g)}function g(){let a=c();f(),a\u0026\u0026requestAnimationFrame(()=\u003e{d(),function(){let a=[\"wheel\",\"touchstart\",\"keydown\",\"pointerdown\"],c=0,e=window.scrollY,f=setInterval(()=\u003e{c+=1;let a=document.getElementById(b);if(!a||c\u003e=6)return g();let f=Math.abs(window.scrollY-e)\u003e1;if(e=window.scrollY,f)return;let h=parseFloat(getComputedStyle(a).scrollMarginTop)||0;Math.abs(a.getBoundingClientRect().top-h)\u003e4\u0026\u0026d()},350);function g(){clearInterval(f),a.forEach(a=\u003ewindow.removeEventListener(a,g))}a.forEach(a=\u003ewindow.addEventListener(a,g,{passive:!0}))}()})}window.addEventListener(\"load\",g),e.observe(document.documentElement,{childList:!0,subtree:!0}),!c()\u0026\u0026d(\"instant\")\u0026\u0026f()})(measure);\n})();"])</script><script>self.__next_f.push([1,"2c:[\"$\",\"$L2f\",null,{\"children\":[\"$\",\"$L30\",null,{\"children\":[\"$\",\"$L31\",null,{\"children\":[\"$\",\"$L32\",null,{\"pageListDataMap\":{},\"children\":[\"$\",\"$L33\",null,{\"disabled\":\"$undefined\",\"children\":[\"$\",\"$L34\",null,{\"children\":[\"$\",\"$L35\",null,{\"children\":[[\"$\",\"$L12\",null,{\"fonts\":\"$17:2:props:children:1:props:children:6:props:children:props:children:props:children:props:value:docsConfig:fonts\",\"theme\":\"mint\",\"subdomain\":\"openrouter-d02e98a0\"}],[[\"$\",\"$L11\",null,{\"docsConfig\":\"$17:2:props:children:1:props:children:6:props:children:props:children:props:children:props:value:docsConfig\"}],[[\"$\",\"link\",null,{\"rel\":\"preload\",\"href\":\"https://d4tuoctqmanu0.cloudfront.net/katex.min.css\",\"as\":\"style\"}],[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"children\":\"\\n          (function() {\\n            function loadKatex() {\\n              const link = document.querySelector('link[href=\\\"https://d4tuoctqmanu0.cloudfront.net/katex.min.css\\\"]');\\n              if (link) link.rel = 'stylesheet';\\n            }\\n            if (document.readyState === 'loading') {\\n              document.addEventListener('DOMContentLoaded', loadKatex);\\n            } else {\\n              loadKatex();\\n            }\\n          })();\\n        \"}]],[\"$\",\"$L13\",null,{\"theme\":\"mint\"}],[\"$\",\"$L36\",null,{\"fonts\":\"$17:2:props:children:1:props:children:6:props:children:props:children:props:children:props:value:docsConfig:fonts\",\"children\":[\"$\",\"$L37\",null,{\"bannersByLocale\":{},\"subdomain\":\"openrouter-d02e98a0\",\"children\":[[\"$\",\"$L38\",null,{\"theme\":\"mint\"}],[\"$\",\"$L27\",null,{\"strategy\":\"beforeInteractive\",\"id\":\"_mintlify-scroll-margin-script\",\"dangerouslySetInnerHTML\":{\"__html\":\"$39\"},\"suppressHydrationWarning\":true}],\"$L3a\"]}]}]]]}]}]}]}]}]}]}]\n"])</script><script>self.__next_f.push([1,"40:T71e,"])</script><script>self.__next_f.push([1,"{\"@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/faq#webpage\",\"url\":\"https://openrouter.ai/docs/faq\",\"name\":\"Frequently Asked Questions\",\"description\":\"Common questions about OpenRouter\",\"dateModified\":\"2026-08-10T18:01:31.180Z\",\"isPartOf\":{\"@id\":\"https://openrouter.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://openrouter.ai/docs/faq#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://openrouter.ai/docs/faq#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Overview\",\"item\":\"https://openrouter.ai/docs/quickstart\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frequently Asked Questions\",\"item\":\"https://openrouter.ai/docs/faq\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://openrouter.ai/docs/faq#article\",\"headline\":\"Frequently Asked Questions\",\"name\":\"Frequently Asked Questions\",\"description\":\"Common questions about OpenRouter\",\"url\":\"https://openrouter.ai/docs/faq\",\"mainEntityOfPage\":{\"@id\":\"https://openrouter.ai/docs/faq#webpage\"},\"image\":\"https://openrouter.ai/dynamic-og?pathname=faq\u0026title=FAQ\u0026description=Common%20questions%20about%20OpenRouter\",\"dateModified\":\"2026-08-10T18:01:31.180Z\",\"publisher\":{\"@id\":\"https://openrouter.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://openrouter.ai/docs#website\"}}]}"])</script><script>self.__next_f.push([1,"2e:[\"$\",\"$L3b\",null,{\"theme\":\"mint\",\"pageMetadata\":{\"title\":\"Frequently Asked Questions\",\"description\":\"Common questions about OpenRouter\",\"slug\":\"faq\",\"seoTitle\":\"OpenRouter FAQ | Developer Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter FAQ\",\"og:description\":\"Find answers to commonly asked questions about OpenRouter's unified API, model access, pricing, and integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=faq\u0026title=FAQ\u0026description=Common%20questions%20about%20OpenRouter\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"question\",\"sidebarTitle\":\"FAQ\",\"href\":\"/faq\"},\"children\":[\"$\",\"$L3c\",null,{\"value\":{\"apiReferenceData\":{},\"graphqlReferenceData\":\"$undefined\"},\"children\":[\"$\",\"$L3d\",null,{\"value\":{\"pageMetadata\":\"$2e:props:pageMetadata\",\"lastModified\":\"2026-08-10T18:01:31.180Z\",\"gitLastModified\":\"$undefined\",\"originalFileLocation\":\"faq.mdx\",\"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: \\\"Common questions about OpenRouter\\\"\\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\":{}},\"mdxExtracts\":{\"tableOfContents\":[{\"title\":\"Getting started\",\"slug\":\"getting-started\",\"depth\":2,\"children\":[]},{\"title\":\"Pricing and fees\",\"slug\":\"pricing-and-fees\",\"depth\":2,\"children\":[]},{\"title\":\"Models and providers\",\"slug\":\"models-and-providers\",\"depth\":2,\"children\":[]},{\"title\":\"API technical specifications\",\"slug\":\"api-technical-specifications\",\"depth\":2,\"children\":[]},{\"title\":\"Privacy and data logging\",\"slug\":\"privacy-and-data-logging\",\"depth\":2,\"children\":[]},{\"title\":\"Credit and billing systems\",\"slug\":\"credit-and-billing-systems\",\"depth\":2,\"children\":[]},{\"title\":\"Account management\",\"slug\":\"account-management\",\"depth\":2,\"children\":[]}],\"codeExamples\":{}},\"pageType\":\"$undefined\",\"panelMdxSource\":\"$undefined\",\"panelMdxSourceWithNoJs\":\"$undefined\",\"contextualStarterQuestions\":\"$undefined\",\"relatedPages\":\"$undefined\"},\"children\":[\"$\",\"$L3e\",null,{\"pageMetadata\":\"$2e:props:pageMetadata\",\"mdxExtracts\":\"$2e:props:children:props:children:props:value:mdxExtracts\",\"openApiReferenceData\":\"$undefined\",\"children\":[\"$\",\"$L3f\",null,{\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$40\"}}],\"$L41\",\"$L42\",\"$L43\",\"$L44\",\"$L45\"]}]}]}]}]}]\n"])</script><script>self.__next_f.push([1,"46:I[540345,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"ConsentProvider\"]\n"])</script><script>self.__next_f.push([1,"47:I[529058,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"LocalStorageAndAnalyticsProviders\"]\n"])</script><script>self.__next_f.push([1,"48:I[958547,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"4a:I[228341,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/68ad056007b94e04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cb00d03b4d1e9ae2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f48a8fa65184b0c7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0dd7d15c30c41f1b.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/ca83a905f88dbab7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/555577647291460f.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/2dd53f5a4cfe6dd5.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"PageModeUpdater\"]\n"])</script><script>self.__next_f.push([1,"4b:I[575126,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/68ad056007b94e04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cb00d03b4d1e9ae2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f48a8fa65184b0c7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0dd7d15c30c41f1b.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/ca83a905f88dbab7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/555577647291460f.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/2dd53f5a4cfe6dd5.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"Background\"]\n"])</script><script>self.__next_f.push([1,"4d:I[36098,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/68ad056007b94e04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cb00d03b4d1e9ae2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f48a8fa65184b0c7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0dd7d15c30c41f1b.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/ca83a905f88dbab7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/555577647291460f.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/2dd53f5a4cfe6dd5.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"CustomJsFiles\"]\n"])</script><script>self.__next_f.push([1,"4f:I[530359,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/68ad056007b94e04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cb00d03b4d1e9ae2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f48a8fa65184b0c7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0dd7d15c30c41f1b.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/ca83a905f88dbab7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/555577647291460f.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/2dd53f5a4cfe6dd5.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"MDXContentController\"]\n"])</script><script>self.__next_f.push([1,"50:I[448287,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/68ad056007b94e04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0eb894a8519f24ea.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cb00d03b4d1e9ae2.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f48a8fa65184b0c7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0dd7d15c30c41f1b.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/ca83a905f88dbab7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/555577647291460f.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/2dd53f5a4cfe6dd5.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"3a:[\"$\",\"$L46\",null,{\"privacy\":\"$undefined\",\"children\":[\"$\",\"$L47\",null,{\"subdomain\":\"openrouter-d02e98a0\",\"isAtlas\":false,\"children\":[\"$\",\"$L48\",null,{\"toggles\":[{\"name\":\"tiered-billing\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"editor-profile-v2\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"dashboard-editor-theseus\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"self-serve-sso\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"force-workflows-vercel-harness\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"kill-isr\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"autumn-billing-mar-2026\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"cloudflare-cache-invalidation\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"workflows-vercel-harness\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"gitlab-workflows\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"autopilot-dashboard\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"live-preview-client\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"direct-chroma-search\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"mintlify-credits-autumn-apr-2026\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"agent_harness_kb\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"agent-page\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"dashboard-auth-revamp\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"client-credentials-grant\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"agent_harness_slack_agent\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"workflows-v2\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"assistant-integrations\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"dashboard-comments\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"workflows-in-onboarding\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"viewer-role\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"agent-panel\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"autumn-enforcement-mar-2026\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"autumn-webhooks-mar-2026\",\"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\":\"workflows-onboarding\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"editor-v7-file-tree\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"atlas-vercel-harness\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"onboarding-vercel-harness\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"refresh-token-auth-mcp\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"use-run-task-generate-docs-phase-queue\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"per-tenant-auth\",\"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\":\"per-tenant-auth-mcp\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"async-editor-publish\",\"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\":\"pause-preview-search-indexing\",\"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\":\"composio-integrations\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"zendesk-integration\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"process-on-consumer\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"workflows-run-detail-page\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"credits-v2-jul-2026\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"call-agent-tool\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"pylon-integration\",\"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\":\"queue-git-webhooks-produce\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"slack-agent-chat-sdk\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"org-credit-pool-jul-2026\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"preview-search-indexing\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"pause-universal-search-reconcile\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"editor-version-history\",\"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\":\"editor-branches-v2-autocommit\",\"enabled\":true,\"variant\":{\"name\":\"disabled\",\"enabled\":false,\"feature_enabled\":true},\"impressionData\":false},{\"name\":\"editor-branches-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}],\"children\":\"$L49\"}]}]}]\n"])</script><script>self.__next_f.push([1,"41:[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"document.documentElement.setAttribute('data-page-mode', \\\"none\\\");\"}}],[\"$\",\"$L4a\",null,{\"pageMetadata\":\"$2e:props:pageMetadata\"}]]\n42:[\"$\",\"$L4b\",null,{\"pageMetadata\":\"$2e:props:pageMetadata\"}]\n4c:T1c7d,"])</script><script>self.__next_f.push([1,"/*\n * OpenRouter Docs — Bauhaus theme overrides\n *\n * Custom CSS for Mintlify to align with the bauhaus design system.\n * Uses Mintlify's exposed ID/element selectors for targeted styling.\n *\n * Brand palette:\n *   Ink #03080A   Cloud #FCFCFE   Grape #7624F4\n *   Volt #C8FF00  Coral #FF6849   Royal #035ADE\n */\n\n/* ── Code font: Geist Mono ── */\n@import url('https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500;600\u0026display=swap');\n\n/*\n * Inverse semantic pair mirrors packages/frontend/components/v2/theme.css.\n * Mintlify is a separate app, so its generated tooltip DOM uses the same\n * light Ink/Cloud and dark Cloud/Ink values through RGB channel variables.\n */\n:root {\n  --inverse: 3 8 10;\n  --inverse-foreground: 252 252 254;\n  --tooltip-background: var(--inverse);\n  --tooltip-foreground: var(--inverse-foreground);\n}\n\ncode,\npre,\npre code,\n.code-block code,\n[class*=\"code\"] code {\n  font-family: 'Geist Mono', ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;\n}\n\n/* ── Text selection: accent tint per DESIGN.md ── */\n::selection {\n  background: rgb(118 36 244 / 0.14);\n}\n\n.dark ::selection,\nhtml.dark ::selection {\n  background: rgb(200 255 0 / 0.14);\n  color: inherit;\n}\n\n/* ── Dark-mode accent swap: Volt (#C8FF00 = rgb(200 255 0)) per DESIGN.md ──\n * Mintlify + Tailwind use space-separated RGB: rgb(var(--primary-light) / alpha).\n * Override accent in dark mode from Grape to Volt. */\n.dark,\n[data-theme=\"dark\"],\nhtml.dark {\n  --primary: 200 255 0;\n  --primary-light: 200 255 0;\n  --primary-dark: 200 255 0;\n  --light-primary: 200 255 0;\n  --primary-foreground: 3 8 10;\n  --inverse: 252 252 254;\n  --inverse-foreground: 3 8 10;\n\n  /* ── Dark-mode border: Cloud at 14% per DESIGN.md ── */\n  --default-border-color: rgb(252 252 254 / 0.14);\n}\n\n/* ── Border radius: bauhaus 4/6/8px scale ── */\n#navbar {\n  border-radius: 0;\n}\n\n/* Sidebar active item */\n#sidebar a[aria-current=\"page\"],\nnav[aria-label=\"Pages\"] a[aria-current=\"page\"] {\n  border-radius: 8px;\n}\n\n/* Cards and code blocks */\n[data-component-part=\"code-block-root\"] {\n  border-radius: 8px;\n}\n\n/* ── Link styling per DESIGN.md ──\n * underline at 40% opacity of current color, full on hover, offset 2px */\na:not([class]) {\n  text-decoration-thickness: 1px;\n  text-underline-offset: 2px;\n  text-decoration-color: rgb(0 0 0 / 0.4);\n}\n\na:not([class]):hover {\n  text-decoration-color: currentColor;\n}\n\n.dark a:not([class]),\nhtml.dark a:not([class]) {\n  text-decoration-color: rgb(255 255 255 / 0.4);\n}\n\n.dark a:not([class]):hover,\nhtml.dark a:not([class]):hover {\n  text-decoration-color: currentColor;\n}\n\n/* ── Sidebar badges: outline style ── */\n.nav-tag-pill-text {\n  background: transparent !important;\n  color: rgb(0 0 0 / 0.5) !important;\n  border: 1px solid rgb(0 0 0 / 0.2) !important;\n}\n\n.dark .nav-tag-pill-text,\nhtml.dark .nav-tag-pill-text {\n  background: transparent !important;\n  color: rgb(252 252 254 / 0.5) !important;\n  border: 1px solid rgb(252 252 254 / 0.2) !important;\n}\n\n/* Match the home navbar logo height (h-6 / 1.5rem). */\n.nav-logo {\n  height: 1.5rem;\n}\n\n/* ── Sidebar expand chevrons: raise dark-mode contrast ──\n * Collapsible group toggles render a caret whose default dark tone\n * (gray-600 on Ink) is nearly invisible, so it isn't clear which items\n * have subsections. Derive the caret from Cloud via the DESIGN.md opacity\n * scale: muted-foreground (Cloud `a0`) at rest, full Cloud (foreground) on\n * hover — no custom hex outside the brand palette. */\n.dark nav[aria-label=\"Pages\"] button[aria-expanded] svg.transition-transform,\nhtml.dark nav[aria-label=\"Pages\"] button[aria-expanded] svg.transition-transform {\n  color: rgb(252 252 254 / 0.627);\n}\n\n.dark nav[aria-label=\"Pages\"] button[aria-expanded]:hover svg.transition-transform,\nhtml.dark nav[aria-label=\"Pages\"] button[aria-expanded]:hover svg.transition-transform {\n  color: rgb(252 252 254);\n}\n\n/* ── Sidebar expand chevrons: enlarge for legibility ──\n * The default caret (w-2 ≈ 8px) is easy to miss; bump its footprint so it\n * reads clearly as an expandable affordance. */\nnav[aria-label=\"Pages\"] button[aria-expanded] svg.transition-transform {\n  width: 0.625rem;\n  height: 0.625rem;\n}\n\n/* ── Tooltips: inverse surface pairing ──\n * Mintlify has a foreground variable for Radix tooltips but no matching\n * background variable, so both values are mirrored here from the inverse pair.\n * Radix opens tooltips as \"delayed-open\" on a normal hover but \"instant-open\"\n * when moving between triggers within its skip-delay window; cover both. */\n[data-radix-popper-content-wrapper]\n  \u003e div[data-state=\"delayed-open\"],\n[data-radix-popper-content-wrapper]\n  \u003e div[data-state=\"instant-open\"] {\n  background-color: rgb(var(--tooltip-background)) !important;\n  color: rgb(var(--tooltip-foreground)) !important;\n}\n\n/* ── Callout + code block alignment ──\n * A code block that is the only child of a callout body carries Mintlify's default\n * prose margins (mt-5 mb-8), which push the snippet down so it no longer lines\n * up with the top-aligned callout icon. Drop those margins so the snippet's\n * top edge aligns with the icon. */\n.callout [data-component-part=\"callout-content\"] \u003e .code-block:first-child {\n  margin-top: 0;\n}\n\n.callout [data-component-part=\"callout-content\"] \u003e .code-block:last-child {\n  margin-bottom: 0;\n}\n\n/* ── Floating code-block buttons: opaque background ──\n * Mintlify only backs the floating buttons (report / copy / ask) with\n * gray-100/gray-800 when the code block has no fade overlay\n * (group-[:not(:has([data-fade-overlay]))]). Collapsible/expandable blocks\n * always carry a fade overlay, so the buttons stay transparent and the code\n * text bleeds through behind them. Apply the same background unconditionally\n * so the buttons are legible on every code block. */\n[data-floating-buttons] button {\n  background-color: rgb(241 239 245);\n}\n\n.dark [data-floating-buttons] button,\nhtml.dark [data-floating-buttons] button {\n  background-color: rgb(40 38 44);\n}\n\n/* ── Changelog: Update tags as outline pills (matches sidebar badges) ── */\n[data-component-part=\"update-tag\"] {\n  border: 1px solid rgb(0 0 0 / 0.2);\n  border-radius: 9999px;\n  padding: 0.125rem 0.625rem;\n  font-size: 0.75rem;\n  line-height: 1.25rem;\n  color: rgb(0 0 0 / 0.6);\n}\n\n.dark [data-component-part=\"update-tag\"],\nhtml.dark [data-component-part=\"update-tag\"] {\n  border-color: rgb(252 252 254 / 0.2);\n  color: rgb(252 252 254 / 0.6);\n}\n\n/* ── Changelog: selected filter pill readability ──\n * Mintlify renders the active filter as bg-primary + text-white/90. In dark\n * mode our primary is Volt (#C8FF00), so switch the text to Ink per DESIGN.md. */\n.dark #changelog-filters-content button.bg-primary,\nhtml.dark #changelog-filters-content button.bg-primary {\n  color: rgb(3 8 10 / 0.9) !important;\n}\n\n/* ── Changelog: separate inline status badges from bullet text ── */\n.changelog-status-badge {\n  margin-left: 0.5rem;\n}\n\n.changelog-status-badge[data-color=\"gray\"] {\n  border: 1px solid rgb(3 8 10 / 0.3) !important;\n}\n\n.dark .changelog-status-badge[data-color=\"gray\"],\nhtml.dark .changelog-status-badge[data-color=\"gray\"] {\n  border-color: rgb(252 252 254 / 0.4) !important;\n}\n"])</script><script>self.__next_f.push([1,"43:[[\"$\",\"style\",\"0\",{\"data-custom-css-index\":0,\"data-custom-css-path\":\"style.css\",\"dangerouslySetInnerHTML\":{\"__html\":\"$4c\"}}]]\n4e:T5b9,"])</script><script>self.__next_f.push([1,"/*\n * Deep links (e.g. #response-data-pricing-overrides) can land behind the\n * sticky navbar: the browser scrolls to the anchor before hydration and\n * font loading finish, and the subsequent layout shift moves the target\n * up underneath the header. Re-align the anchor once the page has fully\n * settled, unless the user has already scrolled on their own.\n */\nlet didUserScrollAway = false;\n\nfunction markUserScrollAway() {\n  didUserScrollAway = true;\n}\n\nfunction anchorIdFromHash() {\n  const rawId = window.location.hash.slice(1);\n  try {\n    return decodeURIComponent(rawId);\n  } catch {\n    return rawId;\n  }\n}\n\nfunction realignAnchor() {\n  if (didUserScrollAway) {\n    return;\n  }\n  const target = document.querySelector(`[id=\"${CSS.escape(anchorIdFromHash())}\"]`);\n  // scrollIntoView respects the target's CSS scroll-margin-top,\n  // which Mintlify sets to clear the sticky navbar.\n  target?.scrollIntoView();\n}\n\nasync function settleAnchorScroll() {\n  await (document.fonts?.ready ?? Promise.resolve());\n  setTimeout(realignAnchor, 150);\n}\n\nfunction initAnchorScrollFix() {\n  if (!window.location.hash) {\n    return;\n  }\n  for (const event of ['wheel', 'touchmove', 'keydown']) {\n    window.addEventListener(event, markUserScrollAway, { passive: true, once: true });\n  }\n  if (document.readyState === 'complete') {\n    settleAnchorScroll();\n  } else {\n    window.addEventListener('load', settleAnchorScroll, { once: true });\n  }\n}\n\ninitAnchorScrollFix();\n"])</script><script>self.__next_f.push([1,"44:[\"$\",\"$L4d\",null,{\"customJsDisabled\":false,\"jsFiles\":[{\"_id\":\"6a58359481eda2c0540fae86\",\"filePath\":\"anchor-scroll-fix.js\",\"subdomain\":\"openrouter-d02e98a0\",\"__v\":0,\"content\":\"$4e\"}]}]\n51:T627a,"])</script><script>self.__next_f.push([1,"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const getTotalFeeString=(type,value)=\u003e{if(type===`stripe`)return`5.5% ($0.80 minimum)`;if(type===`coinbase`)return`5%`};const FREE_MODEL_NO_CREDITS_RPD=50;const FREE_MODEL_HAS_CREDITS_RPD=1e3;const FREE_MODEL_CREDITS_THRESHOLD=10;const BYOK_PAYG_MONTHLY_LIST_PRICE_THRESHOLD_USD=`$25,000`;const BYOK_FEE_PERCENTAGE=`5`;const BYOK_ENTERPRISE_MONTHLY_LIST_PRICE_THRESHOLD_USD=`$200,000`;function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Heading}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`getting-started`,children:`Getting started`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Why should I use OpenRouter?`,id:`why-should-i-use-openrouter`,children:[_jsx(_components.p,{children:`OpenRouter provides a unified API to access all the major LLM models on the\nmarket. It also allows users to aggregate their billing in one place and\nkeep track of all of their usage using our analytics.`}),_jsx(_components.p,{children:`OpenRouter passes through the pricing of the underlying providers, while pooling their uptime,\nso you get the same pricing you’d get from the provider directly, with a\nunified API and fallbacks so that you get much better uptime.`}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/quickstart`,children:`Learn more in our Quickstart guide`}),`.`]})]}),_jsxs(Accordion,{title:`How do I get started with OpenRouter?`,id:`how-do-i-get-started-with-openrouter`,children:[_jsxs(_components.p,{children:[`To get started, create an account and add credits on the\n`,_jsx(_components.a,{href:`https://openrouter.ai/settings/credits`,children:`Credits`}),` page. Credits are simply\ndeposits on OpenRouter that you use for LLM inference.\nWhen you use the API or chat interface, we deduct the request cost from your\ncredits. Each model and provider has a different price per million tokens.`]}),_jsxs(_components.p,{children:[`Once you have credits you can either use the chat room, or create API keys\nand start using the API. You can read our `,_jsx(_components.a,{href:`/quickstart`,children:`quickstart`}),`\nor `,_jsx(_components.a,{href:`/cookbook/get-started/enterprise-quickstart`,children:`enterprise`}),` guide for code samples and more.`]})]}),_jsxs(Accordion,{title:`How do I get support?`,id:`how-do-i-get-support`,children:[_jsxs(_components.p,{children:[`The best way to get technical support is to join our\n`,_jsx(_components.a,{href:`https://discord.gg/openrouter`,children:`Discord`}),` and ask the community in the #help forum.`]}),_jsxs(_components.p,{children:[`For billing and account management questions, please contact us at `,_jsx(_components.a,{href:`mailto:support@openrouter.ai`,children:`support@openrouter.ai`}),`.`]})]}),_jsxs(Accordion,{title:`How do I get billed for my usage on OpenRouter?`,id:`how-do-i-get-billed-for-my-usage-on-openrouter`,children:[_jsx(_components.p,{children:`For each model we have the pricing displayed per million tokens. There is\nusually a different price for prompt and completion tokens. There are also\nmodels that charge per request, for images and for reasoning tokens. All of\nthese details will be visible on the models page.`}),_jsxs(_components.p,{children:[`When you make a request to OpenRouter, we receive the total number of tokens processed\nby the provider. We then calculate the corresponding cost and deduct it from your credits.\nYou can review your complete usage history in the `,_jsx(_components.a,{href:`https://openrouter.ai/activity`,children:`Activity tab`}),`.`]}),_jsxs(_components.p,{children:[`We pass through the pricing of the underlying providers; there is no markup\non inference pricing (however we do charge a `,_jsx(_components.a,{href:`/faq#pricing-and-fees`,children:`fee`}),` when purchasing credits).`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`pricing-and-fees`,children:`Pricing and fees`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`What are the fees for using OpenRouter?`,id:`what-are-the-fees-for-using-openrouter`,children:[_jsxs(_components.p,{children:[`OpenRouter charges a `,getTotalFeeString(`stripe`,null),` fee when you purchase credits. We pass through\nthe pricing of the underlying model providers without any markup, so you pay\nthe same rate as you would directly with the provider.`]}),_jsxs(_components.p,{children:[`Crypto payments are charged a fee of `,getTotalFeeString(`coinbase`,null),`.`]})]}),_jsxs(Accordion,{title:`Is there a fee for using my own provider keys (BYOK)?`,id:`is-there-a-fee-for-using-my-own-provider-keys-byok`,children:[_jsxs(_components.p,{children:[`Yes. BYOK has a plan-dependent free allowance measured by list-price\ninference cost, not request count. Pay-as-you-go includes\n`,BYOK_PAYG_MONTHLY_LIST_PRICE_THRESHOLD_USD,` per month with no BYOK fee,\nwhile Enterprise includes `,BYOK_ENTERPRISE_MONTHLY_LIST_PRICE_THRESHOLD_USD,`.\nUsage above the allowance has a fee of `,BYOK_FEE_PERCENTAGE,`% of what the\nsame model and provider would normally cost on OpenRouter. This fee is\ndeducted from your OpenRouter credits. This allows you to manage your rate\nlimits and costs directly with the provider while still using\nOpenRouter’s unified interface. See the\n`,_jsx(_components.a,{href:`https://openrouter.ai/pricing`,children:`pricing page`}),` for details.`]}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/guides/overview/auth/byok`,children:`Learn more about BYOK`}),`.`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`models-and-providers`,children:`Models and providers`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`What LLM models does OpenRouter support?`,id:`what-llm-models-does-openrouter-support`,children:_jsxs(_components.p,{children:[`OpenRouter provides access to a wide variety of LLM models, including frontier models from major AI labs.\nFor a complete list of models you can visit the `,_jsx(_components.a,{href:`https://openrouter.ai/models`,children:`models browser`}),` or fetch the list through the `,_jsx(_components.a,{href:`https://openrouter.ai/api/v1/models`,children:`models api`}),`.`]})}),_jsx(Accordion,{title:`How frequently are new models added?`,id:`how-frequently-are-new-models-added`,children:_jsxs(_components.p,{children:[`We work on adding models as quickly as we can. We often have partnerships with\nthe labs releasing models and can release models as soon as they are\navailable. If there is a model missing that you’d like OpenRouter to support, feel free to message us on\n`,_jsx(_components.a,{href:`https://discord.gg/openrouter`,children:`Discord`}),`.`]})}),_jsxs(Accordion,{title:`What are model variants?`,id:`what-are-model-variants`,children:[_jsx(_components.p,{children:`Variants are suffixes that can be added to the model slug to change its behavior.`}),_jsxs(_components.p,{children:[`Static variants can only be used with specific models and these are listed in our `,_jsx(_components.a,{href:`https://openrouter.ai/api/v1/models`,children:`models api`}),`.`]}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`:free`}),` - The model is always provided for free and has low rate limits. `,_jsx(_components.a,{href:`/guides/routing/model-variants/free`,children:`Learn more`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`:extended`}),` - The model has longer than usual context length. `,_jsx(_components.a,{href:`/guides/routing/model-variants/extended`,children:`Learn more`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`:thinking`}),` - The model supports reasoning by default. `,_jsx(_components.a,{href:`/guides/routing/model-variants/thinking`,children:`Learn more`}),`.`]}),`\n`]}),_jsx(_components.p,{children:`Dynamic variants can be used on all models and they change the behavior of how the request is routed or used.`}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`:online`}),` (deprecated) - All requests will run a query to extract web results that are attached to the prompt. Use the `,_jsxs(_components.a,{href:`/guides/features/server-tools/web-search`,children:[_jsx(_components.code,{children:`openrouter:web_search`}),` server tool`]}),` instead. `,_jsx(_components.a,{href:`/guides/routing/model-variants/online`,children:`Learn more`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`:nitro`}),` - Providers will be sorted by throughput rather than the default sort, optimizing for faster response times. `,_jsx(_components.a,{href:`/guides/routing/provider-selection#nitro-shortcut`,children:`Learn more`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`:floor`}),` - Providers will be sorted by price rather than the default sort, prioritizing the most cost-effective options. `,_jsx(_components.a,{href:`/guides/routing/provider-selection#floor-price-shortcut`,children:`Learn more`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`:exacto`}),` - Providers will be sorted using quality-first signals tuned for tool-calling reliability. `,_jsx(_components.a,{href:`/guides/routing/model-variants/exacto`,children:`Learn more`}),`.`]}),`\n`]})]}),_jsx(Accordion,{title:`I am an inference provider, how can I get listed on OpenRouter?`,id:`i-am-an-inference-provider-how-can-i-get-listed-on-openrouter`,children:_jsxs(_components.p,{children:[`You can read our requirements at the `,_jsx(_components.a,{href:`/guides/community/for-providers`,children:`Providers\npage`}),`. If you would like to contact us, the best\nplace to reach us is over email.`]})}),_jsx(Accordion,{title:`What is the expected latency/response time for different models?`,id:`what-is-the-expected-latency-response-time-for-different-models`,children:_jsxs(_components.p,{children:[`For each model on OpenRouter we show the latency (time to first token) and the token\nthroughput for all providers. You can use this to estimate how long requests\nwill take. If you would like to optimize for throughput you can use the\n`,_jsx(_components.code,{children:`:nitro`}),` variant to route to the fastest provider.`]})}),_jsx(Accordion,{title:`How does model fallback work if a provider is unavailable?`,id:`how-does-model-fallback-work-if-a-provider-is-unavailable`,children:_jsxs(_components.p,{children:[`If a provider returns an error OpenRouter will automatically fall back to the\nnext provider. This happens transparently to the user and allows production\napps to be much more resilient. OpenRouter has a lot of options to configure\nthe provider routing behavior. The full documentation can be found `,_jsx(_components.a,{href:`/guides/routing/provider-selection`,children:`here`}),`.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`api-technical-specifications`,children:`API technical specifications`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`What authentication methods are supported?`,id:`what-authentication-methods-are-supported`,children:[_jsx(_components.p,{children:`OpenRouter uses three authentication methods:`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Cookie-based authentication for the web interface and chatroom`}),`\n`,_jsx(_components.li,{children:`API keys (passed as Bearer tokens) for accessing the completions API and other core endpoints`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/guides/overview/auth/management-api-keys`,children:`Management API keys`}),` for programmatically managing API keys through the key management endpoints`]}),`\n`]}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/api_reference/authentication`,children:`Learn more about API authentication`}),`.`]})]}),_jsxs(Accordion,{title:`How are rate limits calculated?`,id:`how-are-rate-limits-calculated`,children:[_jsxs(_components.p,{children:[`For free models, rate limits are determined by the credits that you have purchased.\nIf you have purchased at least `,FREE_MODEL_CREDITS_THRESHOLD,` credits, your free model rate limit will be `,FREE_MODEL_HAS_CREDITS_RPD,` requests per day.\nOtherwise, you will be rate limited to `,FREE_MODEL_NO_CREDITS_RPD,` free model API requests per day.`]}),_jsxs(_components.p,{children:[`You can learn more about how rate limits work for paid accounts in our `,_jsx(_components.a,{href:`/api_reference/limits`,children:`rate limits documentation`}),`.`]})]}),_jsx(Accordion,{title:`What API endpoints are available?`,id:`what-api-endpoints-are-available`,children:_jsxs(_components.p,{children:[`OpenRouter implements the OpenAI API specification for /completions and\n/chat/completions endpoints, allowing you to use any model with the same\nrequest/response format. Additional endpoints like /api/v1/models are also\navailable. See our `,_jsx(_components.a,{href:`/api_reference/overview`,children:`API documentation`}),` for\ndetailed specifications.`]})}),_jsx(Accordion,{title:`What are the supported formats?`,id:`what-are-the-supported-formats`,children:_jsxs(_components.p,{children:[`The API supports text, images, and PDFs.\n`,_jsx(_components.a,{href:`/guides/overview/multimodal/image-understanding`,children:`Images`}),` can be passed as\nURLs or base64 encoded images. `,_jsx(_components.a,{href:`/guides/overview/multimodal/pdfs`,children:`PDFs`}),` can also be sent as URLs or base64 encoded data, and work with any model on OpenRouter.`]})}),_jsxs(Accordion,{title:`How does streaming work?`,id:`how-does-streaming-work`,children:[_jsxs(_components.p,{children:[`Streaming uses server-sent events (SSE) for real-time token delivery. Set\n`,_jsx(_components.code,{children:`stream: true`}),` in your request to enable streaming responses.`]}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/api_reference/streaming`,children:`Learn more about streaming`}),`.`]})]}),_jsxs(Accordion,{title:`What SDK support is available?`,id:`what-sdk-support-is-available`,children:[_jsxs(_components.p,{children:[`OpenRouter is a drop-in replacement for OpenAI. Therefore, any SDKs that\nsupport OpenAI by default also support OpenRouter. Check out our\n`,_jsx(_components.a,{href:`/guides/community/openai-sdk`,children:`OpenAI SDK docs`}),` for more details.`]}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/guides/community/frameworks-and-integrations-overview`,children:`See all supported frameworks and integrations`}),`.`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`privacy-and-data-logging`,children:`Privacy and data logging`}),`\n`,_jsxs(_components.p,{children:[`Please see our `,_jsx(_components.a,{href:`https://openrouter.ai/terms`,children:`Terms of Service`}),` and `,_jsx(_components.a,{href:`https://openrouter.ai/privacy`,children:`Privacy Policy`}),`.`]}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`What data is logged during API use?`,id:`what-data-is-logged-during-api-use`,children:[_jsx(_components.p,{children:`We log basic request metadata (timestamps, model used, token counts). Prompt\nand completion are not logged by default. We do zero logging of your prompts/completions,\neven if an error occurs, unless you opt-in to logging them.`}),_jsxs(_components.p,{children:[`We have an opt-in `,_jsx(_components.a,{href:`https://openrouter.ai/settings/preferences`,children:`setting`}),` that\nlets users opt-in to log their prompts and completions in exchange for a 1%\ndiscount on usage costs.`]}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/guides/privacy/data-collection`,children:`Learn more about data collection`}),`.`]})]}),_jsx(Accordion,{title:`What data is logged during Chatroom use?`,id:`what-data-is-logged-during-chatroom-use`,children:_jsx(_components.p,{children:`The same data privacy applies to the chatroom as the API. All conversations\nin the chatroom are stored locally on your device. Conversations will not sync across devices.\nIt is possible to export and import conversations using the settings menu in the chatroom.`})}),_jsxs(Accordion,{title:`What third-party sharing occurs?`,id:`what-third-party-sharing-occurs`,children:[_jsxs(_components.p,{children:[`OpenRouter is a proxy that sends your requests to the model provider for it to be completed.\nWe work with all providers to, when possible, ensure that prompts and completions are not logged or used for training.\nProviders that do log, or where we have been unable to confirm their policy, will not be routed to unless the model training\ntoggle is switched on in the `,_jsx(_components.a,{href:`https://openrouter.ai/settings/privacy`,children:`privacy settings`}),` tab.`]}),_jsxs(_components.p,{children:[`If you specify `,_jsx(_components.a,{href:`/guides/routing/provider-selection`,children:`provider routing`}),` in your request, but none of the providers\nmatch the level of privacy specified in your account settings, you will get an error and your request will not complete.`]}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/guides/privacy/provider-logging`,children:`Learn more about provider logging policies`}),`.`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`credit-and-billing-systems`,children:`Credit and billing systems`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`What purchase options exist?`,id:`what-purchase-options-exist`,children:_jsx(_components.p,{children:`OpenRouter uses a credit system where the base currency is US dollars. All\nof the pricing on our site and API is denoted in dollars. Users can top up\ntheir balance manually or set up auto top up so that the balance is\nreplenished when it gets below the set threshold.`})}),_jsx(Accordion,{title:`Do credits expire?`,id:`do-credits-expire`,children:_jsxs(_components.p,{children:[`Per our `,_jsx(_components.a,{href:`https://openrouter.ai/terms`,children:`terms`}),`, we reserve the right to expire\nunused credits after one year of purchase.`]})}),_jsxs(Accordion,{title:`My credits haven't showed up in my account`,id:`my-credits-havent-showed-up-in-my-account`,children:[_jsx(_components.p,{children:`If you paid using Stripe, sometimes there is an issue with the Stripe\nintegration and credits can get delayed in showing up on your account. Please allow up to one hour.\nIf your credits still have not appeared after an hour, check to confirm you have not been charged and\nthat you do not have a stripe receipt email. If you do not have a receipt email or have not been charged,\nyour card may have been declined. Please try again with a different card or payment method.`}),_jsxs(_components.p,{children:[`If you have been charged and still do not have credits, please reach out to us via email\nat `,_jsx(_components.a,{href:`mailto:support@openrouter.ai`,children:`support@openrouter.ai`}),` with details of the purchase.`]}),_jsxs(_components.p,{children:[`If you paid using crypto, please reach out to us via email at `,_jsx(_components.a,{href:`mailto:support@openrouter.ai`,children:`support@openrouter.ai`}),`\nand we will look into it.`]})]}),_jsx(Accordion,{title:`What's the refund policy?`,id:`whats-the-refund-policy`,children:_jsxs(_components.p,{children:[`Refunds for unused Credits may be requested within twenty-four (24) hours from the time the transaction was processed. If no refund request is received within twenty-four (24) hours following the purchase, any unused Credits become non-refundable. To request a refund within the eligible period, you can use the refund button on the `,_jsx(_components.a,{href:`https://openrouter.ai/settings/credits`,children:`Credits`}),` page. The unused credit amount will be refunded to your payment method; the platform fees are non-refundable. Note that cryptocurrency payments are never refundable.`]})}),_jsxs(Accordion,{title:`How to monitor credit usage?`,id:`how-to-monitor-credit-usage`,children:[_jsxs(_components.p,{children:[`The `,_jsx(_components.a,{href:`https://openrouter.ai/activity`,children:`Activity`}),` page allows users to view\ntheir historic usage and filter the usage by model, provider and api key.`]}),_jsxs(_components.p,{children:[`We also provide a `,_jsx(_components.a,{href:`/api/api-reference/credits/get-remaining-credits`,children:`credits api`}),` that has\nlive information about the balance and remaining credits for the account.`]})]}),_jsxs(Accordion,{title:`What free tier options exist?`,id:`what-free-tier-options-exist`,children:[_jsxs(_components.p,{children:[`All new users receive a small free allowance to test out OpenRouter.\nThere are many `,_jsx(_components.a,{href:`https://openrouter.ai/models?max_price=0`,children:`free models`}),` available\non OpenRouter. These models have low rate limits (`,FREE_MODEL_NO_CREDITS_RPD,` requests per day total)\nand are usually not suitable for production use. If you have purchased at least `,FREE_MODEL_CREDITS_THRESHOLD,` credits,\nthe free models will be limited to `,FREE_MODEL_HAS_CREDITS_RPD,` requests per day.`]}),_jsxs(_components.p,{children:[`You can also use the `,_jsx(_components.a,{href:`/cookbook/get-started/free-models-router-playground`,children:`Free Models Router`}),` (`,_jsx(_components.code,{children:`openrouter/free`}),`) to automatically select a free model for your requests.`]})]}),_jsx(Accordion,{title:`How do volume discounts work?`,id:`how-do-volume-discounts-work`,children:_jsx(_components.p,{children:`OpenRouter does not currently offer volume discounts, but you can reach out to us\nover email if you think you have an exceptional use case.`})}),_jsx(Accordion,{title:`What payment methods are accepted?`,id:`what-payment-methods-are-accepted`,children:_jsxs(_components.p,{children:[`We accept all major credit cards, AliPay and cryptocurrency payments in\nUSDC. We are working on integrating PayPal soon, if there are any payment\nmethods that you would like us to support please reach out on `,_jsx(_components.a,{href:`https://discord.gg/openrouter`,children:`Discord`}),`.`]})}),_jsx(Accordion,{title:`How does OpenRouter make money?`,id:`how-does-openrouter-make-money`,children:_jsxs(_components.p,{children:[`We charge a small `,_jsx(_components.a,{href:`/faq#pricing-and-fees`,children:`fee`}),` when purchasing credits. We never mark-up the pricing\nof the underlying providers, and you’ll always pay the same as the provider’s\nlisted price.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`account-management`,children:`Account management`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`How can I delete my account?`,id:`how-can-i-delete-my-account`,children:[_jsxs(_components.p,{children:[`Go to the `,_jsx(_components.a,{href:`https://openrouter.ai/settings/preferences`,children:`Settings`}),` page and click Manage Account.\nIn the modal that opens, select the Security tab. You’ll find an option there to delete your account.`]}),_jsx(_components.p,{children:`Note that unused credits will be lost and cannot be reclaimed if you delete and later recreate your account.`})]}),_jsx(Accordion,{title:`How does team access work?`,id:`how-does-team-access-work`,children:_jsxs(_components.p,{children:[`Organization management information can be found in our `,_jsx(_components.a,{href:`/cookbook/administration/organization-management`,children:`organization management documentation`}),`.`]})}),_jsx(Accordion,{title:`What analytics are available?`,id:`what-analytics-are-available`,children:_jsxs(_components.p,{children:[`Our `,_jsx(_components.a,{href:`https://openrouter.ai/activity`,children:`activity dashboard`}),` provides real-time\nusage metrics. If you would like any specific reports or metrics please\ncontact us.`]})}),_jsx(Accordion,{title:`How can I contact support?`,id:`how-can-i-contact-support`,children:_jsxs(_components.p,{children:[`For account and billing questions, please contact us at `,_jsx(_components.a,{href:`mailto:support@openrouter.ai`,children:`support@openrouter.ai`}),`.`]})}),_jsx(Accordion,{title:`How can I file a bug report or change request for OpenRouter?`,id:`how-can-i-file-a-bug-report-or-change-request-for-openrouter`,children:_jsxs(_components.p,{children:[`You can file bug reports or change requests by posting in our `,_jsx(_components.a,{href:`https://discord.gg/openrouter`,children:`Discord`}),`.`]})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{getTotalFeeString,FREE_MODEL_NO_CREDITS_RPD,FREE_MODEL_HAS_CREDITS_RPD,FREE_MODEL_CREDITS_THRESHOLD,BYOK_PAYG_MONTHLY_LIST_PRICE_THRESHOLD_USD,BYOK_FEE_PERCENTAGE,BYOK_ENTERPRISE_MONTHLY_LIST_PRICE_THRESHOLD_USD,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.\")}"])</script><script>self.__next_f.push([1,"52:T60e4,"])</script><script>self.__next_f.push([1,"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const getTotalFeeString=()=\u003enull;const FREE_MODEL_NO_CREDITS_RPD=undefined;const FREE_MODEL_HAS_CREDITS_RPD=undefined;const FREE_MODEL_CREDITS_THRESHOLD=undefined;const BYOK_PAYG_MONTHLY_LIST_PRICE_THRESHOLD_USD=undefined;const BYOK_FEE_PERCENTAGE=undefined;const BYOK_ENTERPRISE_MONTHLY_LIST_PRICE_THRESHOLD_USD=undefined;function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Heading}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`getting-started`,children:`Getting started`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Why should I use OpenRouter?`,id:`why-should-i-use-openrouter`,children:[_jsx(_components.p,{children:`OpenRouter provides a unified API to access all the major LLM models on the\nmarket. It also allows users to aggregate their billing in one place and\nkeep track of all of their usage using our analytics.`}),_jsx(_components.p,{children:`OpenRouter passes through the pricing of the underlying providers, while pooling their uptime,\nso you get the same pricing you’d get from the provider directly, with a\nunified API and fallbacks so that you get much better uptime.`}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/quickstart`,children:`Learn more in our Quickstart guide`}),`.`]})]}),_jsxs(Accordion,{title:`How do I get started with OpenRouter?`,id:`how-do-i-get-started-with-openrouter`,children:[_jsxs(_components.p,{children:[`To get started, create an account and add credits on the\n`,_jsx(_components.a,{href:`https://openrouter.ai/settings/credits`,children:`Credits`}),` page. Credits are simply\ndeposits on OpenRouter that you use for LLM inference.\nWhen you use the API or chat interface, we deduct the request cost from your\ncredits. Each model and provider has a different price per million tokens.`]}),_jsxs(_components.p,{children:[`Once you have credits you can either use the chat room, or create API keys\nand start using the API. You can read our `,_jsx(_components.a,{href:`/quickstart`,children:`quickstart`}),`\nor `,_jsx(_components.a,{href:`/cookbook/get-started/enterprise-quickstart`,children:`enterprise`}),` guide for code samples and more.`]})]}),_jsxs(Accordion,{title:`How do I get support?`,id:`how-do-i-get-support`,children:[_jsxs(_components.p,{children:[`The best way to get technical support is to join our\n`,_jsx(_components.a,{href:`https://discord.gg/openrouter`,children:`Discord`}),` and ask the community in the #help forum.`]}),_jsxs(_components.p,{children:[`For billing and account management questions, please contact us at `,_jsx(_components.a,{href:`mailto:support@openrouter.ai`,children:`support@openrouter.ai`}),`.`]})]}),_jsxs(Accordion,{title:`How do I get billed for my usage on OpenRouter?`,id:`how-do-i-get-billed-for-my-usage-on-openrouter`,children:[_jsx(_components.p,{children:`For each model we have the pricing displayed per million tokens. There is\nusually a different price for prompt and completion tokens. There are also\nmodels that charge per request, for images and for reasoning tokens. All of\nthese details will be visible on the models page.`}),_jsxs(_components.p,{children:[`When you make a request to OpenRouter, we receive the total number of tokens processed\nby the provider. We then calculate the corresponding cost and deduct it from your credits.\nYou can review your complete usage history in the `,_jsx(_components.a,{href:`https://openrouter.ai/activity`,children:`Activity tab`}),`.`]}),_jsxs(_components.p,{children:[`We pass through the pricing of the underlying providers; there is no markup\non inference pricing (however we do charge a `,_jsx(_components.a,{href:`/faq#pricing-and-fees`,children:`fee`}),` when purchasing credits).`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`pricing-and-fees`,children:`Pricing and fees`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`What are the fees for using OpenRouter?`,id:`what-are-the-fees-for-using-openrouter`,children:[_jsxs(_components.p,{children:[`OpenRouter charges a `,` fee when you purchase credits. We pass through\nthe pricing of the underlying model providers without any markup, so you pay\nthe same rate as you would directly with the provider.`]}),_jsxs(_components.p,{children:[`Crypto payments are charged a fee of `,`.`]})]}),_jsxs(Accordion,{title:`Is there a fee for using my own provider keys (BYOK)?`,id:`is-there-a-fee-for-using-my-own-provider-keys-byok`,children:[_jsxs(_components.p,{children:[`Yes. BYOK has a plan-dependent free allowance measured by list-price\ninference cost, not request count. Pay-as-you-go includes\n`,` per month with no BYOK fee,\nwhile Enterprise includes `,`.\nUsage above the allowance has a fee of `,`% of what the\nsame model and provider would normally cost on OpenRouter. This fee is\ndeducted from your OpenRouter credits. This allows you to manage your rate\nlimits and costs directly with the provider while still using\nOpenRouter’s unified interface. See the\n`,_jsx(_components.a,{href:`https://openrouter.ai/pricing`,children:`pricing page`}),` for details.`]}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/guides/overview/auth/byok`,children:`Learn more about BYOK`}),`.`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`models-and-providers`,children:`Models and providers`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`What LLM models does OpenRouter support?`,id:`what-llm-models-does-openrouter-support`,children:_jsxs(_components.p,{children:[`OpenRouter provides access to a wide variety of LLM models, including frontier models from major AI labs.\nFor a complete list of models you can visit the `,_jsx(_components.a,{href:`https://openrouter.ai/models`,children:`models browser`}),` or fetch the list through the `,_jsx(_components.a,{href:`https://openrouter.ai/api/v1/models`,children:`models api`}),`.`]})}),_jsx(Accordion,{title:`How frequently are new models added?`,id:`how-frequently-are-new-models-added`,children:_jsxs(_components.p,{children:[`We work on adding models as quickly as we can. We often have partnerships with\nthe labs releasing models and can release models as soon as they are\navailable. If there is a model missing that you’d like OpenRouter to support, feel free to message us on\n`,_jsx(_components.a,{href:`https://discord.gg/openrouter`,children:`Discord`}),`.`]})}),_jsxs(Accordion,{title:`What are model variants?`,id:`what-are-model-variants`,children:[_jsx(_components.p,{children:`Variants are suffixes that can be added to the model slug to change its behavior.`}),_jsxs(_components.p,{children:[`Static variants can only be used with specific models and these are listed in our `,_jsx(_components.a,{href:`https://openrouter.ai/api/v1/models`,children:`models api`}),`.`]}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`:free`}),` - The model is always provided for free and has low rate limits. `,_jsx(_components.a,{href:`/guides/routing/model-variants/free`,children:`Learn more`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`:extended`}),` - The model has longer than usual context length. `,_jsx(_components.a,{href:`/guides/routing/model-variants/extended`,children:`Learn more`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`:thinking`}),` - The model supports reasoning by default. `,_jsx(_components.a,{href:`/guides/routing/model-variants/thinking`,children:`Learn more`}),`.`]}),`\n`]}),_jsx(_components.p,{children:`Dynamic variants can be used on all models and they change the behavior of how the request is routed or used.`}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`:online`}),` (deprecated) - All requests will run a query to extract web results that are attached to the prompt. Use the `,_jsxs(_components.a,{href:`/guides/features/server-tools/web-search`,children:[_jsx(_components.code,{children:`openrouter:web_search`}),` server tool`]}),` instead. `,_jsx(_components.a,{href:`/guides/routing/model-variants/online`,children:`Learn more`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`:nitro`}),` - Providers will be sorted by throughput rather than the default sort, optimizing for faster response times. `,_jsx(_components.a,{href:`/guides/routing/provider-selection#nitro-shortcut`,children:`Learn more`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`:floor`}),` - Providers will be sorted by price rather than the default sort, prioritizing the most cost-effective options. `,_jsx(_components.a,{href:`/guides/routing/provider-selection#floor-price-shortcut`,children:`Learn more`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`:exacto`}),` - Providers will be sorted using quality-first signals tuned for tool-calling reliability. `,_jsx(_components.a,{href:`/guides/routing/model-variants/exacto`,children:`Learn more`}),`.`]}),`\n`]})]}),_jsx(Accordion,{title:`I am an inference provider, how can I get listed on OpenRouter?`,id:`i-am-an-inference-provider-how-can-i-get-listed-on-openrouter`,children:_jsxs(_components.p,{children:[`You can read our requirements at the `,_jsx(_components.a,{href:`/guides/community/for-providers`,children:`Providers\npage`}),`. If you would like to contact us, the best\nplace to reach us is over email.`]})}),_jsx(Accordion,{title:`What is the expected latency/response time for different models?`,id:`what-is-the-expected-latency-response-time-for-different-models`,children:_jsxs(_components.p,{children:[`For each model on OpenRouter we show the latency (time to first token) and the token\nthroughput for all providers. You can use this to estimate how long requests\nwill take. If you would like to optimize for throughput you can use the\n`,_jsx(_components.code,{children:`:nitro`}),` variant to route to the fastest provider.`]})}),_jsx(Accordion,{title:`How does model fallback work if a provider is unavailable?`,id:`how-does-model-fallback-work-if-a-provider-is-unavailable`,children:_jsxs(_components.p,{children:[`If a provider returns an error OpenRouter will automatically fall back to the\nnext provider. This happens transparently to the user and allows production\napps to be much more resilient. OpenRouter has a lot of options to configure\nthe provider routing behavior. The full documentation can be found `,_jsx(_components.a,{href:`/guides/routing/provider-selection`,children:`here`}),`.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`api-technical-specifications`,children:`API technical specifications`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`What authentication methods are supported?`,id:`what-authentication-methods-are-supported`,children:[_jsx(_components.p,{children:`OpenRouter uses three authentication methods:`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Cookie-based authentication for the web interface and chatroom`}),`\n`,_jsx(_components.li,{children:`API keys (passed as Bearer tokens) for accessing the completions API and other core endpoints`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/guides/overview/auth/management-api-keys`,children:`Management API keys`}),` for programmatically managing API keys through the key management endpoints`]}),`\n`]}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/api_reference/authentication`,children:`Learn more about API authentication`}),`.`]})]}),_jsxs(Accordion,{title:`How are rate limits calculated?`,id:`how-are-rate-limits-calculated`,children:[_jsxs(_components.p,{children:[`For free models, rate limits are determined by the credits that you have purchased.\nIf you have purchased at least `,` credits, your free model rate limit will be `,` requests per day.\nOtherwise, you will be rate limited to `,` free model API requests per day.`]}),_jsxs(_components.p,{children:[`You can learn more about how rate limits work for paid accounts in our `,_jsx(_components.a,{href:`/api_reference/limits`,children:`rate limits documentation`}),`.`]})]}),_jsx(Accordion,{title:`What API endpoints are available?`,id:`what-api-endpoints-are-available`,children:_jsxs(_components.p,{children:[`OpenRouter implements the OpenAI API specification for /completions and\n/chat/completions endpoints, allowing you to use any model with the same\nrequest/response format. Additional endpoints like /api/v1/models are also\navailable. See our `,_jsx(_components.a,{href:`/api_reference/overview`,children:`API documentation`}),` for\ndetailed specifications.`]})}),_jsx(Accordion,{title:`What are the supported formats?`,id:`what-are-the-supported-formats`,children:_jsxs(_components.p,{children:[`The API supports text, images, and PDFs.\n`,_jsx(_components.a,{href:`/guides/overview/multimodal/image-understanding`,children:`Images`}),` can be passed as\nURLs or base64 encoded images. `,_jsx(_components.a,{href:`/guides/overview/multimodal/pdfs`,children:`PDFs`}),` can also be sent as URLs or base64 encoded data, and work with any model on OpenRouter.`]})}),_jsxs(Accordion,{title:`How does streaming work?`,id:`how-does-streaming-work`,children:[_jsxs(_components.p,{children:[`Streaming uses server-sent events (SSE) for real-time token delivery. Set\n`,_jsx(_components.code,{children:`stream: true`}),` in your request to enable streaming responses.`]}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/api_reference/streaming`,children:`Learn more about streaming`}),`.`]})]}),_jsxs(Accordion,{title:`What SDK support is available?`,id:`what-sdk-support-is-available`,children:[_jsxs(_components.p,{children:[`OpenRouter is a drop-in replacement for OpenAI. Therefore, any SDKs that\nsupport OpenAI by default also support OpenRouter. Check out our\n`,_jsx(_components.a,{href:`/guides/community/openai-sdk`,children:`OpenAI SDK docs`}),` for more details.`]}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/guides/community/frameworks-and-integrations-overview`,children:`See all supported frameworks and integrations`}),`.`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`privacy-and-data-logging`,children:`Privacy and data logging`}),`\n`,_jsxs(_components.p,{children:[`Please see our `,_jsx(_components.a,{href:`https://openrouter.ai/terms`,children:`Terms of Service`}),` and `,_jsx(_components.a,{href:`https://openrouter.ai/privacy`,children:`Privacy Policy`}),`.`]}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`What data is logged during API use?`,id:`what-data-is-logged-during-api-use`,children:[_jsx(_components.p,{children:`We log basic request metadata (timestamps, model used, token counts). Prompt\nand completion are not logged by default. We do zero logging of your prompts/completions,\neven if an error occurs, unless you opt-in to logging them.`}),_jsxs(_components.p,{children:[`We have an opt-in `,_jsx(_components.a,{href:`https://openrouter.ai/settings/preferences`,children:`setting`}),` that\nlets users opt-in to log their prompts and completions in exchange for a 1%\ndiscount on usage costs.`]}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/guides/privacy/data-collection`,children:`Learn more about data collection`}),`.`]})]}),_jsx(Accordion,{title:`What data is logged during Chatroom use?`,id:`what-data-is-logged-during-chatroom-use`,children:_jsx(_components.p,{children:`The same data privacy applies to the chatroom as the API. All conversations\nin the chatroom are stored locally on your device. Conversations will not sync across devices.\nIt is possible to export and import conversations using the settings menu in the chatroom.`})}),_jsxs(Accordion,{title:`What third-party sharing occurs?`,id:`what-third-party-sharing-occurs`,children:[_jsxs(_components.p,{children:[`OpenRouter is a proxy that sends your requests to the model provider for it to be completed.\nWe work with all providers to, when possible, ensure that prompts and completions are not logged or used for training.\nProviders that do log, or where we have been unable to confirm their policy, will not be routed to unless the model training\ntoggle is switched on in the `,_jsx(_components.a,{href:`https://openrouter.ai/settings/privacy`,children:`privacy settings`}),` tab.`]}),_jsxs(_components.p,{children:[`If you specify `,_jsx(_components.a,{href:`/guides/routing/provider-selection`,children:`provider routing`}),` in your request, but none of the providers\nmatch the level of privacy specified in your account settings, you will get an error and your request will not complete.`]}),_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/guides/privacy/provider-logging`,children:`Learn more about provider logging policies`}),`.`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`credit-and-billing-systems`,children:`Credit and billing systems`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`What purchase options exist?`,id:`what-purchase-options-exist`,children:_jsx(_components.p,{children:`OpenRouter uses a credit system where the base currency is US dollars. All\nof the pricing on our site and API is denoted in dollars. Users can top up\ntheir balance manually or set up auto top up so that the balance is\nreplenished when it gets below the set threshold.`})}),_jsx(Accordion,{title:`Do credits expire?`,id:`do-credits-expire`,children:_jsxs(_components.p,{children:[`Per our `,_jsx(_components.a,{href:`https://openrouter.ai/terms`,children:`terms`}),`, we reserve the right to expire\nunused credits after one year of purchase.`]})}),_jsxs(Accordion,{title:`My credits haven't showed up in my account`,id:`my-credits-havent-showed-up-in-my-account`,children:[_jsx(_components.p,{children:`If you paid using Stripe, sometimes there is an issue with the Stripe\nintegration and credits can get delayed in showing up on your account. Please allow up to one hour.\nIf your credits still have not appeared after an hour, check to confirm you have not been charged and\nthat you do not have a stripe receipt email. If you do not have a receipt email or have not been charged,\nyour card may have been declined. Please try again with a different card or payment method.`}),_jsxs(_components.p,{children:[`If you have been charged and still do not have credits, please reach out to us via email\nat `,_jsx(_components.a,{href:`mailto:support@openrouter.ai`,children:`support@openrouter.ai`}),` with details of the purchase.`]}),_jsxs(_components.p,{children:[`If you paid using crypto, please reach out to us via email at `,_jsx(_components.a,{href:`mailto:support@openrouter.ai`,children:`support@openrouter.ai`}),`\nand we will look into it.`]})]}),_jsx(Accordion,{title:`What's the refund policy?`,id:`whats-the-refund-policy`,children:_jsxs(_components.p,{children:[`Refunds for unused Credits may be requested within twenty-four (24) hours from the time the transaction was processed. If no refund request is received within twenty-four (24) hours following the purchase, any unused Credits become non-refundable. To request a refund within the eligible period, you can use the refund button on the `,_jsx(_components.a,{href:`https://openrouter.ai/settings/credits`,children:`Credits`}),` page. The unused credit amount will be refunded to your payment method; the platform fees are non-refundable. Note that cryptocurrency payments are never refundable.`]})}),_jsxs(Accordion,{title:`How to monitor credit usage?`,id:`how-to-monitor-credit-usage`,children:[_jsxs(_components.p,{children:[`The `,_jsx(_components.a,{href:`https://openrouter.ai/activity`,children:`Activity`}),` page allows users to view\ntheir historic usage and filter the usage by model, provider and api key.`]}),_jsxs(_components.p,{children:[`We also provide a `,_jsx(_components.a,{href:`/api/api-reference/credits/get-remaining-credits`,children:`credits api`}),` that has\nlive information about the balance and remaining credits for the account.`]})]}),_jsxs(Accordion,{title:`What free tier options exist?`,id:`what-free-tier-options-exist`,children:[_jsxs(_components.p,{children:[`All new users receive a small free allowance to test out OpenRouter.\nThere are many `,_jsx(_components.a,{href:`https://openrouter.ai/models?max_price=0`,children:`free models`}),` available\non OpenRouter. These models have low rate limits (`,` requests per day total)\nand are usually not suitable for production use. If you have purchased at least `,` credits,\nthe free models will be limited to `,` requests per day.`]}),_jsxs(_components.p,{children:[`You can also use the `,_jsx(_components.a,{href:`/cookbook/get-started/free-models-router-playground`,children:`Free Models Router`}),` (`,_jsx(_components.code,{children:`openrouter/free`}),`) to automatically select a free model for your requests.`]})]}),_jsx(Accordion,{title:`How do volume discounts work?`,id:`how-do-volume-discounts-work`,children:_jsx(_components.p,{children:`OpenRouter does not currently offer volume discounts, but you can reach out to us\nover email if you think you have an exceptional use case.`})}),_jsx(Accordion,{title:`What payment methods are accepted?`,id:`what-payment-methods-are-accepted`,children:_jsxs(_components.p,{children:[`We accept all major credit cards, AliPay and cryptocurrency payments in\nUSDC. We are working on integrating PayPal soon, if there are any payment\nmethods that you would like us to support please reach out on `,_jsx(_components.a,{href:`https://discord.gg/openrouter`,children:`Discord`}),`.`]})}),_jsx(Accordion,{title:`How does OpenRouter make money?`,id:`how-does-openrouter-make-money`,children:_jsxs(_components.p,{children:[`We charge a small `,_jsx(_components.a,{href:`/faq#pricing-and-fees`,children:`fee`}),` when purchasing credits. We never mark-up the pricing\nof the underlying providers, and you’ll always pay the same as the provider’s\nlisted price.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`account-management`,children:`Account management`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`How can I delete my account?`,id:`how-can-i-delete-my-account`,children:[_jsxs(_components.p,{children:[`Go to the `,_jsx(_components.a,{href:`https://openrouter.ai/settings/preferences`,children:`Settings`}),` page and click Manage Account.\nIn the modal that opens, select the Security tab. You’ll find an option there to delete your account.`]}),_jsx(_components.p,{children:`Note that unused credits will be lost and cannot be reclaimed if you delete and later recreate your account.`})]}),_jsx(Accordion,{title:`How does team access work?`,id:`how-does-team-access-work`,children:_jsxs(_components.p,{children:[`Organization management information can be found in our `,_jsx(_components.a,{href:`/cookbook/administration/organization-management`,children:`organization management documentation`}),`.`]})}),_jsx(Accordion,{title:`What analytics are available?`,id:`what-analytics-are-available`,children:_jsxs(_components.p,{children:[`Our `,_jsx(_components.a,{href:`https://openrouter.ai/activity`,children:`activity dashboard`}),` provides real-time\nusage metrics. If you would like any specific reports or metrics please\ncontact us.`]})}),_jsx(Accordion,{title:`How can I contact support?`,id:`how-can-i-contact-support`,children:_jsxs(_components.p,{children:[`For account and billing questions, please contact us at `,_jsx(_components.a,{href:`mailto:support@openrouter.ai`,children:`support@openrouter.ai`}),`.`]})}),_jsx(Accordion,{title:`How can I file a bug report or change request for OpenRouter?`,id:`how-can-i-file-a-bug-report-or-change-request-for-openrouter`,children:_jsxs(_components.p,{children:[`You can file bug reports or change requests by posting in our `,_jsx(_components.a,{href:`https://discord.gg/openrouter`,children:`Discord`}),`.`]})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{getTotalFeeString,FREE_MODEL_NO_CREDITS_RPD,FREE_MODEL_HAS_CREDITS_RPD,FREE_MODEL_CREDITS_THRESHOLD,BYOK_PAYG_MONTHLY_LIST_PRICE_THRESHOLD_USD,BYOK_FEE_PERCENTAGE,BYOK_ENTERPRISE_MONTHLY_LIST_PRICE_THRESHOLD_USD,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.\")}"])</script><script>self.__next_f.push([1,"45:[\"$\",\"$L4f\",null,{\"slug\":\"faq\",\"pageMetadata\":\"$2e:props:pageMetadata\",\"theme\":\"mint\",\"children\":[\"$\",\"$L50\",null,{\"mdxSource\":{\"compiledSource\":\"$51\",\"frontmatter\":{},\"scope\":{\"config\":{},\"pageMetadata\":{\"title\":\"Frequently Asked Questions\",\"description\":\"Common questions about OpenRouter\",\"slug\":\"faq\",\"seoTitle\":\"OpenRouter FAQ | Developer Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter FAQ\",\"og:description\":\"Find answers to commonly asked questions about OpenRouter's unified API, model access, pricing, and integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=faq\u0026title=FAQ\u0026description=Common%20questions%20about%20OpenRouter\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"question\",\"sidebarTitle\":\"FAQ\",\"href\":\"/faq\"}}},\"mdxSourceWithNoJs\":{\"compiledSource\":\"$52\",\"frontmatter\":{},\"scope\":{\"config\":{},\"pageMetadata\":{\"title\":\"Frequently Asked Questions\",\"description\":\"Common questions about OpenRouter\",\"slug\":\"faq\",\"seoTitle\":\"OpenRouter FAQ | Developer Documentation\",\"og:site_name\":\"OpenRouter Documentation\",\"og:title\":\"OpenRouter FAQ\",\"og:description\":\"Find answers to commonly asked questions about OpenRouter's unified API, model access, pricing, and integration.\",\"og:image\":\"https://openrouter.ai/dynamic-og?pathname=faq\u0026title=FAQ\u0026description=Common%20questions%20about%20OpenRouter\",\"og:image:width\":1200,\"og:image:height\":630,\"twitter:card\":\"summary_large_image\",\"twitter:site\":\"@OpenRouter\",\"noindex\":false,\"nofollow\":false,\"icon\":\"question\",\"sidebarTitle\":\"FAQ\",\"href\":\"/faq\"}}},\"displayDomain\":\"openrouter.ai/docs\"}]}]\n"])</script><script>self.__next_f.push([1,"53:I[604780,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"CaptchaProvider\"]\n"])</script><script>self.__next_f.push([1,"54:I[601054,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"SearchProvider\"]\n"])</script><script>self.__next_f.push([1,"55:I[28330,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"SkipToContent\"]\n"])</script><script>self.__next_f.push([1,"56:I[87732,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"AssistantLayoutWrapper\"]\n"])</script><script>self.__next_f.push([1,"57:I[118717,[\"/docs/_next/static/chunks/19ae1768f166fab9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/b664fc8bb1e7ab0d.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f5976305ab1768eb.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a5edc6734daa1561.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8195921497d29a61.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cde9521bba917b79.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/0890ba15c670d9b1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/8778b596bb8e1fac.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/e157c74f66e9fd33.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/f4004300900987e9.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cfd727ba62f1c54c.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/58c3a30fcb9735c1.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/cc5fb492c7259b04.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/9a9319ba237676a4.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/a919d558158c76f7.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/c7c9dfd26f25e785.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\",\"/docs/_next/static/chunks/746594ec3bf27705.js?dpl=dpl_DiH4JSspKRWUSpYuPX65YyMjrsgK\"],\"NotFoundHydrator\"]\n"])</script><script>self.__next_f.push([1,"49:[\"$\",\"$L53\",null,{\"enabled\":true,\"isPreview\":false,\"children\":[\"$\",\"$L54\",null,{\"subdomain\":\"openrouter-d02e98a0\",\"hasChatPermissions\":true,\"isLoggedInCli\":false,\"assistantConfig\":{\"enableAskAiButton\":false,\"enableStarterQuestions\":false,\"enableContextualStarterQuestions\":false,\"enableAskAiSearchBar\":true},\"starterQuestions\":\"$undefined\",\"children\":[[\"$\",\"$L55\",null,{}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function i(a,b,c,d){try{if(window.matchMedia(\\\"(max-width: 1024px)\\\").matches||!d){document.documentElement.style.setProperty(c,\\\"0px\\\"),document.documentElement.setAttribute(\\\"data-assistant-state\\\",\\\"closed\\\"),d||localStorage.setItem(a,\\\"false\\\");return}let e=localStorage.getItem(a);if(null===e){document.documentElement.style.setProperty(c,\\\"0px\\\"),document.documentElement.setAttribute(\\\"data-assistant-state\\\",\\\"closed\\\");return}let f=JSON.parse(e),g=localStorage.getItem(b),h=null!==g?JSON.parse(g):368;document.documentElement.style.setProperty(c,f?h+\\\"px\\\":\\\"0px\\\"),document.documentElement.setAttribute(\\\"data-assistant-state\\\",f?\\\"open\\\":\\\"closed\\\")}catch(a){document.documentElement.style.setProperty(c,\\\"0px\\\"),document.documentElement.setAttribute(\\\"data-assistant-state\\\",\\\"closed\\\")}})(\\n    \\\"chat-assistant-sheet-open\\\",\\n    \\\"chat-assistant-sheet-width\\\",\\n    \\\"--assistant-sheet-width\\\",\\n    true\\n  )\"}}],false,[\"$\",\"$L56\",null,{\"children\":[[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L57\",null,{\"source\":\"multitenant\"}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],\"$undefined\"]}]]}]}]\n"])</script><script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"805cc649ceeb4d638e3690a3ff168bfe"}' crossorigin="anonymous"></script>
<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a2e964edf92480f2',t:'MTc4NzMxMjc1NA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html>