[{"data":1,"prerenderedAt":428},["ShallowReactive",2],{"navigation_docs":3,"-integrations-api-keys":98,"-integrations-api-keys-surround":423},[4,26,77],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":25},"Getting Started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Overview","\u002Fgetting-started\u002Foverview","1.getting-started\u002F1.overview","i-lucide-info",{"title":16,"path":17,"stem":18,"icon":19},"Platform Navigation","\u002Fgetting-started\u002Fplatform-navigation","1.getting-started\u002F2.platform-navigation","i-lucide-compass",{"title":21,"path":22,"stem":23,"icon":24},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F3.quickstart","i-lucide-play-circle",false,{"title":27,"icon":28,"path":29,"stem":30,"children":31,"page":25},"Features","i-lucide-star","\u002Ffeatures","2.features",[32,37,42,47,52,57,62,67,72],{"title":33,"path":34,"stem":35,"icon":36},"Feature Overview","\u002Ffeatures\u002Foverview","2.features\u002F1.overview","i-lucide-list",{"title":38,"path":39,"stem":40,"icon":41},"Company Setup","\u002Ffeatures\u002Fcompany-setup","2.features\u002F2.company-setup","i-lucide-building-2",{"title":43,"path":44,"stem":45,"icon":46},"Applications","\u002Ffeatures\u002Fapplications","2.features\u002F3.applications","i-lucide-box",{"title":48,"path":49,"stem":50,"icon":51},"Observability","\u002Ffeatures\u002Fobservability","2.features\u002F4.observability","i-lucide-activity",{"title":53,"path":54,"stem":55,"icon":56},"Guardrails","\u002Ffeatures\u002Fguardrails","2.features\u002F5.guardrails","i-lucide-shield-alert",{"title":58,"path":59,"stem":60,"icon":61},"Data Integrations","\u002Ffeatures\u002Fdata-integrations","2.features\u002F6.data-integrations","i-lucide-database",{"title":63,"path":64,"stem":65,"icon":66},"Models and Routing","\u002Ffeatures\u002Fmodels-and-routing","2.features\u002F7.models-and-routing","i-lucide-git-branch",{"title":68,"path":69,"stem":70,"icon":71},"Governance","\u002Ffeatures\u002Fgovernance","2.features\u002F8.governance","i-lucide-shield-check",{"title":73,"path":74,"stem":75,"icon":76},"Tools","\u002Ffeatures\u002Ftools","2.features\u002F9.tools","i-lucide-globe",{"title":78,"icon":79,"path":80,"stem":81,"children":82,"page":25},"Integrations","i-lucide-plug","\u002Fintegrations","3.integrations",[83,88,93],{"title":84,"path":85,"stem":86,"icon":87},"Using the API","\u002Fintegrations\u002Fapi-usage","3.integrations\u002F3.api-usage","i-lucide-terminal-square",{"title":89,"path":90,"stem":91,"icon":92},"API Keys","\u002Fintegrations\u002Fapi-keys","3.integrations\u002Fapi-keys","i-lucide-key-round",{"title":94,"path":95,"stem":96,"icon":97},"Providers","\u002Fintegrations\u002Fproviders","3.integrations\u002Fproviders","i-lucide-cpu",{"id":99,"title":89,"body":100,"description":416,"extension":417,"links":418,"meta":419,"navigation":420,"path":90,"seo":421,"stem":91,"__hash__":422},"docs\u002F3.integrations\u002Fapi-keys.md",{"type":101,"value":102,"toc":410},"minimark",[103,107,110,131,136,170,173,190,193,197,200,359,362,369,373,393,397,403,406],[104,105,106],"p",{},"Application API keys allow external services to authenticate with the public Optiak Gateway API for one application.",[104,108,109],{},"These are different from provider keys:",[111,112,113,121],"ul",{},[114,115,116,120],"li",{},[117,118,119],"strong",{},"Application API keys"," are created inside an application and are used by your services to call Optiak.",[114,122,123,126,127,130],{},[117,124,125],{},"Provider keys"," are created in ",[117,128,129],{},"Company Setup -> Models"," and let Optiak call upstream providers such as OpenAI, Anthropic, AWS Bedrock, Google Gemini API, and Vertex AI.",[132,133,135],"h2",{"id":134},"creating-an-api-key","Creating an API Key",[137,138,139,144,147,152,158,161,164,167],"ol",{},[114,140,141,142],{},"Open ",[117,143,43],{},[114,145,146],{},"Select the application that should receive traffic",[114,148,141,149],{},[117,150,151],{},"Credentials",[114,153,154,155],{},"Click ",[117,156,157],{},"New Key",[114,159,160],{},"Provide a descriptive name",[114,162,163],{},"Optionally add a label and description",[114,165,166],{},"Choose an expiration preset",[114,168,169],{},"Copy the generated key immediately",[104,171,172],{},"Expiration presets include:",[111,174,175,178,181,184,187],{},[114,176,177],{},"No expiration",[114,179,180],{},"7 days",[114,182,183],{},"30 days",[114,185,186],{},"90 days",[114,188,189],{},"1 year",[104,191,192],{},"The full key is only shown once. After creation, Optiak only displays the key prefix.",[132,194,196],{"id":195},"using-an-api-key","Using an API Key",[104,198,199],{},"Send the key as a bearer token:",[201,202,207],"pre",{"className":203,"code":204,"language":205,"meta":206,"style":206},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export OPTIAK_BASE_URL=\"https:\u002F\u002Fapi.optiak.dev\u002Fv1\"\nexport OPTIAK_API_KEY=\"your_application_api_key\"\n\ncurl \"$OPTIAK_BASE_URL\u002Fchat\u002Fcompletions\" \\\n  -H \"Authorization: Bearer $OPTIAK_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"smart\",\n    \"messages\": [\n      { \"role\": \"user\", \"content\": \"Hello\" }\n    ]\n  }'\n","bash","",[208,209,210,237,254,261,282,300,314,326,332,338,344,350],"code",{"__ignoreMap":206},[211,212,215,219,223,227,230,234],"span",{"class":213,"line":214},"line",1,[211,216,218],{"class":217},"spNyl","export",[211,220,222],{"class":221},"sTEyZ"," OPTIAK_BASE_URL",[211,224,226],{"class":225},"sMK4o","=",[211,228,229],{"class":225},"\"",[211,231,233],{"class":232},"sfazB","https:\u002F\u002Fapi.optiak.dev\u002Fv1",[211,235,236],{"class":225},"\"\n",[211,238,240,242,245,247,249,252],{"class":213,"line":239},2,[211,241,218],{"class":217},[211,243,244],{"class":221}," OPTIAK_API_KEY",[211,246,226],{"class":225},[211,248,229],{"class":225},[211,250,251],{"class":232},"your_application_api_key",[211,253,236],{"class":225},[211,255,257],{"class":213,"line":256},3,[211,258,260],{"emptyLinePlaceholder":259},true,"\n",[211,262,264,268,271,274,277,279],{"class":213,"line":263},4,[211,265,267],{"class":266},"sBMFI","curl",[211,269,270],{"class":225}," \"",[211,272,273],{"class":221},"$OPTIAK_BASE_URL",[211,275,276],{"class":232},"\u002Fchat\u002Fcompletions",[211,278,229],{"class":225},[211,280,281],{"class":221}," \\\n",[211,283,285,288,290,293,296,298],{"class":213,"line":284},5,[211,286,287],{"class":232},"  -H",[211,289,270],{"class":225},[211,291,292],{"class":232},"Authorization: Bearer ",[211,294,295],{"class":221},"$OPTIAK_API_KEY",[211,297,229],{"class":225},[211,299,281],{"class":221},[211,301,303,305,307,310,312],{"class":213,"line":302},6,[211,304,287],{"class":232},[211,306,270],{"class":225},[211,308,309],{"class":232},"Content-Type: application\u002Fjson",[211,311,229],{"class":225},[211,313,281],{"class":221},[211,315,317,320,323],{"class":213,"line":316},7,[211,318,319],{"class":232},"  -d",[211,321,322],{"class":225}," '",[211,324,325],{"class":232},"{\n",[211,327,329],{"class":213,"line":328},8,[211,330,331],{"class":232},"    \"model\": \"smart\",\n",[211,333,335],{"class":213,"line":334},9,[211,336,337],{"class":232},"    \"messages\": [\n",[211,339,341],{"class":213,"line":340},10,[211,342,343],{"class":232},"      { \"role\": \"user\", \"content\": \"Hello\" }\n",[211,345,347],{"class":213,"line":346},11,[211,348,349],{"class":232},"    ]\n",[211,351,353,356],{"class":213,"line":352},12,[211,354,355],{"class":232},"  }",[211,357,358],{"class":225},"'\n",[104,360,361],{},"Each key is tied to the application where it was created. Requests authenticated with that key use that application's models, modules, guardrails, enrichment settings, cost settings, and inference defaults.",[104,363,364,365,368],{},"Use ",[208,366,367],{},"GET \u002Fmodels"," with the same key to confirm which public model IDs are available before sending production traffic.",[132,370,372],{"id":371},"security-recommendations","Security Recommendations",[111,374,375,378,381,384,387,390],{},[114,376,377],{},"Never share your API keys in public repositories",[114,379,380],{},"Rotate keys periodically",[114,382,383],{},"Use one key per integration to enable granular revocation",[114,385,386],{},"Use expirations for temporary tests or short-lived integrations",[114,388,389],{},"Store keys in a secret manager or environment variable",[114,391,392],{},"Revoke keys immediately when an integration is retired or compromised",[132,394,396],{"id":395},"revoking-a-key","Revoking a Key",[104,398,399,400,402],{},"To revoke an API key, open the application's ",[117,401,151],{}," tab and use the delete control next to the key.",[104,404,405],{},"Once revoked, any service using that key loses access immediately.",[407,408,409],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":206,"searchDepth":239,"depth":239,"links":411},[412,413,414,415],{"id":134,"depth":239,"text":135},{"id":195,"depth":239,"text":196},{"id":371,"depth":239,"text":372},{"id":395,"depth":239,"text":396},"How to manage your API keys in Optiak.","md",null,{},{"icon":92},{"title":89,"description":416},"7OjPv-XXVY8_0dF4VnnKZ9viosOgtH-lQ5ILXYkqT4g",[424,426],{"title":84,"path":85,"stem":86,"description":425,"icon":87,"children":-1},"How to call Optiak from your application.",{"title":94,"path":95,"stem":96,"description":427,"icon":97,"children":-1},"How to connect provider API keys to Optiak, and how to add custom OpenAI-compatible providers.",1789640937839]