OneCLI connects AI agents to Cloudflare so they can deploy Workers, manage DNS records, read and write KV namespaces, query D1 databases, deploy Pages sites, and interact with the full Cloudflare API. The gateway injects your API token into requests automatically.
Go to the Cloudflare dashboard and click Create Token.Choose a template or create a custom token with the permissions your agents need. Common templates:
Template
Permissions
Use case
Edit Cloudflare Workers
Workers Scripts: Edit, Workers Routes: Edit
Deploying and managing Workers
Edit zone DNS
DNS: Edit
Managing DNS records
Read All Resources
All zones and accounts: Read
Auditing, monitoring
Custom
You choose
Fine-grained access
API tokens can be scoped to specific accounts and zones, so you can restrict what your agents can access.
2
Connect in OneCLI
Open the OneCLI dashboard, go to Connections > Cloudflare, and paste your API token.
Create the narrowest token that covers your agents’ needs. For example, if agents only deploy Workers, use the “Edit Cloudflare Workers” template instead of a broad-access token.
Cloudflare enforces a global rate limit of 1,200 requests per 5-minute window per user. This applies across dashboard, API key, and API token usage combined. Use OneCLI rules to rate-limit agent requests if you need to stay well within this budget.
Which Cloudflare token permissions should I give an agent?
The narrowest set that covers the job. Use Edit Cloudflare Workers for deploys, Edit zone DNS for DNS changes, or Read All Resources for auditing. Scope the token to specific accounts and zones. See Token permissions.
How do I rotate the Cloudflare API token?
Create a new token in the Cloudflare dashboard, then paste it into Connections > Cloudflare in OneCLI. Agents pick up the new token automatically. Then delete the old token in Cloudflare.
How do I keep the token out of the agent's context?
Don’t put it in CLOUDFLARE_API_TOKEN or a config file. Store it in OneCLI, and the gateway injects it at the proxy on requests to api.cloudflare.com. See How it works.
Can I stop an agent from deleting Workers or DNS records?
Yes. Use rules to block specific API paths or require manual approval for destructive operations, and grant the connection only to agents that need it.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OneCLI","colors":{"primary":"#19BA5D","light":"#34D474","dark":"#128A45"},"logo":{"light":"https://mintcdn.com/chartdbinc/3IvBQeNyWpN0X2ob/logo/logo-full-light.svg?fit=max\u0026auto=format\u0026n=3IvBQeNyWpN0X2ob\u0026q=85\u0026s=630ee6bb5c7441548135c690b3e18d35","dark":"https://mintcdn.com/chartdbinc/3IvBQeNyWpN0X2ob/logo/logo-full-dark.svg?fit=max\u0026auto=format\u0026n=3IvBQeNyWpN0X2ob\u0026q=85\u0026s=c80db357e121f4676dba423c01304258","href":"/"},"favicon":"https://mintcdn.com/chartdbinc/wh8636A1-I7XVdgP/favicon.png?fit=max\u0026auto=format\u0026n=wh8636A1-I7XVdgP\u0026q=85\u0026s=71b6d9b7afc7659e690354e389db9da8","appearance":{"default":"light"},"background":{"color":{"light":"#FAFAF9","dark":"#1A1918"}},"navbar":{"links":[{"href":"https://github.com/onecli/onecli","label":"GitHub"},{"href":"https://onecli.sh","label":"Install"}]},"footer":{"socials":{"github":"https://github.com/onecli"}},"fonts":{"heading":{"family":"Overused Grotesk","weight":600,"source":"fonts/OverusedGroteskRoman-VF.woff2","format":"woff2"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"https://mintlify.s3.us-west-1.amazonaws.com/chartdbinc/images/github.svg","href":"https://github.com/onecli"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"chartdbinc","hasAudioNarration":false,"actualSubdomain":"chartdbinc","customDomains":["onecli.sh"],"gitSource":{"type":"github","owner":"onecli","repo":"onecli-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6aed6ecd1adb743cd28e52b5","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"API Reference","count":240},{"language":"default","tag":"Workspace","count":105},{"language":"default","tag":"Integrations","count":88},{"language":"default","tag":"All app connections","count":64},{"language":"default","tag":"Enterprise","count":57},{"language":"default","tag":"Organization","count":52},{"language":"default","tag":"Apps","count":29},{"language":"default","tag":"Channels","count":28},{"language":"default","tag":"Platform","count":21},{"language":"default","tag":"Guides","count":17}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","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":"rbac-expansion","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":"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":"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":"editor-metadata","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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"a.nav-anchor div.mr-4.rounded-md{--tw-ring-color: transparent !important;--tw-ring-shadow: 0 0 0 0 transparent !important;--tw-ring-offset-shadow: 0 0 0 0 transparent !important;box-shadow:none!important;background:transparent!important;filter:none!important;transition:opacity 0.15s ease!important}a.nav-anchor:hover div.mr-4.rounded-md{--tw-ring-color: transparent !important;--tw-ring-shadow: 0 0 0 0 transparent !important;--tw-ring-offset-shadow: 0 0 0 0 transparent !important;box-shadow:none!important;background:transparent!important;filter:none!important;opacity:0.7!important}a.nav-anchor div.mr-4.rounded-md img{opacity:1!important;filter:none!important;background:transparent!important}a.nav-anchor:hover div.mr-4.rounded-md img{opacity:1!important;filter:none!important;background:transparent!important}.dark a.nav-anchor div.mr-4.rounded-md img,[data-theme=\"dark\"] a.nav-anchor div.mr-4.rounded-md img{filter:invert(1)!important}"}],"page":{"pagePath":"integrations/cloudflare","slug":"/integrations/cloudflare","pageMetadata":{"title":"Scoped Cloudflare API Tokens for AI Agents","sidebarTitle":"Cloudflare","description":"Create a scoped Cloudflare API token for Workers, DNS, KV, or D1 and let agents use it through the gateway without ever seeing the raw token.","canonical":"https://onecli.sh/docs/integrations/cloudflare","href":"/integrations/cloudflare"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Create a scoped Cloudflare API token for Workers, DNS, KV, or D1 and let agents use it through the gateway without ever seeing the raw token.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Frame,Heading,OptimizedImage,Step,Steps,Table}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`OneCLI connects AI agents to Cloudflare so they can deploy Workers, manage DNS records, read and write KV namespaces, query D1 databases, deploy Pages sites, and interact with the full Cloudflare API. The gateway injects your API token into requests automatically.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-you-will-set-up`,children:`What you will set up`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`A Cloudflare API token scoped to the accounts, zones, and permissions your agents need`}),`\n`,_jsxs(_components.li,{children:[`A Cloudflare connection in OneCLI that injects the token as a `,_jsx(_components.code,{children:`Bearer`}),` header`]}),`\n`,_jsx(_components.li,{children:`Per-agent access plus rules for rate limits and approvals on destructive calls`}),`\n`]}),`\n`,_jsx(`a`,{id:`self-hosted`,style:{scrollMarginTop:`8rem`}}),`\n`,_jsx(Heading,{level:`2`,id:`setup`,children:`Setup`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Create an API token in Cloudflare`,children:[_jsxs(_components.p,{children:[`Go to the `,_jsx(_components.a,{href:`https://dash.cloudflare.com/profile/api-tokens`,children:`Cloudflare dashboard`}),` and click `,_jsx(_components.strong,{children:`Create Token`}),`.`]}),_jsx(_components.p,{children:`Choose a template or create a custom token with the permissions your agents need. Common templates:`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Template`}),_jsx(_components.th,{children:`Permissions`}),_jsx(_components.th,{children:`Use case`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Edit Cloudflare Workers`})}),_jsx(_components.td,{children:`Workers Scripts: Edit, Workers Routes: Edit`}),_jsx(_components.td,{children:`Deploying and managing Workers`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Edit zone DNS`})}),_jsx(_components.td,{children:`DNS: Edit`}),_jsx(_components.td,{children:`Managing DNS records`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read All Resources`})}),_jsx(_components.td,{children:`All zones and accounts: Read`}),_jsx(_components.td,{children:`Auditing, monitoring`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Custom`})}),_jsx(_components.td,{children:`You choose`}),_jsx(_components.td,{children:`Fine-grained access`})]})]})]}),_jsx(_components.p,{children:`API tokens can be scoped to specific accounts and zones, so you can restrict what your agents can access.`})]}),_jsxs(Step,{title:`Connect in OneCLI`,children:[_jsxs(_components.p,{children:[`Open the OneCLI dashboard, go to `,_jsx(_components.strong,{children:`Connections`}),` > `,_jsx(_components.strong,{children:`Cloudflare`}),`, and paste your API token.`]}),_jsx(Frame,{caption:`The Cloudflare connect window in OneCLI.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/cloudflare/onecli-connect-cloudflare.png?fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=38cf723f0ebd4fb85129b9f9051f59c5`,alt:`OneCLI connect window for Cloudflare, showing the setup guide link and the fields to fill in.`,\"data-og-width\":`1056`,width:`1056`,\"data-og-height\":`1250`,height:`1250`,\"data-path\":`images/integrations/cloudflare/onecli-connect-cloudflare.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/cloudflare/onecli-connect-cloudflare.png?w=280\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=ccb80aceaec56a28dbeba4d487225040 280w, https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/cloudflare/onecli-connect-cloudflare.png?w=560\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=200efecbf5d5c9af3c79c28f273da6c4 560w, https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/cloudflare/onecli-connect-cloudflare.png?w=840\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=cac2b6f8e0bc0a10a4c8479a4754d9a0 840w, https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/cloudflare/onecli-connect-cloudflare.png?w=1100\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=c84cd4aa5678235293e3d4b731767dd9 1100w, https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/cloudflare/onecli-connect-cloudflare.png?w=1650\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=858171ab069ead66b4acbd58fec3a2bf 1650w, https://mintcdn.com/chartdbinc/L4k9tYUENUtEpMY8/images/integrations/cloudflare/onecli-connect-cloudflare.png?w=2500\u0026fit=max\u0026auto=format\u0026n=L4k9tYUENUtEpMY8\u0026q=85\u0026s=0c68cc0043e8aecf392237e5f698b534 2500w`})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`how-it-works`,children:`How it works`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Your API token is encrypted and stored by OneCLI`}),`\n`,_jsxs(_components.li,{children:[`When an agent sends a request to `,_jsx(_components.code,{children:`api.cloudflare.com`}),`, the gateway intercepts it`]}),`\n`,_jsxs(_components.li,{children:[`The gateway injects the token as an `,_jsx(_components.code,{children:`Authorization: Bearer`}),` header`]}),`\n`,_jsx(_components.li,{children:`The request is forwarded to Cloudflare`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Agents never see the raw token. The gateway handles injection transparently.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-agents-can-do`,children:`What agents can do`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Service`}),_jsx(_components.th,{children:`API path`}),_jsx(_components.th,{children:`Examples`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Workers`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`/client/v4/accounts/{id}/workers/scripts`})}),_jsx(_components.td,{children:`Deploy scripts, manage bindings, set secrets`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`KV`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`/client/v4/accounts/{id}/storage/kv/namespaces`})}),_jsx(_components.td,{children:`Read/write key-value pairs, list keys`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`D1`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`/client/v4/accounts/{id}/d1/database`})}),_jsx(_components.td,{children:`Create databases, run SQL queries`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Pages`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`/client/v4/accounts/{id}/pages/projects`})}),_jsx(_components.td,{children:`Deploy static sites, manage projects`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`DNS`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`/client/v4/zones/{id}/dns_records`})}),_jsx(_components.td,{children:`Create, update, delete DNS records`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Cache`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`/client/v4/zones/{id}/purge_cache`})}),_jsx(_components.td,{children:`Purge cache by URL, tag, or everything`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`AI Gateway`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`/client/v4/accounts/{id}/ai-gateway`})}),_jsx(_components.td,{children:`Manage AI proxy gateways`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Queues`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`/client/v4/accounts/{id}/queues`})}),_jsx(_components.td,{children:`Create queues, send messages`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Zero Trust`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`/client/v4/accounts/{id}/access`})}),_jsx(_components.td,{children:`Manage access policies`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`use-cases`,children:`Use cases`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Coding agents deploying Workers with `,_jsx(_components.code,{children:`wrangler deploy`}),` through the gateway`]}),`\n`,_jsx(_components.li,{children:`Agents managing DNS records during infrastructure provisioning`}),`\n`,_jsx(_components.li,{children:`Reading and writing to KV stores during application workflows`}),`\n`,_jsx(_components.li,{children:`Running D1 SQL queries for data operations`}),`\n`,_jsx(_components.li,{children:`Deploying static sites to Cloudflare Pages`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`token-permissions`,children:`Token permissions`}),`\n`,_jsx(_components.p,{children:`Cloudflare API tokens support fine-grained scoping:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Account level`}),`: Scope to a single account or all accounts`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Zone level`}),`: Scope to a single zone (domain) or all zones`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Permission groups`}),`: Combine multiple permissions (e.g., Workers Edit + DNS Read)`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Create the narrowest token that covers your agents’ needs. For example, if agents only deploy Workers, use the “Edit Cloudflare Workers” template instead of a broad-access token.`}),`\n`,_jsx(Heading,{level:`2`,id:`rate-limits`,children:`Rate limits`}),`\n`,_jsxs(_components.p,{children:[`Cloudflare enforces a global rate limit of 1,200 requests per 5-minute window per user. This applies across dashboard, API key, and API token usage combined. Use OneCLI `,_jsx(_components.a,{href:`/guides/rules`,children:`rules`}),` to rate-limit agent requests if you need to stay well within this budget.`]}),`\n`,_jsx(Heading,{level:`2`,id:`controlling-access`,children:`Controlling access`}),`\n`,_jsxs(_components.p,{children:[`Access is per agent: `,_jsx(_components.a,{href:`/guides/agent-access`,children:`grant`}),` the connection to each agent that needs it. Organization `,_jsx(_components.a,{href:`/guides/rules`,children:`rules`}),` then add guardrails that apply to everyone:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Block write operations to specific API paths (e.g., block `,_jsx(_components.code,{children:`/purge_cache`}),` for read-only agents)`]}),`\n`,_jsx(_components.li,{children:`Rate limit API calls to stay within Cloudflare’s limits`}),`\n`,_jsx(_components.li,{children:`Require manual approval for destructive operations (e.g., deleting Workers or DNS records)`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Everything is checked before credential injection, so a blocked request never touches your API token.`}),`\n`,_jsx(Heading,{level:`2`,id:`faq`,children:`FAQ`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Which Cloudflare token permissions should I give an agent?`,id:`which-cloudflare-token-permissions-should-i-give-an-agent`,children:_jsxs(_components.p,{children:[`The narrowest set that covers the job. Use `,_jsx(_components.strong,{children:`Edit Cloudflare Workers`}),` for deploys, `,_jsx(_components.strong,{children:`Edit zone DNS`}),` for DNS changes, or `,_jsx(_components.strong,{children:`Read All Resources`}),` for auditing. Scope the token to specific accounts and zones. See `,_jsx(_components.a,{href:`#token-permissions`,children:`Token permissions`}),`.`]})}),_jsx(Accordion,{title:`How do I rotate the Cloudflare API token?`,id:`how-do-i-rotate-the-cloudflare-api-token`,children:_jsxs(_components.p,{children:[`Create a new token in the Cloudflare dashboard, then paste it into `,_jsx(_components.strong,{children:`Connections`}),` > `,_jsx(_components.strong,{children:`Cloudflare`}),` in OneCLI. Agents pick up the new token automatically. Then delete the old token in Cloudflare.`]})}),_jsx(Accordion,{title:`How do I keep the token out of the agent's context?`,id:`how-do-i-keep-the-token-out-of-the-agents-context`,children:_jsxs(_components.p,{children:[`Don’t put it in `,_jsx(_components.code,{children:`CLOUDFLARE_API_TOKEN`}),` or a config file. Store it in OneCLI, and the gateway injects it at the proxy on requests to `,_jsx(_components.code,{children:`api.cloudflare.com`}),`. See `,_jsx(_components.a,{href:`/how-it-works`,children:`How it works`}),`.`]})}),_jsx(Accordion,{title:`Can I stop an agent from deleting Workers or DNS records?`,id:`can-i-stop-an-agent-from-deleting-workers-or-dns-records`,children:_jsxs(_components.p,{children:[`Yes. Use `,_jsx(_components.a,{href:`/guides/rules`,children:`rules`}),` to block specific API paths or require manual approval for destructive operations, and `,_jsx(_components.a,{href:`/guides/agent-access`,children:`grant`}),` the connection only to agents that need it.`]})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Scoped Cloudflare API Tokens for AI Agents","sidebarTitle":"Cloudflare","description":"Create a scoped Cloudflare API token for Workers, DNS, KV, or D1 and let agents use it through the gateway without ever seeing the raw token.","canonical":"https://onecli.sh/docs/integrations/cloudflare","href":"/integrations/cloudflare"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"What you will set up","slug":"what-you-will-set-up","depth":2,"children":[]},{"title":"Setup","slug":"setup","depth":2,"children":[]},{"title":"How it works","slug":"how-it-works","depth":2,"children":[]},{"title":"What agents can do","slug":"what-agents-can-do","depth":2,"children":[]},{"title":"Use cases","slug":"use-cases","depth":2,"children":[]},{"title":"Token permissions","slug":"token-permissions","depth":2,"children":[]},{"title":"Rate limits","slug":"rate-limits","depth":2,"children":[]},{"title":"Controlling access","slug":"controlling-access","depth":2,"children":[]},{"title":"FAQ","slug":"faq","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/chartdbinc/e8c5fc0faf4d8de9/infra/cloudfront/docs-response-headers.js"],"subdomain":"chartdbinc","siteName":"OneCLI","title":"Scoped Cloudflare API Tokens for AI Agents - OneCLI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T01:51:11.671Z","originalFileLocation":"integrations/cloudflare.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=\"light\"}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=\"Create a scoped Cloudflare API token for Workers, DNS, KV, or D1 and let agents use it through the gateway without ever seeing the raw token.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OneCLI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_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=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Scoped Cloudflare API Tokens for AI Agents - OneCLI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create a scoped Cloudflare API token for Workers, DNS, KV, or D1 and let agents use it through the gateway without ever seeing the raw token.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OneCLI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://onecli.sh/docs/integrations/cloudflare\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://chartdbinc.mintlify.site/docs/_mintlify/api/og/v2?division=All+app+connections\u0026amp;title=Scoped+Cloudflare+API+Tokens+for+AI+Agents\u0026amp;description=Create+a+scoped+Cloudflare+API+token+for+Workers%2C+DNS%2C+KV%2C+or+D1+and+let+agents+use+it+through+the+gateway+without+ever+seeing+the+raw+token.\u0026amp;theme=4d31f9e8e68b774b9a2b22f5\u0026amp;signature=e10dd38a768015241ba629b9569dacf296089cd10ac6e838ec708dd2fc8c0c9c\">\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=\"Scoped Cloudflare API Tokens for AI Agents - OneCLI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create a scoped Cloudflare API token for Workers, DNS, KV, or D1 and let agents use it through the gateway without ever seeing the raw token.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://chartdbinc.mintlify.site/docs/_mintlify/api/og/v2?division=All+app+connections\u0026amp;title=Scoped+Cloudflare+API+Tokens+for+AI+Agents\u0026amp;description=Create+a+scoped+Cloudflare+API+token+for+Workers%2C+DNS%2C+KV%2C+or+D1+and+let+agents+use+it+through+the+gateway+without+ever+seeing+the+raw+token.\u0026amp;theme=4d31f9e8e68b774b9a2b22f5\u0026amp;signature=e10dd38a768015241ba629b9569dacf296089cd10ac6e838ec708dd2fc8c0c9c\">\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=\"/docs/mintlify-assets/_mintlify/favicons/chartdbinc/M5-fw7HRdTdsqSgf/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OneCLI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#19BA5D\">\u003clink data-mint-head rel=\"canonical\" href=\"https://onecli.sh/docs/integrations/cloudflare\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/integrations/cloudflare.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://onecli.sh/#organization\",\"name\":\"OneCLI\",\"url\":\"https://onecli.sh\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/chartdbinc/3IvBQeNyWpN0X2ob/logo/logo-full-light.svg?fit=max\u0026auto=format\u0026n=3IvBQeNyWpN0X2ob\u0026q=85\u0026s=630ee6bb5c7441548135c690b3e18d35\"}},{\"@type\":\"WebSite\",\"@id\":\"https://onecli.sh/docs#website\",\"name\":\"OneCLI\",\"url\":\"https://onecli.sh/docs\",\"publisher\":{\"@id\":\"https://onecli.sh/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://onecli.sh/docs/integrations/cloudflare#webpage\",\"url\":\"https://onecli.sh/docs/integrations/cloudflare\",\"name\":\"Scoped Cloudflare API Tokens for AI Agents\",\"description\":\"Create a scoped Cloudflare API token for Workers, DNS, KV, or D1 and let agents use it through the gateway without ever seeing the raw token.\",\"dateModified\":\"2026-11-03T01:51:11.671Z\",\"isPartOf\":{\"@id\":\"https://onecli.sh/docs#website\"},\"breadcrumb\":{\"@id\":\"https://onecli.sh/docs/integrations/cloudflare#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://onecli.sh/docs/integrations/cloudflare#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"All app connections\",\"item\":\"https://onecli.sh/docs/integrations/affinity\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Scoped Cloudflare API Tokens for AI Agents\",\"item\":\"https://onecli.sh/docs/integrations/cloudflare\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://onecli.sh/docs/integrations/cloudflare#article\",\"headline\":\"Scoped Cloudflare API Tokens for AI Agents\",\"name\":\"Scoped Cloudflare API Tokens for AI Agents\",\"description\":\"Create a scoped Cloudflare API token for Workers, DNS, KV, or D1 and let agents use it through the gateway without ever seeing the raw token.\",\"url\":\"https://onecli.sh/docs/integrations/cloudflare\",\"mainEntityOfPage\":{\"@id\":\"https://onecli.sh/docs/integrations/cloudflare#webpage\"},\"dateModified\":\"2026-11-03T01:51:11.671Z\",\"publisher\":{\"@id\":\"https://onecli.sh/#organization\"},\"isPartOf\":{\"@id\":\"https://onecli.sh/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OneCLI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OneCLI","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"https://mintlify.s3.us-west-1.amazonaws.com/chartdbinc/images/github.svg","href":"https://github.com/onecli"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"Integrations","groups":[{"group":"Integrations","root":{"title":"Integrations: Connect Agents to External Services","sidebarTitle":"Overview","href":"/integrations"},"pages":[{"title":"App Connections: How OAuth \u0026 API Keys Work","sidebarTitle":"App Connections","href":"/integrations/app-connections"},{"title":"Custom Connections: Connect Any API With a Key","sidebarTitle":"Custom connections","href":"/integrations/custom-connections"},{"title":"Chat With AI Agents and Approve Actions in Slack","sidebarTitle":"Slack","href":"/integrations/slack"},{"title":"Keep LLM API Keys Out of Your AI Agents","sidebarTitle":"LLMs","href":"/integrations/llms"},{"title":"External Vaults: Connect Password Managers","sidebarTitle":"External Vaults","href":"/vaults/overview"}]},{"group":"Cloud integrations","pages":[{"title":"Prospect and Enrich Leads in Apollo.io With Agents","sidebarTitle":"Apollo.io","href":"/integrations/apollo-io"},{"title":"Use AWS From AI Agents Without Exposing Keys","sidebarTitle":"AWS","href":"/integrations/aws"},{"title":"Let AI Agents Open PRs and Issues on GitHub","sidebarTitle":"GitHub","href":"/integrations/github"},{"title":"Org-Approved GitHub Repo Access for AI Agents","sidebarTitle":"GitHub App","href":"/integrations/github-app"},{"title":"Let AI Agents Query Datadog Metrics and Monitors","sidebarTitle":"Datadog","href":"/integrations/datadog"},{"title":"Let AI Agents Update HubSpot CRM Records","sidebarTitle":"HubSpot","href":"/integrations/hubspot"},{"title":"Let AI Agents Triage Sentry Errors","sidebarTitle":"Sentry","href":"/integrations/sentry"},{"title":"Let AI Agents Read and Write OneNote Notebooks","sidebarTitle":"Microsoft OneNote","href":"/integrations/microsoft-onenote"},{"title":"Connect AI Agents to Outlook Mail in Microsoft 365","sidebarTitle":"Outlook Mail","href":"/integrations/outlook-mail"},{"title":"Let AI Agents Book Meetings in Outlook Calendar","sidebarTitle":"Outlook Calendar","href":"/integrations/outlook-calendar"}]},{"group":"All app connections","pages":[{"title":"Connect AI Agents to Affinity CRM With an API Key","sidebarTitle":"Affinity","href":"/integrations/affinity"},{"title":"Let AI Agents Manage Attio CRM Records","sidebarTitle":"Attio","href":"/integrations/attio"},{"title":"Run Clay Enrichment From AI Agents","sidebarTitle":"Clay","href":"/integrations/clay"},{"title":"Query PostHog Analytics and Flags From Agents","sidebarTitle":"PostHog","href":"/integrations/posthog"},{"title":"Connect AI Agents to Salesforce With an External App","sidebarTitle":"Salesforce","href":"/integrations/salesforce"},{"title":"Turn Timeless Meetings Into Agent Follow-Ups","sidebarTitle":"Timeless","href":"/integrations/timeless"},{"title":"Let Agents Search Circleback Meeting Notes","sidebarTitle":"Circleback","href":"/integrations/circleback"},{"title":"Run HeyReach LinkedIn Campaigns From AI Agents","sidebarTitle":"HeyReach","href":"/integrations/heyreach"},{"title":"Automate Dripify LinkedIn Outreach With Agents","sidebarTitle":"Dripify","href":"/integrations/dripify"},{"title":"Let On-Call Agents Triage PagerDuty Incidents","sidebarTitle":"PagerDuty","href":"/integrations/pagerduty"},{"title":"Query Coralogix Logs and Metrics From Agents","sidebarTitle":"Coralogix","href":"/integrations/coralogix"},{"title":"Search Company Knowledge in Onyx From Agents","sidebarTitle":"Onyx","description":"Let agents search company knowledge in Onyx, chat with Onyx agents, and manage documents. Connect an API key or access token the gateway keeps hidden.","href":"/integrations/onyx"},{"title":"Scoped Cloudflare API Tokens for AI Agents","sidebarTitle":"Cloudflare","href":"/integrations/cloudflare"},{"title":"Set Up One Google OAuth Client for All Google Apps","sidebarTitle":"Google (setup)","description":"Create one Google OAuth client for Gmail, Drive, Calendar, Sheets, and every Google app in OneCLI. Enable the APIs, set the consent screen, and connect.","href":"/integrations/google"},{"title":"Let AI Agents Search, Draft, and Send Gmail","sidebarTitle":"Gmail","href":"/integrations/gmail"},{"title":"Let AI Agents Schedule Meetings in Google Calendar","sidebarTitle":"Google Calendar","href":"/integrations/google-calendar"},{"title":"Give AI Agents Access to Google Drive Files","sidebarTitle":"Google Drive","href":"/integrations/google-drive"},{"title":"Let AI Agents Draft and Edit Google Docs","sidebarTitle":"Google Docs","href":"/integrations/google-docs"},{"title":"Let AI Agents Read and Update Google Sheets","sidebarTitle":"Google Sheets","href":"/integrations/google-sheets"},{"title":"Generate Google Slides Decks With AI Agents","sidebarTitle":"Google Slides","href":"/integrations/google-slides"},{"title":"Build Google Forms and Read Responses With Agents","sidebarTitle":"Google Forms","href":"/integrations/google-forms"},{"title":"Create Google Meet Links From AI Agents","sidebarTitle":"Google Meet","href":"/integrations/google-meet"},{"title":"Search and Organize Google Photos With AI Agents","sidebarTitle":"Google Photos","href":"/integrations/google-photos"},{"title":"Track To-Dos in Google Tasks From AI Agents","sidebarTitle":"Google Tasks","href":"/integrations/google-tasks"},{"title":"Automate Google Workspace User Admin With Agents","sidebarTitle":"Google Admin","href":"/integrations/google-admin"},{"title":"Pull GA4 Reports Into AI Agents","sidebarTitle":"Google Analytics","href":"/integrations/google-analytics"},{"title":"Let AI Agents Check Indexing in Search Console","sidebarTitle":"Google Search Console","href":"/integrations/google-search-console"},{"title":"Automate Google Classroom Coursework With Agents","sidebarTitle":"Google Classroom","href":"/integrations/google-classroom"},{"title":"Manage YouTube Playlists and Analytics With Agents","sidebarTitle":"YouTube","href":"/integrations/youtube"},{"title":"Let AI Agents Search and Update Notion Pages","sidebarTitle":"Notion","href":"/integrations/notion"},{"title":"Let AI Agents Create and Triage Jira Issues","sidebarTitle":"Jira","href":"/integrations/jira"},{"title":"Give AI Agents Search and Edit Access to Confluence","sidebarTitle":"Confluence","href":"/integrations/confluence"},{"title":"Let AI Agents Manage Your Todoist Tasks","sidebarTitle":"Todoist","href":"/integrations/todoist"},{"title":"Give AI Agents Safe Access to Your Dropbox Files","sidebarTitle":"Dropbox","href":"/integrations/dropbox"},{"title":"Deploy to Fly.io From an Agent Without Exposing Tokens","sidebarTitle":"Fly.io","href":"/integrations/flyio"},{"title":"Let AI Agents Post to LinkedIn on Your Behalf","sidebarTitle":"LinkedIn","href":"/integrations/linkedin"},{"title":"Connect AI Agents to Monday.com Boards","sidebarTitle":"Monday.com","href":"/integrations/monday"},{"title":"Administer MongoDB Atlas Clusters With Agents","sidebarTitle":"MongoDB Atlas","href":"/integrations/mongodb-atlas"},{"title":"Sync Navan Bookings and Expenses With AI Agents","sidebarTitle":"Navan","href":"/integrations/navan"},{"title":"Let AI Agents Send Email With Resend","sidebarTitle":"Resend","href":"/integrations/resend"},{"title":"Send SMS and WhatsApp From AI Agents With Twilio","sidebarTitle":"Twilio","href":"/integrations/twilio"},{"title":"Zendesk Integration: Tickets and Help Center","sidebarTitle":"Zendesk","href":"/integrations/zendesk"},{"title":"Manage Supabase Projects With AI Agents","sidebarTitle":"Supabase","href":"/integrations/supabase"},{"title":"Call Claude and Gemini on Vertex AI From Agents","sidebarTitle":"Vertex AI","href":"/integrations/vertex-ai"},{"title":"Let AI Agents Edit Webflow CMS and Publish Sites","sidebarTitle":"Webflow","href":"/integrations/webflow"},{"title":"Let AI Agents Schedule Zoom Meetings and Get Recordings","sidebarTitle":"Zoom","href":"/integrations/zoom"},{"title":"Give Agents AWS Access With an IAM Role, Not Keys","sidebarTitle":"AWS Role","href":"/integrations/aws-role"},{"title":"Bitbucket Repos, Pull Requests, and Pipelines","sidebarTitle":"Bitbucket","href":"/integrations/bitbucket"},{"title":"Manage Docker Hub Repositories From AI Agents","sidebarTitle":"Docker Hub","href":"/integrations/docker"},{"title":"Read Fathom Meeting Summaries From AI Agents","sidebarTitle":"Fathom","href":"/integrations/fathom"},{"title":"Give AI Agents Access to Fireflies Transcripts","sidebarTitle":"Fireflies","href":"/integrations/fireflies"},{"title":"Let AI Agents Work With GitLab Merge Requests","sidebarTitle":"GitLab","href":"/integrations/gitlab"},{"title":"Send Google Chat Messages From AI Agents","sidebarTitle":"Google Chat","href":"/integrations/google-chat"},{"title":"Let AI Agents Look Up and Update Google Contacts","sidebarTitle":"Google Contacts","href":"/integrations/google-contacts"},{"title":"Let AI Agents Read Your Granola Meeting Notes","sidebarTitle":"Granola","href":"/integrations/granola"},{"title":"Route Agent Package Installs Through JFrog","sidebarTitle":"JFrog Artifactory","href":"/integrations/jfrog-artifactory"},{"title":"Let AI Agents File and Update Linear Issues","sidebarTitle":"Linear","href":"/integrations/linear"},{"title":"Run Snowflake SQL From an Agent, Token Hidden","sidebarTitle":"Snowflake","href":"/integrations/snowflake"},{"title":"Use a Restricted Stripe Key With AI Agents","sidebarTitle":"Stripe","href":"/integrations/stripe"},{"title":"Let AI Agents Manage Trello Boards and Cards","sidebarTitle":"Trello","href":"/integrations/trello"},{"title":"Let AI Agents Deploy and Manage Vercel Projects","sidebarTitle":"Vercel","href":"/integrations/vercel"},{"title":"Let AI Agents Post and Read on X (Twitter)","sidebarTitle":"X","href":"/integrations/x"},{"title":"Let AI Agents Work Zoho CRM Leads and Deals","sidebarTitle":"Zoho CRM","href":"/integrations/zoho-crm"},{"title":"Let AI Agents Draft Word Docs in OneDrive","sidebarTitle":"Microsoft Word","href":"/integrations/microsoft-word"}]},{"group":"LLMs","pages":[{"title":"Connect Claude to Agents With a Token or API Key","sidebarTitle":"Anthropic","href":"/integrations/anthropic"},{"title":"Use OpenAI API Keys and Codex OAuth With AI Agents","sidebarTitle":"OpenAI","href":"/integrations/openai"}]},{"group":"External Vaults","pages":[{"title":"Bitwarden Vault: Sync Secrets to the Gateway","sidebarTitle":"Bitwarden","href":"/vaults/bitwarden"},{"title":"1Password Vault: Service Account Integration","sidebarTitle":"1Password","href":"/vaults/1password"}]}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference"}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks"}]}]},"basePath":"","title":"Scoped Cloudflare API Tokens for AI Agents - OneCLI","buildId":"dpl_BSPUBxEoKhhK7HzXVDPxdPvWx4xc","deploymentId":"dpl_BSPUBxEoKhhK7HzXVDPxdPvWx4xc","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DRxXE_WT.js","DynamicMarkdown-AlxJK8VR.js","zoom-image-lightbox-B_-GSaTf.js","lightbox-handle-r17bVUz3.js"]}