cloudflare-api
Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well.
Skill by wopal-cn
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/wopal-cn-cloudflare-api
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, cloud, security, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill name
cloudflare-api- Description
- Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well. Bulk DNS, custom hostnames, email routing, cache purge, WAF rules, redirect rules, zone settings, Worker routes, D1 cross-database queries, R2 bulk operations, KV bulk read/write, Vectorize queries, Queues, and fleet-wide resource audits. Produces curl commands or scripts. Triggers: 'cloudflare api', 'bulk dns', 'custom hostname', 'email routing', 'cache purge', 'waf rule', 'd1 query', 'r2 bucket', 'kv bulk', 'vectorize query', 'audit resources', 'fleet operation'.
- License
- MIT
- Compatibility
- claude-code-only
- Instructions
- 387 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Agent Skills spec issues
- allowed-tools: must be a space-separated string
Files (3)
- .source.json
- SKILL.md
- developer-platform-api.md · references/
SKILL.md (first lines)
# Cloudflare API
Hit the Cloudflare REST API directly when wrangler CLI or MCP servers aren't the right tool. For bulk operations, fleet-wide changes, and features that wrangler doesn't expose.
## When to Use This Instead of Wrangler or MCP
| Use case | Wrangler | MCP | This skill |
|----------|---------|-----|-----------|
| Deploy a Worker | Yes | Yes | No |
| Create a D1 database | Yes | Yes | No |
| Bulk update 50 DNS records | Slow (one at a time) | Slow (one tool call each) | Yes — batch script |
| Custom hostnames for white-label | No | Partial | Yes |
| Email routing rules | No | Partial | Yes |
| WAF/firewall rules | No | Yes but verbose | Yes — direct API |
| Redirect rules in bulk | No | One at a time | Yes — batch script |
| Zone settings across 20 zones | No | 20 separate calls | Yes — fleet script |
| Cache purge by tag/prefix | No | Yes | Yes (when scripting) |
| Worker route management | Limited | Yes | Yes (when bulk) |
| Analytics/logs query | No | Partial | Yes — GraphQL |
| D1 query/export across databases | One DB at a time | One DB at a time | Yes — cross-DB scripts |
| R2 bulk object operations | No | One at a time | Yes — S3 API + batch |
| KV bulk read/write/delete | One at a time | One at a time | Yes — bulk endpoints |
| Vectorize query/delete | No | Via Worker only | Yes — direct API |
| Queue message injection | No | Via Worker only | Yes — direct API |
| Audit all resources in account | No | Tedious | Yes — inventory script |
**Rule of thumb**: Single operations → MCP or wrangler. Bulk/fleet/scripted → API directly.
## Auth Setup
### API Token (recommended)
Create a scoped token at: Dashboard → My Profile → API Tokens → Create Token
```bash
# Store it
export CLOUDFLARE_API_TOKEN="your-token-here"
# Test it
curl -s "https://api.cloudflare.com/client/v4/user/tokens/verify" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" | jq '.success'
```
**Token scopes**: Always use minimal permissions. Common presets:
- "Edit zone DNS" — for DNS operations
- "Edit zone settings" — for zone config changes
- "Edit Cloudflare Workers" — for Worker route management
- "Read analytics" — for GraphQL analytics
### Account and Zone IDs
```bash
# List your zones (find zone IDs)
curl -s "https://api.cloudflare.com/client/v4/zones?per_page=50" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" | jq '.result[] | {name, id}'
# Get zone ID by domain name
ZONE_ID=$(curl -s "https://api.cloudflare.com/client/v4/zones?name=example.com" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" | jq -r '.result[0].id')
```
Store IDs in environment or a config file — don't hardcode them in scripts.
## Workflows
### Bulk DNS Operations
**Add/update many records at once** (e.g. migrating a domain, setting up a new client):
```bash
# Pattern: read records from a file, create in batch
while IFS=',' read -r type name content proxied; do
curl -s -X POST "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"type\":\"$type\",\"name\":\"$name\",\"content\":\"$content\",\"proxied\":$proxied,\"ttl\":1}" \
| jq '{name: .result.name, id: .result.id, success: .success}'
sleep 0.25 # Rate limit: 1200 req/5min
done < dns-records.csv
```
**Export all records from a zone** (backup or migration):
```bash
curl -s "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records?per_page=100" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
| jq -r '.result[] | [.type, .name, .content, .proxied] | @csv' > dns-export.csv
```
**Find and replace across records** (e.g. IP migration):
```bash
OLD_IP="203.0.113.1"
NEW_IP="198.51.100.1"
# Find records pointing to old IP
RECORDS=$(curl -s "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records?content=$OLD_IP" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" | jq -r '.result[].id')
# Update each one
for RECORD_ID in $RECORDS; do
curl -s -X PATCH "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$RECORD_ID" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"content\":\"$NEW_IP\"}" | jq '.success'
done
```
### Custom Hostnames (White-Label Client Domains)
For SaaS apps where clients use their own domain (e.g. `app.clientdomain.com` → your Worker):
```bash
# Create custom hostname
curl -s -X POST "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_hostnames" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"hostname": "app.clientdomain.com",From wopal-cn/wopal-space-ontology, MIT.
More from wopal-cn/wopal-space-ontology
- 0.609score
cordis-composition-reference
wopal-cn
Use when writing or reading a Cordis bundle patch or agent preset for this harness and you need the Loader YAML dialect (insert, override by id, group…
SkillAFreshness: A★ 3Claude Code +9 - 0.609score
agents-collab
wopal-cn
Foundation rules for how Wopal collaborates with sub-agents such as fae and rook.
SkillAFreshness: A★ 3Claude Code +9 - 0.609score
cordis-plugin-development
wopal-cn
Use when designing, reviewing, adding, enabling, disabling, installing, configuring, or debugging a plugin, bundle, feature, page, panel, tool, or MCP…
SkillAFreshness: A★ 3Claude Code +9 - 0.605score
automating-mail
wopal-cn
Automates Apple Mail via JXA with AppleScript dictionary discovery.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
editing-cordis-compositions
wopal-cn
Use when creating, changing, or validating an agent preset or other Cordis composition for this harness, including deciding host versus preset placement and…
SkillAFreshness: A★ 3Claude Code +9 - 0.600score
cnb-pipeline
wopal-cn
编写、修改、审查 .cnb.yml 流水线配置,诊断构建失败原因并优化性能。
SkillAFreshness: A★ 3Claude Code +9 - 0.599score
agent-experience
wopal-cn
Use when writing or changing a model-facing tool definition (name, description, parameter schema, or its system-prompt section), and when designing skills…
SkillAFreshness: A★ 3Claude Code +9 - 0.595score
cnb-docs
wopal-cn
查询 CNB 平台官方文档,覆盖代码托管、制品库、AI 助手、云原生构建等。
SkillAFreshness: A★ 3Claude Code +9 - 0.595score
cnb-npc-delegate
wopal-cn
当任务复杂或需要特定专长时,主动召唤其他 NPC 协同工作。
SkillAFreshness: A★ 3Claude Code +9 - 0.595score
cnb-api
wopal-cn
CNB 平台交互命令,支持代码仓库、Issue、PR、CI、制品库读写等操作。
SkillAFreshness: A★ 3Claude Code +9 - 0.595score
cnb-tapd-resource-fetcher
wopal-cn
获取 TAPD 资源(需求/缺陷/任务/迭代),支持从 TAPD 链接自动解析。
SkillAFreshness: A★ 3Claude Code +9 - 0.592score
cnb-pr-diff
wopal-cn
获取 PR 的 diff 变更信息。
SkillAFreshness: A★ 3Claude Code +9
Signals
- Stars
- 3
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Sep 15, 2026 (1 month ago)
- Last release
- Oct 24, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/wopal-cn/wopal-space-ontology
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from wopal-cn
- 0.609score
cordis-composition-reference
wopal-cn
Use when writing or reading a Cordis bundle patch or agent preset for this harness and you need the Loader YAML dialect (insert, override by id, group…
SkillAFreshness: A★ 3Claude Code +9 - 0.609score
agents-collab
wopal-cn
Foundation rules for how Wopal collaborates with sub-agents such as fae and rook.
SkillAFreshness: A★ 3Claude Code +9 - 0.609score
cordis-plugin-development
wopal-cn
Use when designing, reviewing, adding, enabling, disabling, installing, configuring, or debugging a plugin, bundle, feature, page, panel, tool, or MCP…
SkillAFreshness: A★ 3Claude Code +9 - 0.605score
automating-mail
wopal-cn
Automates Apple Mail via JXA with AppleScript dictionary discovery.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
editing-cordis-compositions
wopal-cn
Use when creating, changing, or validating an agent preset or other Cordis composition for this harness, including deciding host versus preset placement and…
SkillAFreshness: A★ 3Claude Code +9 - 0.600score
cnb-pipeline
wopal-cn
编写、修改、审查 .cnb.yml 流水线配置,诊断构建失败原因并优化性能。
SkillAFreshness: A★ 3Claude Code +9
Cite this page
cloudflare-api skill. Agent Mart. https://agentmart.dev/skills/wopal-cn-cloudflare-api (last updated 2026-10-24)