HTTP request/response testing service. Endpoints for testing headers, auth, status codes, redirects, and more. No auth required.
Full LLM thinking from the 4-phase benchmark pipeline.
Looking at the httpbin service documentation and vendor benchmark guide, I can extract the following structured information:
```json
{
"service_type": "rest_api",
"base_url": "https://httpbin.org",
"auth_method": "none",
"auth_config": null,
"endpoints": [
{
"path": "/get",
"method": "GET",
"purpose": "Returns GET request data including headers, args, and origin",
"params": {},
"response_format": "json",
"is_primary": true
},
{
"path": "/post",
"method": "POST",
"purpose": "Returns POST request data including headers, form data, and JSON payload",
"params": {},
"response_format": "json",
"is_primary": true
},
{
"path": "/status/{code}",
"method": "GET",
"purpose": "Returns the specified HTTP status code for testing",
"params": {
"code": {"type": "integer", "required": true}
},
"response_format": "json",
"is_primary": true
},
{
"path": "/anything",
"method": "GET",
"purpose": "Returns anything passed in request data",
"params": {},
"response_format": "json",
"is_primary": false
},
{
"path": "/anything",
"method": "POST",
"purpose": "Returns anything passed in request data",
"params": {},
"response_format": "json",
"is_primary": false
}
],
"pricing_model": {
"type": "free_tier",
"details": {},
"free_tier": {"requests": null, "period": "unlimited"},
"paid_tiers": []
},
"rate_limits": {
"rpm": null,
"tpm": null,
"daily": null,
"concurrent": null
},
"capabilities": [
"http_request_testing",
"response_inspection",
"status_code_testing",
"header_manipulation",
"redirect_testing",
"authentication_testing",
"payload_echoing"
],
"agent_readiness": {
"supports_x402": false,
"supports_streaming": false,
"has_sandbox": true,
"sdks": [],
"agent_auth_methods": ["public"]
}
}
```
```json
{
"tests": [
{
"name": "basic_connectivity",
"endpoint": "/get",
"method": "GET",
"headers": {
"User-Agent": "Prowl-Benchmark/1.0"
},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns request metadata including headers and origin",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "headers",
"type": "object",
"required_keys": ["User-Agent"]
}
},
{
"name": "post_data_echo",
"endpoint": "/post",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"X-Test-Header": "prowl-test"
},
"payload": {
"test_data": "benchmark_payload",
"timestamp": "2026-04-06T00:00:00Z",
"number": 42
},
"expected_status": 200,
"expected_behavior": "Echoes back POST data including JSON payload and headers",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "json",
"type": "object",
"contains": {"test_data": "benchmark_payload"}
}
},
{
"name": "status_code_success",
"endpoint": "/status/200",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns HTTP 200 status code as requested",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "status",
"type": "integer",
"equals": 200
}
},
{
"name": "error_handling_404",
"endpoint": "/status/404",
"method": "GET",
"headers": {},
"payload": {},
"expected_status": 404,
"expected_behavior": "Returns HTTP 404 status code for error handling test",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "status",
"type": "integer",
"equals": 404
}
},
{
"name": "header_manipulation",
"endpoint": "/get",
"method": "GET",
"headers": {
"X-Custom-Header": "test-value",
"Authorization": "Bearer fake-token"
},
"payload": {},
"expected_status": 200,
"expected_behavior": "Echoes back custom headers in response",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "headers.X-Custom-Header",
"type": "string",
"equals": "test-value"
}
},
{
"name": "large_payload_test",
"endpoint": "/post",
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"payload": {
"large_array": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
"description": "This is a larger payload to test performance with bigger data sets and measure how the service handles more substantial JSON payloads",
"metadata": {
"test_type": "performance",
"benchmark_tool": "prowl",
"data_size": "medium"
}
},
"expected_status": 200,
"expected_behavior": "Handles and echoes back larger JSON payloads efficiently",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "json.large_array",
"type": "array",
"min_length": 20
}
},
{
"name": "anything_endpoint",
"endpoint": "/anything",
"method": "GET",
"headers": {
"X-Prowl-Test": "anything-endpoint"
},
"payload": {},
"expected_status": 200,
"expected_behavior": "Returns comprehensive request information via catch-all endpoint",
"metrics": ["latency", "accuracy", "status_code"],
"validation": {
"field": "method",
"type": "string",
"equals": "GET"
}
}
],
"pricing_probes": [
{
"name": "verify_free_tier",
"description": "Confirm service remains free with no usage tracking headers",
"endpoint": "/get",
"method": "GET",
"payload": {},
"check": "response should not contain billing or usage headers since service is completely free"
}
],
"stress_profile": {
"concurrent_requests": 8,
"duration_seconds": 15,
"ramp_up": true
}
}
```
6/7 tests passed
| Test | Endpoint | Status | Latency |
|---|---|---|---|
| basic_connectivity | GET /get | 200 | 129ms |
| post_data_echo | POST /post | 200 | 31ms |
| status_code_success | GET /status/200 | 200 | 128ms |
| error_handling_404 | GET /status/404 | 404 | 31ms |
| header_manipulation | GET /get | 200 | 36ms |
| large_payload_test | POST /post | 200 | 235ms |
| anything_endpoint | GET /anything | 200 | 29ms |
{"multi_model": true, "models_used": ["openai", "claude_cli"], "model_scores": {"GPT-4o": {"overall": 85, "dimensions": {"token_efficiency": 10.0, "first_try_success": 7.0, "response_parseability": 9.0, "error_clarity": 7.0, "doc_quality": 9.0, "auth_simplicity": 10.0, "latency": 10.0, "consistency": 10.0}}, "Claude CLI": {"overall": 82, "dimensions": {"token_efficiency": 9.5, "first_try_success": 7.0, "response_parseability": 8.5, "error_clarity": 6.0, "doc_quality": 9.0, "auth_simplicity": 10.0, "latency": 8.5, "consistency": 8.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/httpbin-test-api">
<img src="https://prowl.world/badge/httpbin-test-api.svg" height="56" alt="Agent-readiness on Prowl">
</a>
See operational metrics, LLM evaluations, agent readiness, and more.
Open in Dashboard