API
Use the Cloudflare API for programmatic widget management and automation.
Before you begin, you must have:
- A Cloudflare API token with
Account:Turnstile:Edit
permissions - An account ID found in your Cloudflare dashboard
Required API token permissions
At least one of the following token permissions
is required:
Turnstile Sites Write
Account Settings Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/challenges/widgets" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "domains": [ "example.com" ], "mode": "managed", "name": "My Example Turnstile Widget" }'
Required API token permissions
At least one of the following token permissions
is required:
Turnstile Sites Write
Turnstile Sites Read
Account Settings Write
Account Settings Read
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/challenges/widgets" \ --request GET \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
Required API token permissions
At least one of the following token permissions
is required:
Turnstile Sites Write
Turnstile Sites Read
Account Settings Write
Account Settings Read
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/challenges/widgets/$SITEKEY" \ --request GET \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
Required API token permissions
At least one of the following token permissions
is required:
Turnstile Sites Write
Account Settings Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/challenges/widgets/$SITEKEY" \ --request PUT \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "domains": [ "203.0.113.1", "cloudflare.com", "blog.example.com" ], "mode": "invisible", "name": "blog.cloudflare.com login form", "clearance_level": "interactive" }'
Required API token permissions
At least one of the following token permissions
is required:
Turnstile Sites Write
Account Settings Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/challenges/widgets/$SITEKEY/rotate_secret" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "invalidate_immediately": false }'
Required API token permissions
At least one of the following token permissions
is required:
Turnstile Sites Write
Account Settings Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/challenges/widgets/$SITEKEY" \ --request DELETE \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
Was this helpful?
- Resources
- API
- New to Cloudflare?
- Directory
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- © 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark
-