Your own identifier for the key — typically the customer it belongs to.
Email
Contact address associated with the key.
KeyType
Usage (default) or Admin.
Parallelism
How many nests this key may run concurrently.
Expires
Optional expiry. Omit for a key that never expires.
Trial
Request a time-boxed trial key (only meaningful on a paid plan).
The response is a ClientKey carrying the new ApiKey secret. Store it when you receive it.
Key creation is subject to your plan’s active-key cap. Expired and revoked keys don’t count
towards it.
For a key used from a browser, restrict which origins may call the API with it. Origins
are matched exactly — scheme, host, and (non-default) port must all match.
For local development add your dev server’s exact origin, e.g. http://localhost:3000 —
http://localhost:3000, https://localhost:3000, and http://localhost:5173 are all
distinct.
Keep long-lived keys server-side. Never ship an unrestricted key in browser or mobile code.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"NestAPI Documentation","colors":{"primary":"#0D9373","light":"#07C983","dark":"#0D9373"},"logo":{"light":"https://mintcdn.com/dev-nestapi/UAxgnvyRVTOip4yc/images/logo-light.svg?fit=max\u0026auto=format\u0026n=UAxgnvyRVTOip4yc\u0026q=85\u0026s=570d4e4a3fdf3b7f0ba2c4034ec4d91d","dark":"https://mintcdn.com/dev-nestapi/UAxgnvyRVTOip4yc/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=UAxgnvyRVTOip4yc\u0026q=85\u0026s=af74b596120cc6670cf3eb61fc8a0308"},"favicon":"https://mintcdn.com/dev-nestapi/UAxgnvyRVTOip4yc/images/favicon.svg?fit=max\u0026auto=format\u0026n=UAxgnvyRVTOip4yc\u0026q=85\u0026s=3cba8c02399d1d5f6404e423bfbeb50b","navbar":{"links":[{"href":"https://app.nestapi.com/","label":"Sign Up for Trial"}]},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"dev-nestapi","hasAudioNarration":false,"actualSubdomain":"dev-nestapi","customDomains":["dev-docs.nestapi.com"],"gitSource":{"type":"github","owner":"efficientsoftwareltd","repo":"efficient.nestapi.docs","deployBranch":"development","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"1f82ee9f-9723-4a6d-8dac-4288bbf26155","liveDeploymentHistoryId":"6ae8c4a8f8e61e223f92ac5a","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae8c4a8f8e61e223f92ac5a"},"entitlements":{},"buildId":"6ae8cdd7744d76616a182d9a","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API Reference","count":35},{"language":"default","tag":"Account \u0026 keys","count":12},{"language":"default","tag":"Nesting","count":7},{"language":"default","tag":"Results \u0026 exports","count":6},{"language":"default","tag":"Concepts","count":5},{"language":"default","tag":"Guides","count":5},{"language":"default","tag":"Run \u0026 track","count":5},{"language":"default","tag":"Fairness","count":4},{"language":"default","tag":"Account","count":3},{"language":"default","tag":"Getting Started","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"account/api-keys","slug":"/account/api-keys","pageMetadata":{"title":"API keys","description":"Key classes, programmatic lifecycle management, and browser-origin (CORS) control.","href":"/account/api-keys"},"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: \"Key classes, programmatic lifecycle management, and browser-origin (CORS) control.\"\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`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Table,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`An `,_jsx(_components.strong,{children:`API key`}),` authenticates every request as a Bearer token (see `,_jsx(_components.a,{href:`/authentication`,children:`Authentication`}),`).\nKeys come in two classes:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Class`}),_jsx(_components.th,{children:`Can do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Usage`})}),_jsx(_components.td,{children:`Submit nesting requests. The default.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Admin`})}),_jsxs(_components.td,{children:[`Everything a Usage key can, plus manage the account’s keys, browser origins, and `,_jsx(_components.a,{href:`/account/fairness`,children:`fairness`}),`.`]})]})]})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The management endpoints on this page require an `,_jsx(_components.strong,{children:`Admin`}),` key (or the account owner signed\nin to the dashboard). A Usage key calling them is rejected.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`managing-keys`,children:`Managing keys`}),`\n`,_jsx(_components.p,{children:`The full key lifecycle is API-callable, so you can issue a key per customer from your own\nonboarding flow rather than working through the dashboard.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Endpoint`}),_jsx(_components.th,{children:`Method`}),_jsx(_components.th,{children:`Purpose`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`/admin/keys`})}),_jsx(_components.td,{children:`GET`}),_jsx(_components.td,{children:`List the account’s keys, including expired ones, with their type and fairness weight`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`/admin/keys`})}),_jsx(_components.td,{children:`POST`}),_jsx(_components.td,{children:`Create a key`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`/admin/keys/{ApiKeyId}`})}),_jsx(_components.td,{children:`DELETE`}),_jsx(_components.td,{children:`Revoke a key`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`/admin/keys/{ApiKeyId}/regenerate`})}),_jsx(_components.td,{children:`POST`}),_jsx(_components.td,{children:`Rotate a key’s secret`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`/admin/keys/{ApiKeyId}/type`})}),_jsx(_components.td,{children:`PATCH`}),_jsx(_components.td,{children:`Change a key between Usage and Admin`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`/admin/keys/{ApiKeyId}/weight`})}),_jsx(_components.td,{children:`PATCH`}),_jsxs(_components.td,{children:[`Set the key’s `,_jsx(_components.a,{href:`/account/fairness`,children:`fairness weight`})]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`listing-keys`,children:`Listing keys`}),`\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://dev.api.nestapi.com/admin/keys`}),_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:` \"Authorization: Bearer YOUR_ADMIN_KEY\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The list includes keys that have expired, so you can see and revoke them. Revoked keys are\nnot listed. Each `,_jsx(_components.code,{children:`ClientKey`}),` carries two flags:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Expired`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`true`}),` once the key’s `,_jsx(_components.code,{children:`Expires`}),` date has passed. An expired key is rejected on every request.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`IsActive`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`true`}),` when the key is neither expired nor revoked. Filter on this to find the keys that still work.`]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`creating-a-key`,children:`Creating a key`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,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:`11`,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://dev.api.nestapi.com/admin/keys`}),_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:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_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:` \"Authorization: Bearer YOUR_ADMIN_KEY\"`}),_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:` \"Content-Type: application/json\"`}),_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:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Reference\": \"acme-corp\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Email\": \"ops@acme.example.com\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"KeyType\": \"Usage\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Parallelism\": 2,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Expires\": \"2027-01-01T00:00:00Z\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Reference`})}),_jsx(_components.td,{children:`Your own identifier for the key — typically the customer it belongs to.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Email`})}),_jsx(_components.td,{children:`Contact address associated with the key.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`KeyType`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Usage`}),` (default) or `,_jsx(_components.code,{children:`Admin`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Parallelism`})}),_jsx(_components.td,{children:`How many nests this key may run concurrently.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Expires`})}),_jsx(_components.td,{children:`Optional expiry. Omit for a key that never expires.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Trial`})}),_jsx(_components.td,{children:`Request a time-boxed trial key (only meaningful on a paid plan).`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`The response is a `,_jsx(_components.code,{children:`ClientKey`}),` carrying the new `,_jsx(_components.code,{children:`ApiKey`}),` secret. Store it when you receive it.\nKey creation is subject to your plan’s active-key cap. Expired and revoked keys don’t count\ntowards it.`]}),`\n`,_jsx(Heading,{level:`3`,id:`rotating-a-key`,children:`Rotating a key`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,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:`3`,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://dev.api.nestapi.com/admin/keys/THE_KEY_ID/regenerate`}),_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:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_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:` \"Authorization: Bearer YOUR_ADMIN_KEY\"`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Regeneration carries the key’s reference, expiry, type, parallelism, fairness weight, and\nallowed origins forward onto the new secret.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`The old secret stops working `,_jsx(_components.strong,{children:`immediately`}),` — there is no overlap window. Update the\nintegration with the returned key as part of the same operation.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`revoking-a-key`,children:`Revoking a key`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,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:`3`,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://dev.api.nestapi.com/admin/keys/THE_KEY_ID`}),_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:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` DELETE`}),_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:` \"Authorization: Bearer YOUR_ADMIN_KEY\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`To check a key you already hold — validity and expiry — see\n`,_jsx(_components.a,{href:`/account/profile`,children:`Identity \u0026 key status`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`browser-origins-cors`,children:`Browser origins (CORS)`}),`\n`,_jsxs(_components.p,{children:[`For a key used from a browser, restrict which `,_jsx(_components.strong,{children:`origins`}),` may call the API with it. Origins\nare matched `,_jsx(_components.strong,{children:`exactly`}),` — scheme, host, and (non-default) port must all match.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Endpoint`}),_jsx(_components.th,{children:`Method`}),_jsx(_components.th,{children:`Purpose`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`/apikeys/{KeyId}/origins`})}),_jsx(_components.td,{children:`GET`}),_jsx(_components.td,{children:`List allowed origins`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`/apikeys/{KeyId}/origins`})}),_jsx(_components.td,{children:`POST`}),_jsx(_components.td,{children:`Add an allowed origin`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`/apikeys/{KeyId}/origins`})}),_jsx(_components.td,{children:`DELETE`}),_jsx(_components.td,{children:`Remove an allowed origin`})]})]})]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,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:`5`,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://dev.api.nestapi.com/apikeys/YOUR_KEY_ID/origins`}),_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:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_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:` \"Authorization: Bearer YOUR_ADMIN_KEY\"`}),_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:` \"Content-Type: application/json\"`}),_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:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{ \"Origin\": \"https://app.example.com\" }'`})]}),`\n`]})})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`For local development add your dev server’s exact origin, e.g. `,_jsx(_components.code,{children:`http://localhost:3000`}),` —\n`,_jsx(_components.code,{children:`http://localhost:3000`}),`, `,_jsx(_components.code,{children:`https://localhost:3000`}),`, and `,_jsx(_components.code,{children:`http://localhost:5173`}),` are all\ndistinct.`]})}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Keep long-lived keys server-side. Never ship an unrestricted key in browser or mobile code.`})})]})}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":"API keys","description":"Key classes, programmatic lifecycle management, and browser-origin (CORS) control.","href":"/account/api-keys"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Managing keys","slug":"managing-keys","depth":2,"children":[{"title":"Listing keys","slug":"listing-keys","depth":3,"children":[]},{"title":"Creating a key","slug":"creating-a-key","depth":3,"children":[]},{"title":"Rotating a key","slug":"rotating-a-key","depth":3,"children":[]},{"title":"Revoking a key","slug":"revoking-a-key","depth":3,"children":[]}]},{"title":"Browser origins (CORS)","slug":"browser-origins-cors","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"dev-nestapi","siteName":"NestAPI Documentation","title":"API keys - NestAPI Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T17:13:33.872Z","originalFileLocation":"account/api-keys.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=\"Key classes, programmatic lifecycle management, and browser-origin (CORS) control.\">\u003cmeta data-mint-head name=\"application-name\" content=\"NestAPI Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/dev-nestapi/B0iKdJqwikgQNLws/_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/dev-nestapi/B0iKdJqwikgQNLws/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/dev-nestapi/B0iKdJqwikgQNLws/_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/dev-nestapi/B0iKdJqwikgQNLws/_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/dev-nestapi/B0iKdJqwikgQNLws/_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/dev-nestapi/B0iKdJqwikgQNLws/_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/dev-nestapi/B0iKdJqwikgQNLws/_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/dev-nestapi/B0iKdJqwikgQNLws/_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/dev-nestapi/B0iKdJqwikgQNLws/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"API keys - NestAPI Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Key classes, programmatic lifecycle management, and browser-origin (CORS) control.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"NestAPI Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://dev-docs.nestapi.com/account/api-keys\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://dev-nestapi.mintlify.app/_mintlify/api/og/v2?division=Account\u0026amp;title=API+keys\u0026amp;description=Key+classes%2C+programmatic+lifecycle+management%2C+and+browser-origin+%28CORS%29+control.\u0026amp;theme=73f7472777e17440bdf0549e\u0026amp;signature=1cbea0f6d5ef5ecba22420e4f84da361ac758768f82de85de25212835bde2e72\">\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=\"API keys - NestAPI Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Key classes, programmatic lifecycle management, and browser-origin (CORS) control.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://dev-nestapi.mintlify.app/_mintlify/api/og/v2?division=Account\u0026amp;title=API+keys\u0026amp;description=Key+classes%2C+programmatic+lifecycle+management%2C+and+browser-origin+%28CORS%29+control.\u0026amp;theme=73f7472777e17440bdf0549e\u0026amp;signature=1cbea0f6d5ef5ecba22420e4f84da361ac758768f82de85de25212835bde2e72\">\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/dev-nestapi/B0iKdJqwikgQNLws/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"NestAPI Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0D9373\">\u003clink data-mint-head rel=\"canonical\" href=\"https://dev-docs.nestapi.com/account/api-keys\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/account/api-keys.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://dev-docs.nestapi.com/#organization\",\"name\":\"NestAPI Documentation\",\"url\":\"https://dev-docs.nestapi.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/dev-nestapi/UAxgnvyRVTOip4yc/images/logo-light.svg?fit=max\u0026auto=format\u0026n=UAxgnvyRVTOip4yc\u0026q=85\u0026s=570d4e4a3fdf3b7f0ba2c4034ec4d91d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://dev-docs.nestapi.com#website\",\"name\":\"NestAPI Documentation\",\"url\":\"https://dev-docs.nestapi.com\",\"publisher\":{\"@id\":\"https://dev-docs.nestapi.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://dev-docs.nestapi.com/account/api-keys#webpage\",\"url\":\"https://dev-docs.nestapi.com/account/api-keys\",\"name\":\"API keys\",\"description\":\"Key classes, programmatic lifecycle management, and browser-origin (CORS) control.\",\"dateModified\":\"2026-11-02T17:13:33.872Z\",\"isPartOf\":{\"@id\":\"https://dev-docs.nestapi.com#website\"},\"breadcrumb\":{\"@id\":\"https://dev-docs.nestapi.com/account/api-keys#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://dev-docs.nestapi.com/account/api-keys#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"NestAPI Documentation\",\"item\":\"https://dev-docs.nestapi.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API keys\",\"item\":\"https://dev-docs.nestapi.com/account/api-keys\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://dev-docs.nestapi.com/account/api-keys#article\",\"headline\":\"API keys\",\"name\":\"API keys\",\"description\":\"Key classes, programmatic lifecycle management, and browser-origin (CORS) control.\",\"url\":\"https://dev-docs.nestapi.com/account/api-keys\",\"mainEntityOfPage\":{\"@id\":\"https://dev-docs.nestapi.com/account/api-keys#webpage\"},\"dateModified\":\"2026-11-02T17:13:33.872Z\",\"publisher\":{\"@id\":\"https://dev-docs.nestapi.com/#organization\"},\"isPartOf\":{\"@id\":\"https://dev-docs.nestapi.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"NestAPI Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"NestAPI Documentation","nav":{"global":null,"groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"Authentication","href":"/authentication"},{"title":"Quickstart","href":"/quickstart"}]},{"group":"Guides","pages":[{"title":"Nesting workflow","href":"/guides/nesting-workflow"},{"title":"Webhooks","href":"/guides/webhooks"},{"title":"Geometry types","href":"/guides/geometry-types"},{"title":"Quote nesting","href":"/guides/quote-nesting"},{"title":"1D nesting","href":"/guides/1d-nesting"}]},{"group":"Concepts","pages":[{"title":"Parts and sheets","href":"/concepts/parts-and-sheets"},{"title":"SimpleGeometry","href":"/concepts/simple-geometry"},{"title":"Nesting settings","href":"/concepts/nesting-settings"},{"title":"Common cutting","href":"/concepts/common-cutting"},{"title":"Export types","description":"Turning a completed nest into production output and reports, and how each export is delivered.","href":"/concepts/export-types"}]},{"group":"Account","pages":[{"title":"API keys","href":"/account/api-keys"},{"title":"Fairness","description":"Share your account's nesting minutes fairly across the customers you resell to.","href":"/account/fairness"},{"title":"Identity \u0026 account status","href":"/account/profile"}]},{"group":"API Reference","pages":[{"group":"Nesting","pages":[{"title":"Nest from DXF files","deprecated":false,"version":null,"openapi":"/openapi.json post /v1/nesting","href":"/api-reference/nesting/nest-from-dxf-files"},{"title":"Nest from encoded geometry","deprecated":false,"version":null,"openapi":"/openapi.json post /v1/nesting/geometry","href":"/api-reference/nesting/nest-from-encoded-geometry"},{"title":"Nest from parametric parts","deprecated":false,"version":null,"openapi":"/openapi.json post /v1/nesting/parametric","href":"/api-reference/nesting/nest-from-parametric-parts"},{"title":"Nest from MyNesting XML","deprecated":false,"version":null,"openapi":"/openapi.json post /v1/nesting/mynesting","href":"/api-reference/nesting/nest-from-mynesting-xml"},{"title":"Quote nest from DXF files","deprecated":false,"version":null,"openapi":"/openapi.json post /v1/nesting/quotenesting","href":"/api-reference/nesting/quote-nest-from-dxf-files"},{"title":"Quote nest from encoded geometry","deprecated":false,"version":null,"openapi":"/openapi.json post /v1/nesting/geometryquotenesting","href":"/api-reference/nesting/quote-nest-from-encoded-geometry"},{"title":"Nest 1D / linear stock","deprecated":false,"version":null,"openapi":"/openapi.json post /v1/nesting/1D","href":"/api-reference/nesting/nest-1d-linear-stock"}]},{"group":"Run \u0026 track","pages":[{"title":"Start a delayed nest (after connecting to SignalR)","deprecated":false,"version":null,"openapi":"/openapi.json post /v1/nesting/delayedstart","href":"/api-reference/nesting/start-a-delayed-nest-after-connecting-to-signalr"},{"title":"Continue a quote nest to the next sub-nest","deprecated":false,"version":null,"openapi":"/openapi.json post /v1/nesting/continue","href":"/api-reference/nesting/continue-a-quote-nest-to-the-next-sub-nest"},{"title":"Get the status of a nesting request","deprecated":false,"version":null,"openapi":"/openapi.json get /v1/nesting/status","href":"/api-reference/nesting/get-the-status-of-a-nesting-request"},{"title":"Recent successful nests (last 24 hours)","deprecated":false,"version":null,"openapi":"/openapi.json get /v1/nesting/successes","href":"/api-reference/nesting/recent-successful-nests-last-24-hours"},{"title":"Recent failed nests (last 24 hours)","deprecated":false,"version":null,"openapi":"/openapi.json get /v1/nesting/failures","href":"/api-reference/nesting/recent-failed-nests-last-24-hours"}]},{"group":"Results \u0026 exports","pages":[{"title":"Fetch the report-source result for a completed nest","deprecated":false,"version":null,"openapi":"/openapi.json post /v1/nesting/result/","href":"/api-reference/nesting/fetch-the-report-source-result-for-a-completed-nest"},{"title":"Fetch a 1D nesting result","deprecated":false,"version":null,"openapi":"/openapi.json post /v1/nesting/1D/result","href":"/api-reference/nesting/fetch-a-1d-nesting-result"},{"title":"Render a completed nest","deprecated":false,"version":null,"openapi":"/openapi.json get /v1/nesting/render/","href":"/api-reference/nesting/render-a-completed-nest"},{"title":"Generate a production export for a completed nest","deprecated":false,"version":null,"openapi":"/openapi.json get /v1/nesting/export","href":"/api-reference/nesting/generate-a-production-export-for-a-completed-nest"},{"title":"Generate an export for a completed quote nest","deprecated":false,"version":null,"openapi":"/openapi.json get /v1/nesting/exportquotenest","href":"/api-reference/nesting/generate-an-export-for-a-completed-quote-nest"},{"title":"Fetch a cached export (SignalR result generation)","deprecated":false,"version":null,"openapi":"/openapi.json get /v1/nesting/export/cached","href":"/api-reference/nesting/fetch-a-cached-export-signalr-result-generation"}]},{"group":"Account \u0026 keys","pages":[{"title":"Get your account profile","deprecated":false,"version":null,"openapi":"/openapi.json get /v1/user/profile","href":"/api-reference/account/get-your-account-profile"},{"title":"Get your account's subscription status","deprecated":false,"version":null,"openapi":"/openapi.json get /v1/status","href":"/api-reference/account/get-your-accounts-subscription-status"},{"title":"Validate your API key","deprecated":false,"version":null,"openapi":"/openapi.json get /v1/auth/validate","href":"/api-reference/account/validate-your-api-key"},{"title":"Check when your API key expires","deprecated":false,"version":null,"openapi":"/openapi.json get /v1/apiKey/validUntil","href":"/api-reference/account/check-when-your-api-key-expires"},{"title":"List the account's API keys","deprecated":false,"version":null,"openapi":"/openapi.json get /admin/keys","href":"/api-reference/account/list-the-accounts-api-keys"},{"title":"Create an API key","deprecated":false,"version":null,"openapi":"/openapi.json post /admin/keys","href":"/api-reference/account/create-an-api-key"},{"title":"Regenerate an API key","deprecated":false,"version":null,"openapi":"/openapi.json post /admin/keys/{ApiKeyId}/regenerate","href":"/api-reference/account/regenerate-an-api-key"},{"title":"Set a key's Admin/Usage type","deprecated":false,"version":null,"openapi":"/openapi.json patch /admin/keys/{ApiKeyId}/type","href":"/api-reference/account/set-a-keys-adminusage-type"},{"title":"Revoke an API key","deprecated":false,"version":null,"openapi":"/openapi.json delete /admin/keys/{ApiKeyId}","href":"/api-reference/account/revoke-an-api-key"},{"title":"List allowed origins for an API key","deprecated":false,"version":null,"openapi":"/openapi.json get /apikeys/{KeyId}/origins","href":"/api-reference/account/list-allowed-origins-for-an-api-key"},{"title":"Add an allowed origin to an API key","deprecated":false,"version":null,"openapi":"/openapi.json post /apikeys/{KeyId}/origins","href":"/api-reference/account/add-an-allowed-origin-to-an-api-key"},{"title":"Remove an allowed origin from an API key","deprecated":false,"version":null,"openapi":"/openapi.json delete /apikeys/{KeyId}/origins","href":"/api-reference/account/remove-an-allowed-origin-from-an-api-key"}]},{"group":"Fairness","pages":[{"title":"Get the account's per-customer fairness configuration","deprecated":false,"version":null,"openapi":"/openapi.json get /admin/fairness/config","href":"/api-reference/fairness/get-the-accounts-per-customer-fairness-configuration"},{"title":"Update the account's per-customer fairness configuration","deprecated":false,"version":null,"openapi":"/openapi.json patch /admin/fairness/config","href":"/api-reference/fairness/update-the-accounts-per-customer-fairness-configuration"},{"title":"Set a key's fairness weight","deprecated":false,"version":null,"openapi":"/openapi.json patch /admin/keys/{ApiKeyId}/weight","href":"/api-reference/fairness/set-a-keys-fairness-weight"},{"title":"Per-customer nesting-minutes usage breakdown","deprecated":false,"version":null,"openapi":"/openapi.json get /usage/fairness","href":"/api-reference/fairness/per-customer-nesting-minutes-usage-breakdown"}]},{"group":"Service","pages":[{"title":"Endpoint to check if the api is alive","deprecated":false,"version":null,"openapi":"/openapi.json get /public/alive","href":"/api-reference/public/endpoint-to-check-if-the-api-is-alive"}]}]}]},"basePath":"","title":"API keys - NestAPI Documentation","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}