Create a key in Studio at Manage → API Keys with New Key. The key is shown once, when you create it, so copy it then and store it somewhere safe, such as your secrets manager. Keys start with squawk_sk_live_. See API Keys for creating, expiring and revoking keys.
Check that the key is sent in an X-API-Key header, and that it is still listed at Manage → API Keys and hasn’t expired. An expired key can’t be extended: create a new one.Use a key with the endpoints in this reference. Most other SquawkVoice endpoints refuse a key with a 401, which reads like a broken key rather than an endpoint that doesn’t take one.
Keep keys out of browser and mobile code. Anyone who has a key can place calls, and change and publish agents, in your account. If a key leaks, revoke it at Manage → API Keys straight away: it stops working on its next request.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"SquawkVoice AI Agent Platform","colors":{"primary":"#3B78EE","light":"#5A8DEE","dark":"#3B78EE"},"logo":{"light":"https://mintcdn.com/squawkvoice/k8KuW4qvvfPt5rRu/logo/light.svg?fit=max\u0026auto=format\u0026n=k8KuW4qvvfPt5rRu\u0026q=85\u0026s=e16531096ecdf3a936a26def1c365910","dark":"https://mintcdn.com/squawkvoice/k8KuW4qvvfPt5rRu/logo/dark.svg?fit=max\u0026auto=format\u0026n=k8KuW4qvvfPt5rRu\u0026q=85\u0026s=0080b3ae39f483695c391c4580b2f9d8"},"favicon":"https://mintcdn.com/squawkvoice/k8KuW4qvvfPt5rRu/favicon.svg?fit=max\u0026auto=format\u0026n=k8KuW4qvvfPt5rRu\u0026q=85\u0026s=5248b607ac5ae30b74736411c54af76a","api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","python","javascript"]}},"navbar":{"links":[{"href":"mailto:support@squawkvoice.ai","label":"Support"}],"primary":{"type":"button","label":"Studio","href":"https://app.squawkvoice.ai"}},"footer":{"socials":{"github":"https://github.com/squawkvoice-ai","linkedin":"https://linkedin.com/company/squawkvoice"}},"styling":{"latex":true},"navigation":{"global":{"anchors":[]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"squawkvoice","hasAudioNarration":false,"actualSubdomain":"squawkvoice","customDomains":["docs.squawkvoice.ai"],"gitSource":{"type":"github","owner":"squawkvoice-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae18bdf9b7d807c2d28f2ee","collectionId":"d15d9cce-331f-4d95-82ae-4eef0bf0471e","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae18bdf9b7d807c2d28f2ee"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ae93e3e1d7e583b989db882","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"Guides","count":39},{"language":"default","tag":"API Reference","count":11},{"language":"default","tag":"Build","count":10},{"language":"default","tag":"Manage","count":8},{"language":"default","tag":"AI Agents","count":7},{"language":"default","tag":"Campaigns","count":7},{"language":"default","tag":"Optimize","count":5},{"language":"default","tag":"Agents","count":5},{"language":"default","tag":"Actions","count":4},{"language":"default","tag":"Overview","count":3}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"/* vietnamese */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v9KQU4Wc.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v9aQU4Wc.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v-6QU.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v9KQU4Wc.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v9aQU4Wc.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v-6QU.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v9KQU4Wc.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v9aQU4Wc.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v-6QU.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v9KQU4Wc.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v9aQU4Wc.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v-6QU.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v9KQU4Wc.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v9aQU4Wc.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v-6QU.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v9KQU4Wc.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v9aQU4Wc.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v-6QU.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v9KQU4Wc.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v9aQU4Wc.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Lexend';\n font-style: normal;\n font-weight: 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/lexend/v26/wlpwgwvFAVdoq2_v-6QU.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n#__next,*,.btn,.navigation,.sidebar,[data-mintlify-theme],[role=button],body,button,h1,h2,h3,h4,h5,h6,html,nav{font-family:'Lexend',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif!important}h1,h2,h3,h4,h5,h6{font-weight:600}.code-block,code,pre{font-family:'JetBrains Mono','Fira Code','SF Mono',Monaco,'Cascadia Code','Roboto Mono',Consolas,'Courier New',monospace!important}code:not(pre code){font-family:'JetBrains Mono','Fira Code','SF Mono',Monaco,'Cascadia Code','Roboto Mono',Consolas,'Courier New',monospace!important}.font-lexend{font-family:'Lexend',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif!important}.font-light{font-weight:300!important}.font-normal{font-weight:400!important}.font-medium{font-weight:500!important}.font-semibold{font-weight:600!important}.font-bold{font-weight:700!important}.font-extrabold{font-weight:800!important}.font-black{font-weight:900!important}svg.lucide polygon,svg.lucide polyline{fill:none!important;stroke:currentColor!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important}body.light .light-img,html.light .light-img{display:block!important}body.dark .light-img,body.light .dark-img,html.dark .light-img,html.light .dark-img{display:none!important}.light-img,body.dark .dark-img,html.dark .dark-img{display:block!important}.dark-img{display:none!important}"}],"page":{"pagePath":"api-reference/authentication","slug":"/api-reference/authentication","pageMetadata":{"title":"Authentication","description":"Authenticate API requests with an API key in the X-API-Key header","icon":"key","href":"/api-reference/authentication"},"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: \"Authenticate API requests with an API key in the X-API-Key header\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Every request needs an API key, sent in the `,_jsx(_components.code,{children:`X-API-Key`}),` header:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.squawkvoice.ai/api/v1/assistants/{assistantId}/guidelines`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"X-API-Key: squawk_sk_live_...\"`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`get-a-key`,children:`Get a Key`}),`\n`,_jsxs(_components.p,{children:[`Create a key in Studio at `,_jsx(_components.strong,{children:`Manage → API Keys`}),` with `,_jsx(_components.strong,{children:`New Key`}),`. The key is shown once, when you create it, so copy it then and store it somewhere safe, such as your secrets manager. Keys start with `,_jsx(_components.code,{children:`squawk_sk_live_`}),`. See `,_jsx(_components.a,{href:`/manage/api-keys`,children:`API Keys`}),` for creating, expiring and revoking keys.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-a-key-can-reach`,children:`What a Key Can Reach`}),`\n`,_jsx(_components.p,{children:`A key acts as the person who created it, inside their account:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`It reaches every campaign and every agent in the account, not only the one you were looking at when you created it.`}),`\n`,_jsxs(_components.li,{children:[`A campaign or agent in any other account answers `,_jsx(_components.code,{children:`403`}),`.`]}),`\n`,_jsx(_components.li,{children:`Keys have no scopes, so you can’t limit one to a single campaign or agent.`}),`\n`,_jsxs(_components.li,{children:[`Changes a key makes, such as replacing an agent’s guidelines or publishing it, are recorded in `,_jsx(_components.a,{href:`/manage/audit-logs`,children:`Audit Logs`}),` with the key’s creator as the `,_jsx(_components.strong,{children:`Actor`}),`.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Use one key per integration, so you can revoke one without breaking the others.`}),`\n`,_jsx(Heading,{level:`2`,id:`when-a-key-is-refused`,children:`When a Key Is Refused`}),`\n`,_jsxs(_components.p,{children:[`A request with no key, or with a key that is unknown, revoked or expired, answers `,_jsx(_components.code,{children:`401`}),`. The reply is the same in every case, so it doesn’t say which:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"success\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Unauthorized: Invalid credentials\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Check that the key is sent in an `,_jsx(_components.code,{children:`X-API-Key`}),` header, and that it is still listed at `,_jsx(_components.strong,{children:`Manage → API Keys`}),` and hasn’t expired. An expired key can’t be extended: create a new one.`]}),`\n`,_jsxs(_components.p,{children:[`Use a key with the endpoints in this reference. Most other SquawkVoice endpoints refuse a key with a `,_jsx(_components.code,{children:`401`}),`, which reads like a broken key rather than an endpoint that doesn’t take one.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Keep keys out of browser and mobile code. Anyone who has a key can place calls, and change and publish agents, in your account. If a key leaks, revoke it at `,_jsx(_components.strong,{children:`Manage → API Keys`}),` straight away: it stops working on its next request.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Authentication","description":"Authenticate API requests with an API key in the X-API-Key header","icon":"key","href":"/api-reference/authentication"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Get a Key","slug":"get-a-key","depth":2,"children":[]},{"title":"What a Key Can Reach","slug":"what-a-key-can-reach","depth":2,"children":[]},{"title":"When a Key Is Refused","slug":"when-a-key-is-refused","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/squawkvoice/ad61a5658c9f61c3/lexend-injection.js"],"subdomain":"squawkvoice","siteName":"SquawkVoice AI Agent Platform","title":"Authentication - SquawkVoice AI Agent Platform","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T01:52:05.839Z","originalFileLocation":"api-reference/authentication.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Authenticate API requests with an API key in the X-API-Key header\">\u003cmeta data-mint-head name=\"application-name\" content=\"SquawkVoice AI Agent Platform\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/squawkvoice/7Ed_z7wf787GbkC9/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/squawkvoice/7Ed_z7wf787GbkC9/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/squawkvoice/7Ed_z7wf787GbkC9/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/squawkvoice/7Ed_z7wf787GbkC9/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/squawkvoice/7Ed_z7wf787GbkC9/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/squawkvoice/7Ed_z7wf787GbkC9/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/squawkvoice/7Ed_z7wf787GbkC9/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/squawkvoice/7Ed_z7wf787GbkC9/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/squawkvoice/7Ed_z7wf787GbkC9/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Authentication - SquawkVoice AI Agent Platform\">\u003cmeta data-mint-head property=\"og:description\" content=\"Authenticate API requests with an API key in the X-API-Key header\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SquawkVoice AI Agent Platform\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.squawkvoice.ai/api-reference/authentication\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://squawkvoice.mintlify.app/_mintlify/api/og/v2?division=Overview\u0026amp;title=Authentication\u0026amp;description=Authenticate+API+requests+with+an+API+key+in+the+X-API-Key+header\u0026amp;theme=72cff580df027e163f5cf565\u0026amp;signature=a005db15ffbf4aca3ce0598c99dfccacc6eabdf0db4dcca192c0053717d533fc\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Authentication - SquawkVoice AI Agent Platform\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Authenticate API requests with an API key in the X-API-Key header\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://squawkvoice.mintlify.app/_mintlify/api/og/v2?division=Overview\u0026amp;title=Authentication\u0026amp;description=Authenticate+API+requests+with+an+API+key+in+the+X-API-Key+header\u0026amp;theme=72cff580df027e163f5cf565\u0026amp;signature=a005db15ffbf4aca3ce0598c99dfccacc6eabdf0db4dcca192c0053717d533fc\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/squawkvoice/7Ed_z7wf787GbkC9/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SquawkVoice AI Agent Platform\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3B78EE\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.squawkvoice.ai/api-reference/authentication\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/authentication.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.squawkvoice.ai/#organization\",\"name\":\"SquawkVoice AI Agent Platform\",\"url\":\"https://docs.squawkvoice.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/squawkvoice/k8KuW4qvvfPt5rRu/logo/light.svg?fit=max\u0026auto=format\u0026n=k8KuW4qvvfPt5rRu\u0026q=85\u0026s=e16531096ecdf3a936a26def1c365910\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.squawkvoice.ai#website\",\"name\":\"SquawkVoice AI Agent Platform\",\"url\":\"https://docs.squawkvoice.ai\",\"publisher\":{\"@id\":\"https://docs.squawkvoice.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.squawkvoice.ai/api-reference/authentication#webpage\",\"url\":\"https://docs.squawkvoice.ai/api-reference/authentication\",\"name\":\"Authentication\",\"description\":\"Authenticate API requests with an API key in the X-API-Key header\",\"dateModified\":\"2026-11-03T01:52:05.839Z\",\"isPartOf\":{\"@id\":\"https://docs.squawkvoice.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.squawkvoice.ai/api-reference/authentication#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.squawkvoice.ai/api-reference/authentication#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Overview\",\"item\":\"https://docs.squawkvoice.ai/api-reference/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Authentication\",\"item\":\"https://docs.squawkvoice.ai/api-reference/authentication\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.squawkvoice.ai/api-reference/authentication#article\",\"headline\":\"Authentication\",\"name\":\"Authentication\",\"description\":\"Authenticate API requests with an API key in the X-API-Key header\",\"url\":\"https://docs.squawkvoice.ai/api-reference/authentication\",\"mainEntityOfPage\":{\"@id\":\"https://docs.squawkvoice.ai/api-reference/authentication#webpage\"},\"dateModified\":\"2026-11-03T01:52:05.839Z\",\"publisher\":{\"@id\":\"https://docs.squawkvoice.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.squawkvoice.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SquawkVoice AI Agent Platform\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"SquawkVoice AI Agent Platform","nav":{"global":{"anchors":[]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"Introduction","description":"Call SquawkVoice from your own systems to place campaign calls and manage agent guidelines","icon":"book-open","href":"/api-reference/introduction"},{"title":"Authentication","icon":"key","href":"/api-reference/authentication"},{"title":"Errors and Rate Limits","description":"Status codes, error bodies and rate limits for the SquawkVoice API","icon":"triangle-exclamation","href":"/api-reference/errors"}]},{"group":"On-Demand Calls","icon":"phone-arrow-up-right","pages":[{"title":"Place a call","openapi":"api-reference/openapi.yaml POST /api/v1/campaigns/{campaignId}/contacts/on-demand","href":"/api-reference/on-demand-calls/place-call"},{"title":"Cancel a call","openapi":"api-reference/openapi.yaml DELETE /api/v1/campaigns/{campaignId}/contacts/on-demand/{contactId}","href":"/api-reference/on-demand-calls/cancel-call"},{"title":"Cancel a call by request ID","openapi":"api-reference/openapi.yaml DELETE /api/v1/campaigns/{campaignId}/contacts/on-demand/by-request-id/{requestId}","href":"/api-reference/on-demand-calls/cancel-call-by-request-id"}]},{"group":"Agents","icon":"robot","pages":[{"title":"Get guidelines","openapi":"api-reference/openapi.yaml GET /api/v1/assistants/{assistantId}/guidelines","href":"/api-reference/agents/get-guidelines"},{"title":"Replace guidelines","openapi":"api-reference/openapi.yaml PUT /api/v1/assistants/{assistantId}/guidelines","href":"/api-reference/agents/replace-guidelines"},{"title":"Publish an agent","openapi":"api-reference/openapi.yaml POST /api/v1/assistants/{assistantId}/publish","href":"/api-reference/agents/publish-agent"},{"title":"Get publish status","openapi":"api-reference/openapi.yaml GET /api/v1/assistants/{assistantId}/publish-jobs/{jobId}","href":"/api-reference/agents/get-publish-status"},{"title":"Get live version","openapi":"api-reference/openapi.yaml GET /api/v1/assistants/{assistantId}/live-version","href":"/api-reference/agents/get-live-version"}]}]}]},"basePath":"","title":"Authentication - SquawkVoice AI Agent Platform","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":[],"chunks":[]}