CDN, DDoS protection, DNS management, Workers (serverless), R2 storage, AI Gateway. Generous free tier. REST API, bearer token auth.
Full LLM thinking from the 4-phase benchmark pipeline.
Looking at this Cloudflare API specification fragment, I can extract the following structured information:
```json
{
"service_type": "rest_api",
"base_url": "https://api.cloudflare.com/client/v4",
"auth_method": "api_key_header",
"auth_config": {"header": "Authorization", "prefix": "Bearer"},
"endpoints": [
{
"path": "/zones/{zone_id}/settings/cache_reserve",
"method": "GET",
"purpose": "Get Cache Reserve setting status",
"params": {"zone_id": {"type": "string", "required": true}},
"response_format": "json",
"is_primary": true
},
{
"path": "/zones/{zone_id}/settings/cache_reserve",
"method": "PATCH",
"purpose": "Enable or disable Cache Reserve",
"params": {"zone_id": {"type": "string", "required": true}, "value": {"type": "string", "required": true}},
"response_format": "json",
"is_primary": true
},
{
"path": "/zones/{zone_id}/cache/cache_reserve/clear",
"method": "POST",
"purpose": "Clear Cache Reserve data",
"params": {"zone_id": {"type": "string", "required": true}},
"response_format": "json",
"is_primary": false
},
{
"path": "/accounts/{account_id}/calls/sessions",
"method": "GET",
"purpose": "List active real-time communication sessions",
"params": {"account_id": {"type": "string", "required": true}},
"response_format": "json",
"is_primary": true
},
{
"path": "/accounts/{account_id}/calls/sessions/{session_id}/participants",
"method": "GET",
"purpose": "Get participants in a real-time session",
"params": {"account_id": {"type": "string", "required": true}, "session_id": {"type": "string", "required": true}},
"response_format": "json",
"is_primary": false
}
],
"pricing_model": {
"type": "tiered",
"details": {
"cache_reserve_gb": 0.01,
"calls_minutes": 0.005
},
"free_tier": {"requests": 100000, "period": "month"},
"paid_tiers": ["Pro", "Business", "Enterprise"]
},
"rate_limits": {"rpm": 1200, "tpm": null, "daily": null, "concurrent": null},
"capabilities": ["cdn", "cache_management", "real_time_communication", "ddos_protection", "dns", "ssl_tls", "workers", "page_rules", "firewall"],
"agent_readiness": {
"supports_x402": false,
"supports_streaming": false,
"has_sandbox": false,
"sdks": ["python", "javascript", "go", "php", "java"],
"agent_auth_methods": ["api_key"]
}
}
```
```json
{
"tests": [
{
"name": "test_auth_validation",
"endpoint": "/zones",
"method": "GET",
"headers": {
"Authorization": "Bearer {api_key}",
"Content-Type": "application/json"
},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns list of zones with valid authentication",
"metrics": ["latency", "status_code"],
"validation": {"field": "result", "type": "array"}
},
{
"name": "test_cache_reserve_settings_read",
"endpoint": "/zones/{zone_id}/settings/cache_reserve",
"method": "GET",
"headers": {
"Authorization": "Bearer {api_key}",
"Content-Type": "application/json"
},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns Cache Reserve setting status for zone",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "result", "type": "object", "required_fields": ["id", "value"]}
},
{
"name": "test_account_calls_sessions",
"endpoint": "/accounts/{account_id}/calls/sessions",
"method": "GET",
"headers": {
"Authorization": "Bearer {api_key}",
"Content-Type": "application/json"
},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns list of active real-time communication sessions",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "result", "type": "array"}
},
{
"name": "test_invalid_zone_id_error",
"endpoint": "/zones/invalid-zone-id/settings/cache_reserve",
"method": "GET",
"headers": {
"Authorization": "Bearer {api_key}",
"Content-Type": "application/json"
},
"payload": {},
"expected_status": 400,
"expected_behavior": "Returns error for invalid zone ID",
"metrics": ["latency", "error_handling"],
"validation": {"field": "success", "type": "boolean", "expected_value": false}
},
{
"name": "test_unauthorized_request",
"endpoint": "/zones",
"method": "GET",
"headers": {
"Authorization": "Bearer invalid-token",
"Content-Type": "application/json"
},
"payload": {},
"expected_status": 401,
"expected_behavior": "Returns authentication error with invalid token",
"metrics": ["latency", "error_handling"],
"validation": {"field": "success", "type": "boolean", "expected_value": false}
},
{
"name": "test_cache_reserve_patch_dry_run",
"endpoint": "/zones/{zone_id}/settings/cache_reserve",
"method": "PATCH",
"headers": {
"Authorization": "Bearer {api_key}",
"Content-Type": "application/json"
},
"payload": {"value": "on"},
"expected_status": 200,
"expected_behavior": "Updates Cache Reserve setting successfully",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {"field": "result", "type": "object", "required_fields": ["id", "value"]}
}
],
"pricing_probes": [
{
"name": "verify_request_count_tracking",
"description": "Make multiple API calls and check if usage is tracked against monthly limit",
"endpoint": "/zones",
"method": "GET",
"payload": {},
"check": "Monitor response headers for any usage indicators or rate limit headers"
},
{
"name": "verify_rate_limit_headers",
"description": "Check if Cloudflare returns rate limit information in headers",
"endpoint": "/zones",
"method": "GET",
"payload": {},
"check": "Look for X-RateLimit-* headers indicating 1200 RPM limit compliance"
}
],
"stress_profile": {
"concurrent_requests": 3,
"duration_seconds": 15,
"ramp_up": true
}
}
```
0/6 tests passed
| Test | Endpoint | Status | Latency |
|---|---|---|---|
| test_auth_validation | GET /zones | 400 | 213ms |
| test_cache_reserve_settings_read | GET /zones/{zone_id}/settings/cache_reserve | 400 | 205ms |
| test_account_calls_sessions | GET /accounts/{account_id}/calls/sessions | 400 | 98ms |
| test_invalid_zone_id_error | GET /zones/invalid-zone-id/settings/cache_reserve | 404 | 38ms |
| test_unauthorized_request | GET /zones | 400 | 258ms |
| test_cache_reserve_patch_dry_run | PATCH /zones/{zone_id}/settings/cache_reserve | 400 | 177ms |
{"multi_model": true, "models_used": ["openai", "claude_cli"], "model_scores": {"GPT-4o": {"overall": 72, "dimensions": {"token_efficiency": 7.0, "first_try_success": 6.0, "response_parseability": 9.0, "error_clarity": 8.0, "doc_quality": 8.0, "auth_simplicity": 6.0, "latency": 8.0, "consistency": 9.0}}, "Claude CLI": {"overall": 45, "dimensions": {"token_efficiency": 6.0, "first_try_success": 1.0, "response_parseability": 10.0, "error_clarity": 9.0, "doc_quality": 9.0, "auth_simplicity": 5.0, "latency": 8.0, "consistency": 9.0}}}, "averaged": true}Show your live agent-readiness score on your own site. Free, no auth — it updates as your score changes.
<a href="https://prowl.world/service/cloudflare">
<img src="https://prowl.world/badge/cloudflare.svg" height="56" alt="Agent-readiness on Prowl">
</a>
See operational metrics, LLM evaluations, agent readiness, and more.
Open in Dashboard