# Cloudflare

Manage Cloudflare: zones, DNS records, page rules, firewall, workers, cache. Exposes **35 actions** covering the full API surface
the agent needs - read and write.

## What it can do

| Method | What it does |
| --- | --- |
| `cloudflare_list_accounts` | List Cloudflare accounts - GET /accounts. |
| `cloudflare_get_account` | Get one account - GET /accounts/&#123;account_id&#125;. |
| `cloudflare_list_zones` | List zones (domains) - GET /accounts/&#123;account_id&#125;/zones. |
| `cloudflare_get_zone` | Get one zone - GET /zones/&#123;zone_id&#125;. |
| `cloudflare_create_zone` | Create a new zone (add domain) - POST /accounts/&#123;account_id&#125;/zones. |
| `cloudflare_delete_zone` | Delete a zone - DELETE /zones/&#123;zone_id&#125;. |
| `cloudflare_list_dns_records` | List DNS records - GET /zones/&#123;zone_id&#125;/dns_records. |
| `cloudflare_get_dns_record` | Get one DNS record - GET /zones/&#123;zone_id&#125;/dns_records/&#123;record_id&#125;. |
| `cloudflare_create_dns_record` | Create a DNS record - POST /zones/&#123;zone_id&#125;/dns_records. |
| `cloudflare_update_dns_record` | Update a DNS record - PUT /zones/&#123;zone_id&#125;/dns_records/&#123;record_id&#125;. |
| `cloudflare_delete_dns_record` | Delete a DNS record - DELETE /zones/&#123;zone_id&#125;/dns_records/&#123;record_id&#125;. |
| `cloudflare_list_page_rules` | List page rules - GET /zones/&#123;zone_id&#125;/pagerules. |
| `cloudflare_create_page_rule` | Create a page rule - POST /zones/&#123;zone_id&#125;/pagerules. |
| `cloudflare_update_page_rule` | Update a page rule - PATCH /zones/&#123;zone_id&#125;/pagerules/&#123;rule_id&#125;. |
| `cloudflare_delete_page_rule` | Delete a page rule - DELETE /zones/&#123;zone_id&#125;/pagerules/&#123;rule_id&#125;. |
| `cloudflare_list_firewall_rules` | List firewall rules - GET /zones/&#123;zone_id&#125;/firewall/rules. |
| `cloudflare_create_firewall_rule` | Create a firewall rule - POST /zones/&#123;zone_id&#125;/firewall/rules. |
| `cloudflare_update_firewall_rule` | Update a firewall rule - PATCH /zones/&#123;zone_id&#125;/firewall/rules/&#123;rule_id&#125;. |
| `cloudflare_delete_firewall_rule` | Delete a firewall rule - DELETE /zones/&#123;zone_id&#125;/firewall/rules/&#123;rule_id&#125;. |
| `cloudflare_purge_cache` | Purge cache - POST /zones/&#123;zone_id&#125;/purge_cache. |
| `cloudflare_list_workers_scripts` | List Worker scripts - GET /accounts/&#123;account_id&#125;/workers/scripts. |
| `cloudflare_get_workers_script` | Get a Worker script - GET /accounts/&#123;account_id&#125;/workers/scripts/&#123;script_name&#125;. |
| `cloudflare_create_workers_script` | Create a Worker script - PUT /accounts/&#123;account_id&#125;/workers/scripts/&#123;script_name&#125;. |
| `cloudflare_update_workers_script` | Update a Worker script - PUT /accounts/&#123;account_id&#125;/workers/scripts/&#123;script_name&#125;. |
| `cloudflare_delete_workers_script` | Delete a Worker script - DELETE /accounts/&#123;account_id&#125;/workers/scripts/&#123;script_name&#125;. |
| `cloudflare_list_workers_routes` | List Worker routes - GET /zones/&#123;zone_id&#125;/workers/routes. |
| `cloudflare_create_workers_route` | Create a Worker route - POST /zones/&#123;zone_id&#125;/workers/routes. |
| `cloudflare_update_workers_route` | Update a Worker route - PATCH /zones/&#123;zone_id&#125;/workers/routes/&#123;route_id&#125;. |
| `cloudflare_delete_workers_route` | Delete a Worker route - DELETE /zones/&#123;zone_id&#125;/workers/routes/&#123;route_id&#125;. |
| `cloudflare_list_r2_buckets` | List R2 buckets - GET /accounts/&#123;account_id&#125;/r2/buckets. |
| `cloudflare_create_r2_bucket` | Create an R2 bucket - POST /accounts/&#123;account_id&#125;/r2/buckets. |
| `cloudflare_delete_r2_bucket` | Delete an R2 bucket - DELETE /accounts/&#123;account_id&#125;/r2/buckets/&#123;bucket_name&#125;. |
| `cloudflare_list_ssl_certs` | List SSL/TLS certificates - GET /zones/&#123;zone_id&#125;/ssl/certificate_packs. |
| `cloudflare_get_ssl_cert` | Get one SSL/TLS certificate - GET /zones/&#123;zone_id&#125;/ssl/certificate_packs/&#123;cert_id&#125;. |
| `cloudflare_get_analytics` | Get zone analytics - GET /zones/&#123;zone_id&#125;/analytics/pageviews. |

## How to get credentials

This connector uses an **API key / token**. Create one in the provider
dashboard, then paste it into FlyMyAI:

- **`CLOUDFLARE_API_TOKEN`** - Cloudflare - My Profile - API Tokens - Create Token. (https://dash.cloudflare.com/profile/api-tokens)

## Fields to fill in FlyMyAI

| FlyMyAI field | Where it comes from |
| --- | --- |
| `CLOUDFLARE_API_TOKEN` | Cloudflare - My Profile - API Tokens - Create Token. |

## Troubleshooting

- **`401 Unauthorized` / `403 Forbidden`** - the token is wrong, expired, or missing a required scope - regenerate it.
- **`429 Too Many Requests`** - you hit the provider rate limit; retry after a short backoff.
- **Unexpected `4xx` on writes** - double-check required fields; the agent confirms before write actions.

## Links

- [Cloudflare API documentation](https://developers.cloudflare.com/api/)
