Sets or clears the spending limit of a personal (owned) key. The body is {"max": <number>, "unit": "tokens" or "dollars", "time_window": "calendar_month" or "calendar_day"}, or null to clear the budget. max must be a finite number above zero, and a whole number of tokens when unit is tokens. Every token_rate_limiter policy with key_budgets that counts in that unit holds the key to this budget in place of its aggregate; a policy counting in the other unit keeps its own limit. The secret, the expiry and the consumers of the key do not change, and a rotation keeps the budget. An application key answers 422 application_key; an invalid body answers 422 validation_failed.
PUT
/
v1
/
gateways
/
{gateway_id}
/
auths
/
{id}
/
budget
Error
A valid request URL is required to generate request examples
Consumers are the consumers this auth reaches, which is what a caller
needs before revoking one: a key can be attached to several, so
disabling it stops more than the endpoint the reader was looking at.
Empty means it reaches none, which is an answer rather than a gap.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"NeuralTrust Docs | TrustGate, TrustGuard, TrustTest","description":"API reference and setup guides for TrustGate, TrustGuard, and TrustTest. Govern AI agents, MCP servers, and LLM providers from one runtime control plane.","colors":{"primary":"#9053FF","light":"#A370FF","dark":"#BF9BFF"},"logo":{"light":"https://mintcdn.com/neuraltrust-92b43583/uNVOSJ7qsknkbejG/images/static/img/logo.svg?fit=max\u0026auto=format\u0026n=uNVOSJ7qsknkbejG\u0026q=85\u0026s=2b2e25fafc85176de5bf94ee1929b2b9","dark":"https://mintcdn.com/neuraltrust-92b43583/uNVOSJ7qsknkbejG/images/static/img/logo_white.svg?fit=max\u0026auto=format\u0026n=uNVOSJ7qsknkbejG\u0026q=85\u0026s=870090ea7a37358af41c1487fc9bd88f","href":"/"},"favicon":"https://mintcdn.com/neuraltrust-92b43583/uNVOSJ7qsknkbejG/images/static/img/favicon.svg?fit=max\u0026auto=format\u0026n=uNVOSJ7qsknkbejG\u0026q=85\u0026s=ae5d93c965009b7d859e75b9e331aeda","appearance":{"default":"dark"},"background":{"decoration":"grid"},"navbar":{"links":[{"href":"/support","label":"Support"}],"primary":{"type":"button","label":"Console","href":"https://app.neuraltrust.ai"}},"footer":{"socials":{"x":"https://x.com/NeuralTrustAI","github":"https://github.com/NeuralTrust","linkedin":"https://www.linkedin.com/company/neuraltrust"}},"seo":{"metatags":{"og:image":"https://docs.neuraltrust.ai/images/og-image.png","og:site_name":"NeuralTrust Docs","og:type":"website","twitter:card":"summary_large_image","twitter:site":"@NeuralTrustAI","twitter:image":"https://docs.neuraltrust.ai/images/og-image.png"},"organization":{"id":"https://docs.neuraltrust.ai/#organization","name":"NeuralTrust","url":"https://neuraltrust.ai","logo":"https://docs.neuraltrust.ai/images/static/img/logo.svg","sameAs":["https://x.com/NeuralTrustAI","https://github.com/NeuralTrust","https://www.linkedin.com/company/neuraltrust"]},"indexing":"all"},"fonts":{"family":"Inter"},"icons":{"library":"lucide"},"styling":{"eyebrows":"breadcrumbs","latex":false},"interaction":{"drilldown":false},"markdown":{"instructions":"These docs cover three products: TrustGate (AI agent gateway), TrustGuard (runtime security), and TrustTest (AI red teaming). Start from each product overview for the definition and How it works. Prefer the .md URL next to a page in /llms.txt when you need the full article. Use /llms-full.txt for a single-file dump of the site."},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://neuraltrust.ai/blog"},{"anchor":"GitHub","icon":"folder-git-2","href":"https://github.com/NeuralTrust"},{"anchor":"Community","icon":"globe","href":"https://neuraltrustcommunity.slack.com/join/shared_invite/zt-2xl47cag6-_HFNpltIULnA3wh4R6AqBg"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"neuraltrust-92b43583","hasAudioNarration":false,"actualSubdomain":"neuraltrust-92b43583","customDomains":["docs.neuraltrust.ai"],"gitSource":{"type":"github","owner":"neuraltrust","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae494c2ab76b29675b1f7a3","collectionId":"4224c912-a86b-4068-ba32-0143d7002223","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae494c2ab76b29675b1f7a3"},"entitlements":{},"buildId":"6ae85cce6e6e556c3ab6d587","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"TrustGate","count":108},{"language":"default","tag":"Products","count":97},{"language":"default","tag":"API \u0026 SDKs","count":71},{"language":"default","tag":"Platform","count":40},{"language":"default","tag":"TrustTest","count":37},{"language":"default","tag":"Integrations","count":28},{"language":"default","tag":"Deployment","count":17},{"language":"default","tag":"Policies","count":16},{"language":"default","tag":"LLM Gateway","count":13},{"language":"default","tag":"TrustGuard","count":13}]},"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":"style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3lQ6H-1_WfwkMZI_qYFrItlRvjvks.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3lQ6H-1_WfwkMZI_qYFrItnBvjvks.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3lQ6H-1_WfwkMZI_qYFrItIjrGg3IU.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3lQ6H-1_WfwkMZI_qYFrItlxvjvks.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3lQ6H-1_WfwkMZI_qYFrItlhvjvks.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3lQ6H-1_WfwkMZI_qYFrItmBvj.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Inter';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCm3FwrK3iLTcvnUwkT9nA2.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Inter';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCm3FwrK3iLTcvnUwAT9nA2.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek-ext */\n@font-face {\n font-family: 'Inter';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCm3FwrK3iLTcvnUwgT9nA2.woff2) format('woff2');\n unicode-range: U+1F00-1FFF;\n}\n/* greek */\n@font-face {\n font-family: 'Inter';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCm3FwrK3iLTcvnUwcT9nA2.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inter';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCm3FwrK3iLTcvnUwsT9nA2.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: 'Inter';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCm3FwrK3iLTcvnUwoT9nA2.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: 'Inter';\n font-style: italic;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCm3FwrK3iLTcvnUwQT9g.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCo3FwrK3iLTcvvYwYL8g.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCo3FwrK3iLTcvmYwYL8g.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* greek-ext */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCo3FwrK3iLTcvuYwYL8g.woff2) format('woff2');\n unicode-range: U+1F00-1FFF;\n}\n/* greek */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCo3FwrK3iLTcvhYwYL8g.woff2) format('woff2');\n unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCo3FwrK3iLTcvtYwYL8g.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: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCo3FwrK3iLTcvsYwYL8g.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: 'Inter';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/inter/v20/UcCo3FwrK3iLTcviYwY.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@font-face{font-family:\"General Sans\";src:url(/fonts/GeneralSans-Regular.woff2) format(\"woff2\");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:\"General Sans\";src:url(/fonts/GeneralSans-Italic.woff2) format(\"woff2\");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:\"General Sans\";src:url(/fonts/GeneralSans-Medium.woff2) format(\"woff2\");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:\"General Sans\";src:url(/fonts/GeneralSans-Semibold.woff2) format(\"woff2\");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:\"General Sans\";src:url(/fonts/GeneralSans-Bold.woff2) format(\"woff2\");font-weight:700;font-style:normal;font-display:swap}:root{--font-sans:\"Inter\", system-ui, arial, sans-serif;--font-display:\"General Sans\", var(--font-sans);--font-inter:var(--font-sans);--font-geist-mono:\"Geist Mono\", \"Menlo\", \"Monaco\", \"Lucida Console\",\n \"Liberation Mono\", \"DejaVu Sans Mono\", \"Bitstream Vera Sans Mono\", \"Courier New\",\n monospace;--docs-sidebar-width:17rem;--docs-top-padding-inline:0.75rem;--nt-brand:#9053ff;--nt-brand-hover:#7b3ff0;--nt-fg:#18181b;--nt-fg-muted:#5c5c66;--nt-border:#e4e4e7;--nt-line:#d4d4d8;--nt-line-strong:#c4c4cc;--nt-card:#ffffff;--nt-card-hover:#fafafa;--nt-panel:#f4f4f5;--nt-radius:0.5rem;--nt-body:#3f3f46;--nt-link:#6d35e0;--nt-link-hover:#5a26c7;--nt-link-line:rgba(144, 83, 255, 0.35)}.dark{--nt-fg:#f4f4f5;--nt-fg-muted:#a1a1aa;--nt-border:#27272a;--nt-line:#2a2a2f;--nt-line-strong:#3f3f46;--nt-card:#18181b;--nt-card-hover:#1f1f23;--nt-panel:#111113;--nt-body:#c4c4cc;--nt-link:#c7a8ff;--nt-link-hover:#e0cfff;--nt-link-line:rgba(191, 155, 255, 0.35)}#navbar,#sidebar,#sidebar-content,body,mdx-content,navbar,sidebar,sidebar-content{font-family:var(--font-sans);font-feature-settings:normal;font-variant-numeric:normal;font-variant-ligatures:normal}#navbar,navbar{padding-block:0;padding-left:0;padding-right:var(--docs-top-padding-inline);box-sizing:border-box}#navbar [class*=border-b]{border-bottom-width:1px!important;border-bottom-color:var(--nt-line)!important}#navbar :has(>a[href=\"/\"] .nav-logo){flex:0 0 auto!important;gap:.5rem!important;padding-right:0!important}@media (min-width:1024px){#navbar a[href=\"/\"]:has(.nav-logo){margin-inline-start:-.9rem}#navbar :has(>a[href=\"/\"] .nav-logo){flex:0 0 calc(var(--docs-sidebar-width) - 2.25rem)!important;width:calc(var(--docs-sidebar-width) - 2.25rem)!important;max-width:calc(var(--docs-sidebar-width) - 2.25rem)!important;align-items:center!important}#navbar :has(>a[href=\"/\"] .nav-logo)>div::before{content:\"Docs\";display:inline-flex;align-items:center;height:1.25rem;padding:0 .4rem;border:1px solid var(--nt-line);border-radius:999px;font-size:.625rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;line-height:1;color:var(--nt-fg-muted);white-space:nowrap}#navbar::after{content:\"\";position:absolute;left:calc(var(--docs-sidebar-width) - 1px);top:.7rem;bottom:.7rem;width:1px;background:var(--nt-line);z-index:40;pointer-events:none}}#navbar nav[aria-label=Main]{justify-content:flex-start;align-items:center;margin-inline-start:.85rem;padding-inline:0}#navbar nav[aria-label=Main] ul{align-items:center;gap:.15rem!important}#navbar nav[aria-label=Main] a,#navbar nav[aria-label=Main] button{display:inline-flex!important;align-items:center!important;height:2rem!important;padding-inline:.55rem!important;border-radius:.375rem!important;background:0 0!important;box-shadow:none!important;line-height:1!important;gap:.2rem!important}#navbar nav[aria-label=Main] a:hover,#navbar nav[aria-label=Main] button:hover{background:0 0!important}#navbar nav[aria-label=Main] svg[style*=mask-image],#theme-preference-menu-item-system,[data-testid=theme-preference-system],[data-theme-preference=system]{display:none!important}#navbar nav[aria-label=Main] button>svg:last-child{width:.65rem;height:.65rem;opacity:.5;position:relative;top:.04em}#navbar .navbar-link a{border-color:transparent!important;background:0 0!important;color:var(--nt-fg-muted)!important;padding-inline:.55rem!important}#navbar .navbar-link a:hover{color:var(--nt-fg)!important;background:0 0!important}[role=menu]:has(.nav-dropdown-item){width:max-content!important;min-width:26rem!important;max-width:min(36rem,90vw)!important}.nav-dropdown-item .text-xs{white-space:nowrap}#pagination{display:none}.code,.hljs,code,pre{font-family:var(--font-geist-mono)}.font-inter,.font-sans{font-family:var(--font-sans)}.font-mono{font-family:var(--font-geist-mono)}mdx-content em,mdx-content i{font-style:italic;font-synthesis:none}mdx-content h1,mdx-content h2,mdx-content h3,mdx-content h4,mdx-content h5,mdx-content h6,mdx-content p{font-feature-settings:\"ss01\" 0,\"ss02\" 0,\"ss03\" 0;font-variant-alternates:normal}mdx-content h1{letter-spacing:-.03em}#content-area h2,#content-area h3,#content-area h4,#page-title,.nt-home-section-title,.nt-home-title,.nt-section-title,.nt-title,mdx-content h1,mdx-content h2,mdx-content h3,mdx-content h4{font-family:var(--font-display)}#content-area{letter-spacing:-.011em}#content-area li,#content-area span[data-as=p]{color:var(--nt-body)}#content-area a.link:not([class*=nt-]){color:var(--nt-link);font-weight:inherit;border-bottom:1px solid var(--nt-link-line);transition:border-color 140ms ease,color 140ms ease}#content-area a.link:not([class*=nt-]):hover{color:var(--nt-link-hover);border-bottom-color:currentColor}#content-area a.link:not([class*=nt-]) code,#content-area a.link:not([class*=nt-]) strong{color:inherit}mdx-content h2{letter-spacing:-.02em;margin-top:2.25rem}#sidebar,#sidebar-content,sidebar,sidebar-content{width:var(--docs-sidebar-width)!important;min-width:var(--docs-sidebar-width)!important}#sidebar-content,sidebar-content{padding-top:0!important;margin-top:0!important;border-right:1px solid var(--nt-line)}@media (min-width:1024px){#navbar.is-not-custom~#body-content{padding-left:var(--docs-sidebar-width)!important}#navbar.is-not-custom~#body-content #content-area{margin-left:max(0px,calc(50vw - 348px - var(--docs-sidebar-width)))!important}}#sidebar-content [data-component-part=scroll-area-viewport]{padding-top:1.35rem!important}#sidebar-content ul:has(>li>.nav-anchor){padding-bottom:.85rem;margin-bottom:.85rem;border-bottom:1px solid var(--nt-line)}.nav-anchor,nav-anchor{margin-bottom:.35rem}#table-of-contents,#table-of-contents-layout{border-left:1px solid var(--nt-line)}@media (max-width:1023px){#sidebar,#sidebar-content,sidebar,sidebar-content{width:min(100vw,20rem)!important;min-width:unset!important}}mdx-content img{border-radius:.75rem}.nt-lead{margin:0 0 1.5rem;max-width:42rem;font-size:1.125rem;line-height:1.6;color:var(--nt-fg-muted)}.nt-home,.nt-page{box-sizing:border-box;margin:0 auto;max-width:68rem;padding:4.5rem 1.5rem 6.5rem;color:var(--nt-fg)}.nt-page-narrow{max-width:56rem}.nt-hero,.nt-home-hero{max-width:44rem;padding-bottom:1rem}.nt-card-kicker,.nt-home-card-kicker,.nt-home-kicker,.nt-kicker{margin:0;letter-spacing:.08em;text-transform:uppercase}.nt-card-kicker,.nt-home-card-kicker{font-size:.75rem;font-weight:600;color:var(--nt-brand)}.nt-home-kicker,.nt-kicker{font-size:.8125rem;font-weight:500;color:var(--nt-fg-muted)}.nt-home-title,.nt-title{margin:0;font-size:clamp(2.125rem,4vw,2.75rem);font-weight:600;letter-spacing:-.035em;line-height:1.15;color:var(--nt-fg)}.nt-title-sm{font-size:clamp(1.875rem,3vw,2.5rem)}.nt-title-end{white-space:nowrap}.nt-home-lede,.nt-lede{margin:.85rem 0 0;max-width:36rem;font-size:1.0625rem;line-height:1.6;color:var(--nt-fg-muted)}.nt-actions,.nt-home-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.nt-intro{max-width:42rem;margin-top:2rem;font-size:1.0625rem;line-height:1.65;color:var(--nt-fg-muted)}.nt-intro p{margin:0 0 .85rem}.nt-intro p:last-child{margin-bottom:0}.nt-pair{display:grid;grid-template-columns:1fr;gap:.75rem;margin-top:2.75rem;align-items:stretch}@media (min-width:880px){.nt-pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.nt-pair-stack{gap:.75rem;min-width:0}.nt-pair-stack #providers{flex:1 1 auto;display:flex;flex-direction:column}.nt-int-card .nt-logo-wall,.nt-pair-stack #providers .nt-logo-wall{flex:1}.nt-int-card,.nt-pair-stack{height:100%;display:flex;flex-direction:column}.nt-harness{margin-top:0;padding:.85rem .95rem .8rem;border:1px solid var(--nt-line);border-radius:var(--nt-radius);background:var(--nt-card);min-width:0}.nt-pair .nt-harness-row,.nt-pair .nt-logo-wall{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;margin-top:.55rem;align-content:start}.nt-pair .nt-harness-item,.nt-pair .nt-logo-tile{min-height:2.75rem}.nt-pair .nt-logo-tile{flex-direction:row;align-items:center;justify-content:flex-start;gap:.5rem;padding:.4rem .55rem;background:var(--nt-panel)}.nt-pair .nt-logo-tile .nt-brand-mark,.nt-pair .nt-logo-tile .nt-harness-logo,.nt-pair .nt-logo-tile img{width:1.2rem;height:1.2rem}.nt-pair .nt-harness-name,.nt-pair .nt-logo-tile span:last-child{min-width:0;font-size:.8125rem;font-weight:600;letter-spacing:-.015em;line-height:1.2;text-align:left;color:var(--nt-fg)}.nt-int-head{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:.5rem;min-height:0}.nt-int-head .nt-harness-kicker{min-width:0}.nt-int-head .nt-text-link{margin-top:0;flex-shrink:0;font-size:.75rem}.nt-logo-wall{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-top:1.35rem}@media (min-width:768px){.nt-logo-wall{grid-template-columns:repeat(6,minmax(0,1fr))}}.nt-logo-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;min-height:5.4rem;padding:.7rem .4rem .65rem;border:1px solid var(--nt-border);border-radius:.4rem;background:var(--nt-card);text-decoration:none;color:var(--nt-fg);transition:background-color 140ms ease,border-color 140ms ease}.nt-logo-tile:hover{background:var(--nt-card-hover);border-color:var(--nt-line-strong);color:var(--nt-fg)}.nt-logo-tile .nt-brand-mark,.nt-logo-tile .nt-harness-logo,.nt-logo-tile img{width:1.45rem;height:1.45rem}.nt-logo-tile img{display:block;object-fit:contain}.nt-brand-mark{display:block;flex-shrink:0;background-position:center;background-size:contain;background-repeat:no-repeat}.nt-mark-openai{background-image:url(/images/integrations/logos/openai.svg)}.nt-mark-claude{background-image:url(/images/integrations/logos/claude.svg)}.nt-mark-gemini{background-image:url(/images/integrations/logos/gemini.svg)}.nt-mark-antigravity{background-image:url(/images/integrations/logos/antigravity.png)}.nt-mark-microsoft{background-image:url(/images/integrations/logos/microsoft.svg)}.nt-mark-kong{background-image:url(/images/integrations/logos/kong.svg)}.nt-mark-azure{background-image:url(/images/integrations/logos/azure.svg)}.nt-mark-langchain{background-image:url(/images/integrations/logos/langchain.svg)}.nt-mark-strands{background-image:url(/images/integrations/logos/strands.svg)}.nt-mark-n8n{background-image:url(/images/integrations/logos/n8n.svg)}.nt-mark-python{background-image:url(/images/integrations/logos/python.svg)}.nt-mark-node{background-image:url(/images/integrations/logos/nodedotjs.svg)}.nt-mark-aws{background-image:url(/images/integrations/logos/aws.svg)}.dark .nt-mark-aws{background-image:url(/images/integrations/logos/aws-dark.svg)}.nt-mark-googlecloud{background-image:url(/images/integrations/logos/googlecloud.svg)}.nt-logo-tile img[src$=\".png\"]{border-radius:.28rem}.nt-logo-tile span:last-child{font-size:.6875rem;font-weight:500;letter-spacing:-.01em;text-align:center;line-height:1.25;color:var(--nt-fg-muted)}.nt-harness-kicker{margin:0;font-size:.6875rem;font-weight:600;letter-spacing:.02em;line-height:1.2;text-transform:uppercase;color:var(--nt-fg-muted)}.nt-harness-row{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-top:.55rem}@media (min-width:768px){.nt-harness-row{grid-template-columns:repeat(4,minmax(0,1fr))}}.nt-harness-item{display:flex;align-items:center;gap:.5rem;min-height:2.55rem;padding:.4rem .55rem;border:1px solid var(--nt-border);border-radius:.4rem;background:var(--nt-panel);text-decoration:none;color:var(--nt-fg);transition:background-color 140ms ease,border-color 140ms ease}.nt-harness-item:hover{background:var(--nt-card-hover);border-color:var(--nt-line-strong);color:var(--nt-fg)}.nt-harness-logo{display:block;width:1.2rem;height:1.2rem;flex-shrink:0;background:currentColor;-webkit-mask:var(--nt-logo) center/contain no-repeat;mask:var(--nt-logo) center/contain no-repeat}.nt-logo-claude{--nt-logo:url(\"/images/integrations/logos/claude.svg\");background-color:#d97757}.nt-logo-cursor{--nt-logo:url(\"/images/integrations/logos/cursor.svg\")}.nt-logo-openai{--nt-logo:url(\"/images/integrations/logos/openai.svg\");background-color:#10a37f}.nt-logo-gemini{--nt-logo:url(\"/images/integrations/logos/gemini.svg\");background-color:#4285f4}.nt-logo-copilot{--nt-logo:url(\"/images/integrations/logos/copilot.svg\")}.nt-logo-windsurf{--nt-logo:url(\"/images/integrations/logos/windsurf.svg\")}.nt-logo-vercel{--nt-logo:url(\"/images/integrations/logos/vercel.svg\")}.nt-harness-name{font-size:.875rem;font-weight:600;letter-spacing:-.01em}.nt-btn,.nt-home-btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.25rem;padding:.4rem .9rem;border-radius:.375rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:background-color 140ms ease,color 140ms ease,border-color 140ms ease}.nt-btn-primary,.nt-home-btn-primary{background:var(--nt-brand);color:#fff}.nt-btn-primary:hover,.nt-home-btn-primary:hover{background:var(--nt-brand-hover);color:#fff}.nt-btn-ghost,.nt-home-btn-ghost{border:1px solid var(--nt-border);background:0 0;color:var(--nt-fg)}.nt-btn-ghost:hover,.nt-home-btn-ghost:hover{background:var(--nt-card-hover);color:var(--nt-fg)}.nt-home-section,.nt-section{margin-top:5.5rem}.nt-home-section-title,.nt-section-title{margin:0;font-size:1.375rem;font-weight:600;letter-spacing:-.025em;color:var(--nt-fg)}.nt-home-section-lede,.nt-section-lede{margin:.5rem 0 0;font-size:1rem;color:var(--nt-fg-muted)}.nt-section-follow{margin-top:1.25rem}.nt-grid,.nt-home-platform,.nt-home-products{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:1.5rem}@media (min-width:768px){.nt-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.nt-grid-3,.nt-home-platform,.nt-home-products{grid-template-columns:repeat(3,minmax(0,1fr))}}.nt-card,.nt-home-card{display:flex;flex-direction:column;min-height:100%;padding:1.35rem 1.35rem 1.15rem;border:1px solid var(--nt-border);border-radius:var(--nt-radius);background:var(--nt-card);text-decoration:none;color:inherit;transition:background-color 140ms ease,box-shadow 140ms ease}.nt-card:hover,.nt-home-card:hover,a.nt-card:hover{background:var(--nt-card-hover);box-shadow:0 1px 2px rgb(0 0 0/.04)}.nt-card-title,.nt-home-card-title{margin:.5rem 0 0;font-size:1.25rem;font-weight:600;letter-spacing:-.02em;line-height:1.3;color:var(--nt-fg)}.nt-card-title-solo{margin:0;font-size:1.0625rem}.nt-card-body,.nt-home-card-body{margin:.75rem 0 0;flex:1;font-size:.9375rem;line-height:1.55;color:var(--nt-fg-muted)}.nt-card-cta,.nt-home-card-cta{display:inline-flex;margin-top:1.25rem;font-size:.9375rem;font-weight:600;color:var(--nt-brand);text-decoration:none}.nt-card-cta:hover,.nt-home-card-cta:hover{color:var(--nt-brand-hover)}.nt-card-links,.nt-home-card-links{display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--nt-border)}.nt-card-links a,.nt-home-card-links a{font-size:.8125rem;font-weight:500;color:var(--nt-fg-muted);text-decoration:none}.nt-callout strong,.nt-card-links a:hover,.nt-home-card-links a:hover{color:var(--nt-fg)}.nt-home-mini,.nt-mini{display:block;padding:1.25rem 1.25rem 1.15rem;border:1px solid var(--nt-border);border-radius:var(--nt-radius);background:var(--nt-card);text-decoration:none;transition:background-color 140ms ease}.nt-home-mini:hover,.nt-mini:hover{background:var(--nt-card-hover)}.nt-flow-step h3,.nt-home-mini h3,.nt-mini h3{margin:0;font-size:1rem;font-weight:600;color:var(--nt-fg)}.nt-home-mini p,.nt-mini p{margin:.4rem 0 0;font-size:.875rem;line-height:1.5;color:var(--nt-fg-muted)}.nt-img{display:block;width:100%;max-width:48rem;margin:2rem 0 0;border-radius:.75rem}.nt-callout{margin:1.75rem 0 0;padding:.9rem 1rem;border:1px solid var(--nt-border);border-left:3px solid var(--nt-brand);border-radius:.6rem;background:var(--nt-card);font-size:.9375rem;line-height:1.55;color:var(--nt-fg-muted)}.nt-table-wrap{margin-top:1.25rem;overflow-x:auto}.nt-table{width:100%;border-collapse:collapse;font-size:.9375rem}.nt-table td,.nt-table th{padding:.7rem .85rem;border-bottom:1px solid var(--nt-border);text-align:left;vertical-align:top}.nt-table th{font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--nt-fg-muted)}.nt-pre,.nt-table td{color:var(--nt-fg)}.nt-table a{color:var(--nt-brand);text-decoration:none}.nt-table a:hover{color:var(--nt-brand-hover)}.nt-pre{margin:1.25rem 0 0;padding:1rem 1.1rem;overflow-x:auto;border:1px solid var(--nt-border);border-radius:.75rem;background:var(--nt-card);font-family:var(--font-geist-mono);font-size:.8125rem;line-height:1.55}.nt-faq-list{margin-top:1.25rem}.nt-faq-list>.nt-faq:first-child,.steps [data-component-part=step-content]>:first-child{margin-top:0}.nt-faq{margin-top:.75rem;border:1px solid var(--nt-border);border-radius:.75rem;background:var(--nt-card);overflow:hidden}.nt-faq+.nt-faq{margin-top:.5rem}.nt-dir-item h3,.nt-faq-q,.nt-use-item h3{margin:0;font-weight:600;color:var(--nt-fg)}.nt-faq-q{padding:.9rem 1rem .35rem;font-size:1rem;letter-spacing:-.015em}.nt-faq p{margin:0;padding:0 1rem 1rem;font-size:.9375rem;line-height:1.55;color:var(--nt-fg-muted)}.nt-faq a{color:var(--nt-brand)}.nt-flow{display:grid;grid-template-columns:1fr;gap:.75rem;margin-top:1.5rem}@media (min-width:768px){.nt-flow{grid-template-columns:1fr auto 1fr auto 1fr;align-items:stretch}}.nt-flow-step{padding:1.15rem 1.2rem;border:1px solid var(--nt-border);border-radius:1rem;background:var(--nt-card)}.nt-dir-item p,.nt-flow-step p,.nt-use-item p{margin:.4rem 0 0;font-size:.875rem;line-height:1.5;color:var(--nt-fg-muted)}.nt-flow-arrow{display:none;align-self:center;color:var(--nt-fg-muted);font-size:1.25rem}@media (min-width:768px){.nt-flow-arrow{display:block}}.nt-text-link{display:inline-flex;margin-top:1.1rem;font-size:.9375rem;font-weight:600;color:var(--nt-brand);text-decoration:none}.nt-text-link:hover{color:var(--nt-brand-hover)}.nt-feature{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:2.75rem;padding:2rem 0 2.25rem;border-top:1px solid var(--nt-border)}@media (min-width:880px){.nt-feature{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:2rem;align-items:stretch}}.nt-dir-item span,.nt-feature-name,.nt-use-item span{font-size:.8125rem;font-weight:600;color:var(--nt-brand)}.nt-feature-name{display:flex;align-items:center;gap:.55rem;margin:0}.nt-product-icon{display:inline-flex;align-items:center;justify-content:center;width:1.85rem;height:1.85rem;flex-shrink:0;border:1px solid var(--nt-border);border-radius:.4rem;background:var(--nt-panel)}.nt-product-icon::before{content:\"\";display:block;width:1.05rem;height:1.05rem;background:var(--nt-fg);-webkit-mask:var(--nt-icon) center/contain no-repeat;mask:var(--nt-icon) center/contain no-repeat}.nt-icon-gate{--nt-icon:url(\"/images/static/img/icon-sparkles.svg\")}.nt-icon-guard{--nt-icon:url(\"/images/static/img/icon-shield.svg\")}.nt-icon-test{--nt-icon:url(\"/images/static/img/icon-crosshair.svg\")}.nt-feature-title{margin:.4rem 0 0;font-size:1.375rem;font-weight:600;letter-spacing:-.025em;line-height:1.25;color:var(--nt-fg)}.nt-feature-body{margin:.7rem 0 0;max-width:34rem;font-size:.9375rem;line-height:1.6;color:var(--nt-fg-muted)}.nt-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.15rem}.nt-chips a,.nt-use-more a{font-weight:500;color:var(--nt-fg-muted);text-decoration:none}.nt-chips a{display:inline-flex;align-items:center;min-height:1.6rem;padding:0 .55rem;border:1px solid var(--nt-border);border-radius:999px;background:var(--nt-card);font-size:.75rem}.nt-feature-panel{min-width:0;height:100%}.nt-feature-panel>*{margin-top:0;height:100%}.nt-dir{display:grid;grid-template-columns:1fr;gap:.75rem;margin-top:1.5rem}@media (min-width:768px){.nt-dir{grid-template-columns:repeat(3,minmax(0,1fr))}.nt-dir-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.nt-dir-item{display:flex;flex-direction:column;min-height:100%;padding:1.15rem 1.15rem 1.05rem;border:1px solid var(--nt-border);border-radius:var(--nt-radius);background:var(--nt-card);text-decoration:none}.nt-chips a:hover,.nt-dir-item:hover,.nt-use-item:hover{background:var(--nt-card-hover)}.nt-dir-item h3,.nt-use-item h3{font-size:.975rem}.nt-dir-item p,.nt-use-item p{flex:1}.nt-dir-item span,.nt-use-item span{margin-top:.9rem}.nt-use{display:grid;grid-template-columns:1fr;gap:.75rem;margin-top:1.5rem}@media (min-width:768px){.nt-use{grid-template-columns:repeat(2,minmax(0,1fr))}}.nt-use-item{display:flex;flex-direction:column;min-height:100%;padding:1.15rem 1.15rem 1.05rem;border:1px solid var(--nt-border);border-radius:var(--nt-radius);background:var(--nt-card);text-decoration:none}.nt-use-more{display:flex;flex-wrap:wrap;gap:.65rem 1.15rem;margin-top:1.15rem}.nt-use-more a{font-size:.875rem}.nt-chips a:hover,.nt-use-more a:hover{color:var(--nt-fg)}@media (max-width:639px){.nt-home,.nt-page{padding:2.75rem 1.15rem 4.5rem}.nt-home-section,.nt-section{margin-top:3.5rem}.nt-feature{margin-top:1.75rem;padding:1.5rem 0 1.75rem}}#content-area .card-group{gap:.7rem!important;row-gap:.7rem!important}#content-area .card{margin:0!important;overflow:hidden;border-radius:var(--nt-radius)!important;border-color:var(--nt-border)!important;background:var(--nt-card)!important;box-shadow:none!important;--tw-ring-shadow:0 0 #0000;transition:background-color 140ms ease,border-color 140ms ease}#content-area .card:focus,#content-area .card:focus-visible,#content-area .card:hover{background:var(--nt-card-hover)!important;outline:0!important;box-shadow:none!important}@layer theme{#content-area .card:is(:hover, :focus, :focus-visible){border-color:var(--nt-line-strong)!important}}#content-area [data-component-part=card-content-container]{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;column-gap:.7rem;padding:.95rem 1.05rem 1rem!important}#content-area [data-component-part=card-icon]{display:flex!important;align-items:center;justify-content:center;width:1.7rem!important;height:1.7rem!important;margin-top:.05rem;border:1px solid var(--nt-border);border-radius:.4rem;background:var(--nt-panel)}#content-area [data-component-part=card-icon] svg{width:.9rem!important;height:.9rem!important;background-color:var(--nt-fg)!important}#content-area [data-component-part=card-content-container]>.w-full{display:flex;flex-direction:column;gap:.3rem;min-width:0}#content-area [data-component-part=card-title]{margin:0!important;font-size:.9375rem!important;font-weight:600!important;letter-spacing:-.02em;line-height:1.3!important;color:var(--nt-fg)!important}#content-area [data-component-part=card-content]{margin:0!important;font-size:.8125rem!important;line-height:1.5!important;color:var(--nt-fg-muted)!important}#content-area [data-component-part=card-content] span[data-as=p]{display:block}td img,td>img{display:inline;vertical-align:middle;margin:0 6px 0 0}#content-area img.nt-diagram{display:block;margin:2.5rem 0}.steps{--nt-step-size:1.75rem;margin-left:calc(var(--nt-step-size)/2)}.steps .step-container{padding-bottom:1.75rem}.steps [data-component-part=step-number]{margin-left:calc(var(--nt-step-size)/-2);padding-top:.3rem;padding-bottom:.3rem}.steps [data-component-part=step-indicator]{width:var(--nt-step-size);height:var(--nt-step-size);border:1px solid var(--nt-line);border-radius:999px;background:var(--nt-panel);color:var(--nt-fg);font-family:var(--font-sans);font-size:.8125rem;font-weight:600;font-variant-numeric:tabular-nums}.steps [data-component-part=step-line]{top:calc(var(--nt-step-size) + .85rem);height:calc(100% - var(--nt-step-size) - .85rem);background:var(--nt-line)}.steps .step-container:last-child [data-component-part=step-line]{background:linear-gradient(to bottom,var(--nt-line),transparent)}.steps [data-component-part=step-number]+div{padding-left:calc(var(--nt-step-size)/2 + 1rem)}.steps [data-component-part=step-title]{margin-top:calc(.3rem + (var(--nt-step-size) - 2rem)/2);margin-bottom:.6rem;color:var(--nt-fg);font-family:var(--font-display);font-size:1.375rem;font-weight:500;line-height:2rem;letter-spacing:-.02em}.steps p[data-component-part=step-title]{font-size:1.0625rem;font-weight:600;letter-spacing:-.01em}@media (max-width:640px){.steps [data-component-part=step-number]+div{padding-left:calc(var(--nt-step-size)/2 + .75rem)}.steps [data-component-part=step-title]{font-size:1.25rem}}.nt-mark-trustgate{background-image:url(/images/integrations/logos/trustgate.svg)}.nt-mark-portkey{background-image:url(/images/integrations/logos/portkey.png)}.nt-mark-litellm{background-image:url(/images/integrations/logos/litellm.png)}.nt-mark-langfuse{background-image:url(/images/integrations/logos/langfuse.svg)}.nt-mark-open-webui{background-image:url(/images/integrations/logos/open-webui.svg)}.nt-logo-haystack{--nt-logo:url(\"/images/integrations/logos/haystack.svg\")}.nt-logo-go{--nt-logo:url(\"/images/integrations/logos/go.svg\")}.nt-logo-code{--nt-logo:url(\"/images/integrations/logos/code.svg\")}.nt-logo-globe{--nt-logo:url(\"/images/integrations/logos/globe.svg\")}.nt-cat-legend{display:grid;gap:.5rem;margin:1.5rem 0 .5rem}@media (min-width:768px){.nt-cat-legend{grid-template-columns:1fr 1fr}}.nt-cat-legend-item,.nt-cat-sub{color:var(--nt-fg-muted);font-size:.875rem}.nt-cat-legend-item{display:flex;align-items:baseline;gap:.6rem;padding:.7rem .85rem;border:1px solid var(--nt-border);border-radius:var(--nt-radius);background:var(--nt-panel);line-height:1.45;text-decoration:none;border-bottom:1px solid var(--nt-border)!important}.nt-cat-legend-item:hover{border-color:var(--nt-line-strong)!important;color:var(--nt-fg)}.nt-cat-sub{margin:-.5rem 0 1rem;line-height:1.5}.nt-cat-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem;margin-bottom:2.5rem}@media (min-width:480px){.nt-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.nt-cat-card,.nt-cat-logo{display:flex;align-items:center}.nt-cat-card{position:relative;gap:.75rem;min-height:3.6rem;padding:.7rem 2.1rem .7rem .85rem;border:1px solid var(--nt-border);border-bottom:1px solid var(--nt-border)!important;border-radius:var(--nt-radius);background:var(--nt-card);color:var(--nt-fg);text-decoration:none;transition:background-color 140ms ease,border-color 140ms ease}.nt-cat-card::after{content:\"\";position:absolute;right:.9rem;top:50%;width:.45rem;height:.45rem;border-top:1.5px solid var(--nt-fg-muted);border-right:1.5px solid var(--nt-fg-muted);transform:translateY(-50%) rotate(45deg);transition:transform 140ms ease,border-color 140ms ease}.nt-cat-card:hover{border-color:var(--nt-line-strong);border-bottom-color:var(--nt-line-strong)!important;background:var(--nt-card-hover);color:var(--nt-fg)}.nt-cat-card:hover::after{border-color:var(--nt-brand);transform:translate(2px,-50%) rotate(45deg)}.nt-cat-logo{justify-content:center;width:1.4rem;height:1.4rem;flex-shrink:0}.nt-cat-logo.nt-harness-logo{width:1.3rem;height:1.3rem}.nt-cat-icon{color:var(--nt-fg-muted)}.nt-cat-text{display:flex;flex-direction:column;gap:.3rem;min-width:0}.nt-cat-name{overflow:hidden;font-size:.9rem;font-weight:600;letter-spacing:-.01em;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.nt-cat-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}.nt-cat-tag{display:inline-block;padding:.05rem .4rem;border:1px solid var(--nt-border);border-radius:999px;color:var(--nt-fg-muted);font-size:.6875rem;font-weight:500;letter-spacing:0;line-height:1.45;white-space:nowrap}.nt-cat-note{color:var(--nt-fg-muted);font-size:.72rem;line-height:1.3}#content-area .nt-cat-legend-item{color:var(--nt-fg-muted);font-weight:400}#content-area .nt-cat-legend-item:hover{color:var(--nt-fg)}#content-area .nt-cat-card{font-weight:400}"}],"page":{"pagePath":"api-reference/auths/set-the-budget-of-a-personal-key","slug":"/api-reference/auths/set-the-budget-of-a-personal-key","pageMetadata":{"title":"Set the budget of a personal key","description":"Sets or clears the spending limit of a personal (owned) key. The body is {\"max\": \u003cnumber>, \"unit\": \"tokens\" or \"dollars\", \"time_window\": \"calendar_month\" or \"calendar_day\"}, or null to clear the budget. max must be a finite number above zero, and a whole number of tokens when unit is tokens. Every token_rate_limiter policy with key_budgets that counts in that unit holds the key to this budget in place of its aggregate; a policy counting in the other unit keeps its own limit. The secret, the expiry and the consumers of the key do not change, and a rotation keeps the budget. An application key answers 422 application_key; an invalid body answers 422 validation_failed.","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json put /v1/gateways/{gateway_id}/auths/{id}/budget","href":"/api-reference/auths/set-the-budget-of-a-personal-key","autogeneratedByOpenApi":true},"description":"Sets or clears the spending limit of a personal (owned) key. The body is {\"max\": \u003cnumber>, \"unit\": \"tokens\" or \"dollars\", \"time_window\": \"calendar_month\" or \"calendar_day\"}, or null to clear the budget. max must be a finite number above zero, and a whole number of tokens when unit is tokens. Every token_rate_limiter policy with key_budgets that counts in that unit holds the key to this budget in place of its aggregate; a policy counting in the other unit keeps its own limit. The secret, the expiry and the consumers of the key do not change, and a rotation keeps the budget. An application key answers 422 application_key; an invalid body answers 422 validation_failed.","pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Set the budget of a personal key","description":"Sets or clears the spending limit of a personal (owned) key. The body is {\"max\": \u003cnumber>, \"unit\": \"tokens\" or \"dollars\", \"time_window\": \"calendar_month\" or \"calendar_day\"}, or null to clear the budget. max must be a finite number above zero, and a whole number of tokens when unit is tokens. Every token_rate_limiter policy with key_budgets that counts in that unit holds the key to this budget in place of its aggregate; a policy counting in the other unit keeps its own limit. The secret, the expiry and the consumers of the key do not change, and a rotation keeps the budget. An application key answers 422 application_key; an invalid body answers 422 validation_failed.","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json put /v1/gateways/{gateway_id}/auths/{id}/budget","href":"/api-reference/auths/set-the-budget-of-a-personal-key","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Sets or clears the spending limit of a personal (owned) key. The body is {\"max\": \u003cnumber>, \"unit\": \"tokens\" or \"dollars\", \"time_window\": \"calendar_month\" or \"calendar_day\"}, or null to clear the budget. max must be a finite number above zero, and a whole number of tokens when unit is tokens. Every token_rate_limiter policy with key_budgets that counts in that unit holds the key to this budget in place of its aggregate; a policy counting in the other unit keeps its own limit. The secret, the expiry and the consumers of the key do not change, and a rotation keeps the budget. An application key answers 422 application_key; an invalid body answers 422 validation_failed.","tags":["auths"],"summary":"Set the budget of a personal key","parameters":["e0f2ddb4-b92d-4e26-879d-a9a4755f2718","adb90ae3-6c79-48f5-b8dd-9eaf7d373874"],"requestBody":"28992aec-fc72-41cc-908a-396a983230a3","responses":{"200":"043acdb5-d647-4d4b-9d4a-04a53d4c8f79","400":"5a0eb5f2-24f1-4327-87a7-7060883e322e","401":"451fa0a1-c6f0-4cf6-ad9e-07cac69653d9","404":"856e9b2c-690a-4c6a-a5fb-654a4d77f747","422":"dc20194f-51e0-49a7-9057-b178b30074f1"},"security":["17c6e617-c979-40e5-a0b9-ed2bc3bd3ec7"],"method":"put","type":"path","servers":["3b821c48-ad83-4f78-a5e9-36553f77be1a"],"path":"/v1/gateways/{gateway_id}/auths/{id}/budget","baseUrlOptions":["/"],"title":"Set the budget of a personal key","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"e0f2ddb4-b92d-4e26-879d-a9a4755f2718":{"description":"Gateway id","name":"gateway_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"description":"Gateway id","uniqueKey":"","typeLabel":"string\u003cuuid>"}},"adb90ae3-6c79-48f5-b8dd-9eaf7d373874":{"description":"Auth id","name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"description":"Auth id","uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"max":{"type":"number","example":50,"uniqueKey":"max","typeLabel":"number"},"time_window":{"type":"string","enum":["calendar_month","calendar_day"],"example":"calendar_month","uniqueKey":"time_window","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["tokens","dollars"],"example":"dollars","uniqueKey":"unit","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"max":50,"time_window":"calendar_month","unit":"dollars"}}},"exampleType":"generated"}},"description":"The budget, or null to clear it","required":true,"exampleType":"generated"},"responses":{"043acdb5-d647-4d4b-9d4a-04a53d4c8f79":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"api_key":{"description":"#nosec G101","type":"string","uniqueKey":"api_key","typeLabel":"string"},"budget":{"type":"object","description":"Budget is the spending limit of a personal key. Absent means it has none.","properties":{"max":{"type":"number","uniqueKey":"budget.max","typeLabel":"number"},"time_window":{"type":"string","enum":["calendar_month","calendar_day"],"uniqueKey":"budget.time_window","typeLabel":"enum\u003cstring>"},"unit":{"type":"string","enum":["tokens","dollars"],"uniqueKey":"budget.unit","typeLabel":"enum\u003cstring>"}},"uniqueKey":"budget","typeLabel":"object"},"config":{"type":"object","properties":{"mtls":{"type":"object","properties":{"allowed_common_names":{"type":"array","items":{"type":"string","uniqueKey":"config.mtls.allowed_common_names.items.[INDEX]","typeLabel":"string"},"uniqueKey":"config.mtls.allowed_common_names","typeLabel":"string[]"},"allowed_dns_names":{"type":"array","items":{"type":"string","uniqueKey":"config.mtls.allowed_dns_names.items.[INDEX]","typeLabel":"string"},"uniqueKey":"config.mtls.allowed_dns_names","typeLabel":"string[]"},"allowed_fingerprints":{"type":"array","items":{"type":"string","uniqueKey":"config.mtls.allowed_fingerprints.items.[INDEX]","typeLabel":"string"},"uniqueKey":"config.mtls.allowed_fingerprints","typeLabel":"string[]"},"ca_cert":{"type":"string","uniqueKey":"config.mtls.ca_cert","typeLabel":"string"}},"uniqueKey":"config.mtls","typeLabel":"object"},"oauth2":{"type":"object","properties":{"allowed_algorithms":{"type":"array","items":{"type":"string","uniqueKey":"config.oauth2.allowed_algorithms.items.[INDEX]","typeLabel":"string"},"uniqueKey":"config.oauth2.allowed_algorithms","typeLabel":"string[]"},"audiences":{"type":"array","items":{"type":"string","uniqueKey":"config.oauth2.audiences.items.[INDEX]","typeLabel":"string"},"uniqueKey":"config.oauth2.audiences","typeLabel":"string[]"},"authorize_url":{"type":"string","uniqueKey":"config.oauth2.authorize_url","typeLabel":"string"},"client_id":{"type":"string","uniqueKey":"config.oauth2.client_id","typeLabel":"string"},"client_secret":{"type":"string","uniqueKey":"config.oauth2.client_secret","typeLabel":"string"},"exchange_client_id":{"description":"ExchangeClientID and ExchangeClientSecret sign on-behalf-of and token\nexchanges; the secret is masked.","type":"string","uniqueKey":"config.oauth2.exchange_client_id","typeLabel":"string"},"exchange_client_secret":{"description":"#nosec G117 -- masked before serialization","type":"string","uniqueKey":"config.oauth2.exchange_client_secret","typeLabel":"string"},"introspection_url":{"type":"string","uniqueKey":"config.oauth2.introspection_url","typeLabel":"string"},"issuer":{"type":"string","uniqueKey":"config.oauth2.issuer","typeLabel":"string"},"jwks_url":{"type":"string","uniqueKey":"config.oauth2.jwks_url","typeLabel":"string"},"login_scopes":{"type":"array","items":{"type":"string","uniqueKey":"config.oauth2.login_scopes.items.[INDEX]","typeLabel":"string"},"uniqueKey":"config.oauth2.login_scopes","typeLabel":"string[]"},"public_keys":{"type":"array","items":{"type":"string","uniqueKey":"config.oauth2.public_keys.items.[INDEX]","typeLabel":"string"},"uniqueKey":"config.oauth2.public_keys","typeLabel":"string[]"},"required_scopes":{"type":"array","items":{"type":"string","uniqueKey":"config.oauth2.required_scopes.items.[INDEX]","typeLabel":"string"},"uniqueKey":"config.oauth2.required_scopes","typeLabel":"string[]"},"session_mode":{"type":"boolean","uniqueKey":"config.oauth2.session_mode","typeLabel":"boolean"},"subject_claim":{"type":"string","uniqueKey":"config.oauth2.subject_claim","typeLabel":"string"},"token_url":{"type":"string","uniqueKey":"config.oauth2.token_url","typeLabel":"string"},"userinfo_url":{"type":"string","uniqueKey":"config.oauth2.userinfo_url","typeLabel":"string"}},"uniqueKey":"config.oauth2","typeLabel":"object"}},"uniqueKey":"config","typeLabel":"object"},"consumers":{"description":"Consumers are the consumers this auth reaches, which is what a caller\nneeds before revoking one: a key can be attached to several, so\ndisabling it stops more than the endpoint the reader was looking at.\nEmpty means it reaches none, which is an answer rather than a gap.","type":"array","items":{"type":"object","properties":{"id":{"type":"string","uniqueKey":"consumers.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","uniqueKey":"consumers.items.[INDEX].name","typeLabel":"string"},"slug":{"type":"string","uniqueKey":"consumers.items.[INDEX].slug","typeLabel":"string"},"type":{"type":"string","uniqueKey":"consumers.items.[INDEX].type","typeLabel":"string"}},"uniqueKey":"consumers.items.[INDEX]","typeLabel":"object"},"uniqueKey":"consumers","typeLabel":"object[]"},"created_at":{"type":"string","uniqueKey":"created_at","typeLabel":"string"},"enabled":{"type":"boolean","uniqueKey":"enabled","typeLabel":"boolean"},"expires_at":{"description":"When the key retires itself. Absent means it never does.","type":"string","uniqueKey":"expires_at","typeLabel":"string"},"gateway_id":{"type":"string","uniqueKey":"gateway_id","typeLabel":"string"},"group_id":{"description":"GroupID is the directory group a group key is held for, which its spend\nis attributed to. Absent on the owner's personal key and on application\nkeys.","type":"string","uniqueKey":"group_id","typeLabel":"string"},"group_name":{"description":"GroupName is GroupID's directory name, which the MCP Store matches the\nkey's access against. Absent wherever GroupID is.","type":"string","uniqueKey":"group_name","typeLabel":"string"},"id":{"type":"string","uniqueKey":"id","typeLabel":"string"},"key_prefix":{"description":"Non-secret recognition hint for api_key auths (e.g. \"ag_3dlXk\" + \"Rv8Q\").","type":"string","uniqueKey":"key_prefix","typeLabel":"string"},"key_suffix":{"type":"string","uniqueKey":"key_suffix","typeLabel":"string"},"name":{"type":"string","uniqueKey":"name","typeLabel":"string"},"owner_email":{"description":"OwnerEmail is the email of a personal key's owner, which the key's calls\nare shown under. Absent means none was recorded.","type":"string","uniqueKey":"owner_email","typeLabel":"string"},"owner_groups":{"description":"OwnerGroups are the directory groups of a personal key's owner, as the\nplatform last reported them. Absent means none were reported.","type":"array","items":{"type":"string","uniqueKey":"owner_groups.items.[INDEX]","typeLabel":"string"},"uniqueKey":"owner_groups","typeLabel":"string[]"},"owner_id":{"type":"string","uniqueKey":"owner_id","typeLabel":"string"},"type":{"type":"string","uniqueKey":"type","typeLabel":"string"},"updated_at":{"type":"string","uniqueKey":"updated_at","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"api_key":"\u003cstring>","budget":{"max":123,"time_window":"calendar_month","unit":"tokens"},"config":{"mtls":{"allowed_common_names":["\u003cstring>"],"allowed_dns_names":["\u003cstring>"],"allowed_fingerprints":["\u003cstring>"],"ca_cert":"\u003cstring>"},"oauth2":{"allowed_algorithms":["\u003cstring>"],"audiences":["\u003cstring>"],"authorize_url":"\u003cstring>","client_id":"\u003cstring>","client_secret":"\u003cstring>","exchange_client_id":"\u003cstring>","exchange_client_secret":"\u003cstring>","introspection_url":"\u003cstring>","issuer":"\u003cstring>","jwks_url":"\u003cstring>","login_scopes":["\u003cstring>"],"public_keys":["\u003cstring>"],"required_scopes":["\u003cstring>"],"session_mode":true,"subject_claim":"\u003cstring>","token_url":"\u003cstring>","userinfo_url":"\u003cstring>"}},"consumers":[{"id":"\u003cstring>","name":"\u003cstring>","slug":"\u003cstring>","type":"\u003cstring>"}],"created_at":"\u003cstring>","enabled":true,"expires_at":"\u003cstring>","gateway_id":"\u003cstring>","group_id":"\u003cstring>","group_name":"\u003cstring>","id":"\u003cstring>","key_prefix":"\u003cstring>","key_suffix":"\u003cstring>","name":"\u003cstring>","owner_email":"\u003cstring>","owner_groups":["\u003cstring>"],"owner_id":"\u003cstring>","type":"\u003cstring>","updated_at":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"5a0eb5f2-24f1-4327-87a7-7060883e322e":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"451fa0a1-c6f0-4cf6-ad9e-07cac69653d9":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"856e9b2c-690a-4c6a-a5fb-654a4d77f747":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"dc20194f-51e0-49a7-9057-b178b30074f1":{"description":"An application key (application_key), or an invalid budget (validation_failed)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","uniqueKey":"message","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"17c6e617-c979-40e5-a0b9-ed2bc3bd3ec7":{"BearerAuth":{"type":"apiKey","name":"Authorization","in":"header","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"3b821c48-ad83-4f78-a5e9-36553f77be1a":{"url":"/"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","name":"Authorization","in":"header","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Authorization","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"trustgate/api/openapi.json"},"subdomain":"neuraltrust-92b43583","siteName":"NeuralTrust Docs | TrustGate, TrustGuard, TrustTest","title":"Set the budget of a personal key - NeuralTrust Docs | TrustGate, TrustGuard, TrustTest","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T09:50:11.786Z","originalFileLocation":"api-reference/auths/set-the-budget-of-a-personal-key.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Sets or clears the spending limit of a personal (owned) key. The body is {\u0026quot;max\u0026quot;: , \u0026quot;unit\u0026quot;: \u0026quot;tokens\u0026quot; or \u0026quot;dollars\u0026quot;, \u0026quot;time_window\u0026quot;: \u0026quot;calendar_month\u0026quot; or \u0026quot;calendar_day\u0026quot;}, or null to clear the budget. max must be a finite number above zero, and a whole number of tokens when unit is tokens. Every token_rate_limiter policy with key_budgets that counts in that unit holds the key to this budget in place of its aggregate; a policy counting in the other unit keeps its own limit. The secret, the expiry and the consumers of the key do not change, and a rotation keeps the budget. An application key answers 422 application_key; an invalid body answers 422 validation_failed.\">\u003cmeta data-mint-head name=\"application-name\" content=\"NeuralTrust Docs | TrustGate, TrustGuard, TrustTest\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/neuraltrust-92b43583/YHmtcOygyX0UykKQ/_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/neuraltrust-92b43583/YHmtcOygyX0UykKQ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/neuraltrust-92b43583/YHmtcOygyX0UykKQ/_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/neuraltrust-92b43583/YHmtcOygyX0UykKQ/_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/neuraltrust-92b43583/YHmtcOygyX0UykKQ/_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/neuraltrust-92b43583/YHmtcOygyX0UykKQ/_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/neuraltrust-92b43583/YHmtcOygyX0UykKQ/_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/neuraltrust-92b43583/YHmtcOygyX0UykKQ/_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/neuraltrust-92b43583/YHmtcOygyX0UykKQ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Set the budget of a personal key - NeuralTrust Docs | TrustGate, TrustGuard, TrustTest\">\u003cmeta data-mint-head property=\"og:description\" content=\"Sets or clears the spending limit of a personal (owned) key. The body is {\u0026quot;max\u0026quot;: , \u0026quot;unit\u0026quot;: \u0026quot;tokens\u0026quot; or \u0026quot;dollars\u0026quot;, \u0026quot;time_window\u0026quot;: \u0026quot;calendar_month\u0026quot; or \u0026quot;calendar_day\u0026quot;}, or null to clear the budget. max must be a finite number above zero, and a whole number of tokens when unit is tokens. Every token_rate_limiter policy with key_budgets that counts in that unit holds the key to this budget in place of its aggregate; a policy counting in the other unit keeps its own limit. The secret, the expiry and the consumers of the key do not change, and a rotation keeps the budget. An application key answers 422 application_key; an invalid body answers 422 validation_failed.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"NeuralTrust Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.neuraltrust.ai/api-reference/auths/set-the-budget-of-a-personal-key\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://docs.neuraltrust.ai/images/og-image.png\">\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=\"Set the budget of a personal key - NeuralTrust Docs | TrustGate, TrustGuard, TrustTest\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Sets or clears the spending limit of a personal (owned) key. The body is {\u0026quot;max\u0026quot;: , \u0026quot;unit\u0026quot;: \u0026quot;tokens\u0026quot; or \u0026quot;dollars\u0026quot;, \u0026quot;time_window\u0026quot;: \u0026quot;calendar_month\u0026quot; or \u0026quot;calendar_day\u0026quot;}, or null to clear the budget. max must be a finite number above zero, and a whole number of tokens when unit is tokens. Every token_rate_limiter policy with key_budgets that counts in that unit holds the key to this budget in place of its aggregate; a policy counting in the other unit keeps its own limit. The secret, the expiry and the consumers of the key do not change, and a rotation keeps the budget. An application key answers 422 application_key; an invalid body answers 422 validation_failed.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://docs.neuraltrust.ai/images/og-image.png\">\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/neuraltrust-92b43583/YHmtcOygyX0UykKQ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"NeuralTrust Docs | TrustGate, TrustGuard, TrustTest\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#9053FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.neuraltrust.ai/api-reference/auths/set-the-budget-of-a-personal-key\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/auths/set-the-budget-of-a-personal-key.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.neuraltrust.ai/#organization\",\"name\":\"NeuralTrust\",\"url\":\"https://neuraltrust.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://docs.neuraltrust.ai/images/static/img/logo.svg\"},\"sameAs\":[\"https://x.com/NeuralTrustAI\",\"https://github.com/NeuralTrust\",\"https://www.linkedin.com/company/neuraltrust\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.neuraltrust.ai#website\",\"name\":\"NeuralTrust Docs | TrustGate, TrustGuard, TrustTest\",\"url\":\"https://docs.neuraltrust.ai\",\"publisher\":{\"@id\":\"https://docs.neuraltrust.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.neuraltrust.ai/api-reference/auths/set-the-budget-of-a-personal-key#webpage\",\"url\":\"https://docs.neuraltrust.ai/api-reference/auths/set-the-budget-of-a-personal-key\",\"name\":\"Set the budget of a personal key\",\"description\":\"Sets or clears the spending limit of a personal (owned) key. The body is {\\\"max\\\": , \\\"unit\\\": \\\"tokens\\\" or \\\"dollars\\\", \\\"time_window\\\": \\\"calendar_month\\\" or \\\"calendar_day\\\"}, or null to clear the budget. max must be a finite number above zero, and a whole number of tokens when unit is tokens. Every token_rate_limiter policy with key_budgets that counts in that unit holds the key to this budget in place of its aggregate; a policy counting in the other unit keeps its own limit. The secret, the expiry and the consumers of the key do not change, and a rotation keeps the budget. An application key answers 422 application_key; an invalid body answers 422 validation_failed.\",\"dateModified\":\"2026-11-02T09:50:11.786Z\",\"isPartOf\":{\"@id\":\"https://docs.neuraltrust.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.neuraltrust.ai/api-reference/auths/set-the-budget-of-a-personal-key#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.neuraltrust.ai/api-reference/auths/set-the-budget-of-a-personal-key#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"TrustGate\",\"item\":\"https://docs.neuraltrust.ai/trustgate/api/credentials\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"auths\",\"item\":\"https://docs.neuraltrust.ai/api-reference/auths/list-auths\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Set the budget of a personal key\",\"item\":\"https://docs.neuraltrust.ai/api-reference/auths/set-the-budget-of-a-personal-key\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.neuraltrust.ai/api-reference/auths/set-the-budget-of-a-personal-key#apireference\",\"headline\":\"Set the budget of a personal key\",\"name\":\"Set the budget of a personal key\",\"description\":\"Sets or clears the spending limit of a personal (owned) key. The body is {\\\"max\\\": , \\\"unit\\\": \\\"tokens\\\" or \\\"dollars\\\", \\\"time_window\\\": \\\"calendar_month\\\" or \\\"calendar_day\\\"}, or null to clear the budget. max must be a finite number above zero, and a whole number of tokens when unit is tokens. Every token_rate_limiter policy with key_budgets that counts in that unit holds the key to this budget in place of its aggregate; a policy counting in the other unit keeps its own limit. The secret, the expiry and the consumers of the key do not change, and a rotation keeps the budget. An application key answers 422 application_key; an invalid body answers 422 validation_failed.\",\"url\":\"https://docs.neuraltrust.ai/api-reference/auths/set-the-budget-of-a-personal-key\",\"mainEntityOfPage\":{\"@id\":\"https://docs.neuraltrust.ai/api-reference/auths/set-the-budget-of-a-personal-key#webpage\"},\"image\":\"https://docs.neuraltrust.ai/images/og-image.png\",\"dateModified\":\"2026-11-02T09:50:11.786Z\",\"publisher\":{\"@id\":\"https://docs.neuraltrust.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.neuraltrust.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"NeuralTrust Docs | TrustGate, TrustGuard, TrustTest\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"NeuralTrust Docs | TrustGate, TrustGuard, TrustTest","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://neuraltrust.ai/blog"},{"anchor":"GitHub","icon":"folder-git-2","href":"https://github.com/NeuralTrust"},{"anchor":"Community","icon":"globe","href":"https://neuraltrustcommunity.slack.com/join/shared_invite/zt-2xl47cag6-_HFNpltIULnA3wh4R6AqBg"}]},"tabs":[{"tab":"Products","align":"start","menu":[{"item":"TrustGate","icon":"sparkles","description":"Connect agents to models and tools securely","pages":[{"title":"TrustGate","href":"/trustgate/overview"}]},{"item":"TrustGuard","icon":"shield-check","description":"Protect agent interactions in real time","pages":[{"title":"TrustGuard","href":"/trustguard/overview"}]},{"item":"TrustTest","icon":"locate-fixed","description":"Test your models with adversarial attacks","pages":[{"title":"TrustTest","href":"/trusttest/getting-started/overview"}]}],"pages":[{"title":"Products","href":"/trustgate/overview"}]},{"tab":"Integrations","align":"start","pages":[{"title":"Integrations","href":"/integrations/overview"}]},{"tab":"Platform","align":"start","pages":[{"title":"Platform","href":"/platform/overview"}]},{"tab":"API \u0026 SDKs","align":"start","groups":[{"group":"SDKs","icon":"package","pages":[{"title":"SDKs","sidebarTitle":"Overview","href":"/sdks/overview"},{"group":"TrustGate SDK","pages":[{"title":"TrustGate SDK","sidebarTitle":"Quickstart","href":"/sdks/trustgate/overview"},{"title":"Tools","href":"/sdks/trustgate/tools"},{"title":"Acting for end users","href":"/sdks/trustgate/end-users"},{"title":"A person's own Store","sidebarTitle":"A person's own Store","href":"/sdks/trustgate/people"},{"title":"Models","href":"/sdks/trustgate/models"},{"title":"Configuration","href":"/sdks/trustgate/configuration"},{"title":"Errors","href":"/sdks/trustgate/errors"}]},{"group":"TrustGuard SDK","pages":[{"title":"Python SDK","sidebarTitle":"Python","href":"/sdks/trustguard/python"},{"title":"Node.js SDK","sidebarTitle":"Node.js","href":"/sdks/trustguard/node"}]}]},{"group":"TrustGate","icon":"sparkles","pages":[{"title":"Authentication","href":"/trustgate/api/credentials"},{"group":"gateways","pages":[{"title":"List gateways","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways","href":"/api-reference/gateways/list-gateways"},{"title":"Create a gateway","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways","href":"/api-reference/gateways/create-a-gateway"},{"title":"Get a gateway","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways/{id}","href":"/api-reference/gateways/get-a-gateway"},{"title":"Update a gateway","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json put /v1/gateways/{id}","href":"/api-reference/gateways/update-a-gateway"},{"title":"Delete a gateway","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json delete /v1/gateways/{id}","href":"/api-reference/gateways/delete-a-gateway"}]},{"group":"auths","pages":[{"title":"List auths","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways/{gateway_id}/auths","href":"/api-reference/auths/list-auths"},{"title":"Create an auth","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/auths","href":"/api-reference/auths/create-an-auth"},{"title":"Get an auth","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways/{gateway_id}/auths/{id}","href":"/api-reference/auths/get-an-auth"},{"title":"Update an auth","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json put /v1/gateways/{gateway_id}/auths/{id}","href":"/api-reference/auths/update-an-auth"},{"title":"Delete an auth","description":"Deletes an auth from a gateway.","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json delete /v1/gateways/{gateway_id}/auths/{id}","href":"/api-reference/auths/delete-an-auth"},{"title":"Set the budget of a personal key","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json put /v1/gateways/{gateway_id}/auths/{id}/budget","href":"/api-reference/auths/set-the-budget-of-a-personal-key"},{"title":"Rotate an api key","description":"Replaces the secret of an api_key auth and returns the new one. The auth keeps its id, its name and every consumer it is attached to; the previous secret stops authenticating immediately. The new secret is returned once and is not retrievable afterwards. A personal (owned) key answers 422 owned_key; only its owner can change it, the admin can only delete it.","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/auths/{id}/rotate","href":"/api-reference/auths/rotate-an-api-key"},{"title":"Revoke a subject's default-IdP sessions","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json delete /v1/gateways/{gateway_id}/subjects/{user_id}/sessions","href":"/api-reference/auths/revoke-a-subjects-default-idp-sessions"}]},{"group":"consumers","pages":[{"title":"List consumers","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways/{gateway_id}/consumers","href":"/api-reference/consumers/list-consumers"},{"title":"Create a consumer","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/consumers","href":"/api-reference/consumers/create-a-consumer"},{"title":"Get a consumer","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways/{gateway_id}/consumers/{id}","href":"/api-reference/consumers/get-a-consumer"},{"title":"Update a consumer","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json put /v1/gateways/{gateway_id}/consumers/{id}","href":"/api-reference/consumers/update-a-consumer"},{"title":"Delete a consumer","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json delete /v1/gateways/{gateway_id}/consumers/{id}","href":"/api-reference/consumers/delete-a-consumer"},{"title":"Attach an auth to a consumer","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/consumers/{id}/auths/{auth_id}","href":"/api-reference/consumers/attach-an-auth-to-a-consumer"},{"title":"Detach an auth from a consumer","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json delete /v1/gateways/{gateway_id}/consumers/{id}/auths/{auth_id}","href":"/api-reference/consumers/detach-an-auth-from-a-consumer"},{"title":"Attach a policy to a consumer","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/consumers/{id}/policies/{policy_id}","href":"/api-reference/consumers/attach-a-policy-to-a-consumer"},{"title":"Detach a policy from a consumer","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json delete /v1/gateways/{gateway_id}/consumers/{id}/policies/{policy_id}","href":"/api-reference/consumers/detach-a-policy-from-a-consumer"},{"title":"Attach a registry to a consumer","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/consumers/{id}/registries/{registry_id}","href":"/api-reference/consumers/attach-a-registry-to-a-consumer"},{"title":"Detach a registry from a consumer","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json delete /v1/gateways/{gateway_id}/consumers/{id}/registries/{registry_id}","href":"/api-reference/consumers/detach-a-registry-from-a-consumer"}]},{"group":"key-groups","pages":[{"title":"List the group budgets","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways/{gateway_id}/key-groups/budgets","href":"/api-reference/key-groups/list-the-group-budgets"}]},{"group":"policies","pages":[{"title":"List policies","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways/{gateway_id}/policies","href":"/api-reference/policies/list-policies"},{"title":"Create a policy","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/policies","href":"/api-reference/policies/create-a-policy"},{"title":"Get a policy","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways/{gateway_id}/policies/{id}","href":"/api-reference/policies/get-a-policy"},{"title":"Update a policy","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json put /v1/gateways/{gateway_id}/policies/{id}","href":"/api-reference/policies/update-a-policy"},{"title":"Delete a policy","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json delete /v1/gateways/{gateway_id}/policies/{id}","href":"/api-reference/policies/delete-a-policy"},{"title":"Duplicate a policy","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/policies/{id}/duplicate","href":"/api-reference/policies/duplicate-a-policy"},{"title":"Mark a policy as global","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/policies/{id}/global","href":"/api-reference/policies/mark-a-policy-as-global"},{"title":"Clear a policy's global scope","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json delete /v1/gateways/{gateway_id}/policies/{id}/global","href":"/api-reference/policies/clear-a-policys-global-scope"},{"title":"Mark a policy as MCP-wide","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/policies/{id}/mcp-wide","href":"/api-reference/policies/mark-a-policy-as-mcp-wide"},{"title":"Clear a policy's MCP-wide placement","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json delete /v1/gateways/{gateway_id}/policies/{id}/mcp-wide","href":"/api-reference/policies/clear-a-policys-mcp-wide-placement"}]},{"group":"registries","pages":[{"title":"List registries","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways/{gateway_id}/registries","href":"/api-reference/registries/list-registries"},{"title":"Create a backend","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/registries","href":"/api-reference/registries/create-a-backend"},{"title":"Materialise a catalog MCP server","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/registries/from-catalog","href":"/api-reference/registries/materialise-a-catalog-mcp-server"},{"title":"Test a backend connection","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/registries/test-connection","href":"/api-reference/registries/test-a-backend-connection"},{"title":"Validate an OpenAPI document","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/registries/validate-openapi","href":"/api-reference/registries/validate-an-openapi-document"},{"title":"Get a backend","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways/{gateway_id}/registries/{id}","href":"/api-reference/registries/get-a-backend"},{"title":"Update a backend","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json put /v1/gateways/{gateway_id}/registries/{id}","href":"/api-reference/registries/update-a-backend"},{"title":"Delete a backend","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json delete /v1/gateways/{gateway_id}/registries/{id}","href":"/api-reference/registries/delete-a-backend"},{"title":"Read an instance's shared upstream account","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways/{gateway_id}/registries/{id}/shared-account","href":"/api-reference/registries/read-an-instances-shared-upstream-account"},{"title":"Drop an instance's shared upstream account","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json delete /v1/gateways/{gateway_id}/registries/{id}/shared-account","href":"/api-reference/registries/drop-an-instances-shared-upstream-account"},{"title":"Start connecting an instance's shared upstream account","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/registries/{id}/shared-account/connect-link","href":"/api-reference/registries/start-connecting-an-instances-shared-upstream-account"},{"title":"List an MCP backend's tools","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways/{gateway_id}/registries/{id}/tools","href":"/api-reference/registries/list-an-mcp-backends-tools"}]},{"group":"store","pages":[{"title":"List MCP Store access policies","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways/{gateway_id}/store/access-policies","href":"/api-reference/store/list-mcp-store-access-policies"},{"title":"Set an MCP Store access policy","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json put /v1/gateways/{gateway_id}/store/access-policies","href":"/api-reference/store/set-an-mcp-store-access-policy"},{"title":"List MCP Store access grants","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways/{gateway_id}/store/grants","href":"/api-reference/store/list-mcp-store-access-grants"},{"title":"Set an MCP Store access grant","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json put /v1/gateways/{gateway_id}/store/grants","href":"/api-reference/store/set-an-mcp-store-access-grant"},{"title":"List pending Store install requests","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways/{gateway_id}/store/requests","href":"/api-reference/store/list-pending-store-install-requests"},{"title":"Approve a Store install request","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/store/requests/approve","href":"/api-reference/store/approve-a-store-install-request"},{"title":"Deny a Store install request","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json post /v1/gateways/{gateway_id}/store/requests/deny","href":"/api-reference/store/deny-a-store-install-request"},{"title":"List decided Store install requests","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/gateways/{gateway_id}/store/requests/history","href":"/api-reference/store/list-decided-store-install-requests"}]},{"group":"catalog","pages":[{"title":"List the MCP servers catalog","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/mcp-servers-catalog","href":"/api-reference/catalog/list-the-mcp-servers-catalog"},{"title":"List model catalog","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/models-catalog","href":"/api-reference/catalog/list-model-catalog"},{"title":"List policy catalog","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/policies-catalog","href":"/api-reference/catalog/list-policy-catalog"},{"title":"List provider catalog","deprecated":null,"version":null,"openapi":"/trustgate/api/openapi.json get /v1/providers-catalog","href":"/api-reference/catalog/list-provider-catalog"}]}]},{"group":"TrustGuard","icon":"shield-check","pages":[{"title":"Evaluate API","href":"/trustguard/api/evaluate"}]}]}]},"basePath":"","title":"Set the budget of a personal key - NeuralTrust Docs | TrustGate, TrustGuard, TrustTest","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-m07pfKpT.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}