ProxyWhirl Docs
OpenapiProxied Requests

Make proxied HTTP request

POST
/api/request

Make an HTTP request through a rotating proxy.

This endpoint routes your HTTP request through the proxy pool, automatically handling rotation and failover.

SECURITY: All target URLs are validated to prevent SSRF attacks. The following are blocked by default:

  • Localhost and loopback addresses (127.0.0.0/8, ::1)
  • Private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
  • Link-local addresses (169.254.0.0/16)
  • Internal domain names (.local, .internal, .lan, .corp)
  • Non-HTTP/HTTPS schemes (file://, data://, etc.)

Args: request_data: Request details (URL, method, headers, body, timeout) - validated for SSRF rotator: ProxyWhirl dependency injection api_key: API key verification dependency

Returns: APIResponse with proxied response data

Raises: HTTPException: For various error conditions including SSRF protection

Authorization

APIKeyHeader
X-API-Key<token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/api/request" \  -H "Content-Type: application/json" \  -d '{    "headers": {      "User-Agent": "ProxyWhirl/1.0"    },    "method": "GET",    "timeout": 30,    "url": "https://httpbin.org/ip"  }'
{
  "data": {
    "message": "Operation completed successfully"
  },
  "meta": {
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "timestamp": "2025-10-27T12:00:00Z",
    "version": "1.0.0"
  },
  "status": "success"
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}