FourA - HTTP request via rotating proxies
foura_proxyRoute HTTP requests through rotating proxies with automatic retry for blocked targets. Specify exit countries to control proxy locations.
Instructions
Route an HTTP request through rotating proxies with automatic retry. Use it when foura_single is blocked or the target requires a specific exit country. The response includes the proxy ID that succeeded; reuse it with foura_single or foura_browser, or exclude it with ignoreProxies. Use foura_browser when the page needs JavaScript. Set exitCountries for a strict country allowlist.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | The inner HTTP request to send through each proxy attempt. Validation rules here determine when a proxy is treated as failed and retried. | |
| maxTries | No | Maximum rotation attempts before giving up (default 5, max 90). Difficult protected targets may need 25-30. Use exitCountries for country scope. | |
| timeout_ms | No | Overall timeout across all rotation attempts in ms (default 45000, max 120000). Must be positive. | |
| exitCountries | No | Optional target-visible proxy countries as two-letter provider codes, for example ["CZ", "GB"]. Use codes supplied by the user or target requirements. When geography matters, do not guess codes or substitute unscoped rotation. Values are trimmed, uppercased, and deduplicated. Unknown exits are excluded and the request never falls back to another country. | |
| ignoreProxies | No | Encoded proxy IDs (base36 strings like "4DZ3VE") or proxy URLs to exclude from rotation. | |
| offload_large | No | If true, response bodies of 50 KB or more are returned as a resource_link instead of inlined. Default false. Read the returned offloaded_resource_uri with resources/read. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | Stable error code for retry classification. auth_failed means the FourA API key was rejected; verify that key, not target-site credentials. no_eligible_proxy means the strict exitCountries scope had no match. Keep that scope and retry later; do not propose or perform an unscoped fallback. | |
| data | No | Decoded response body. Omitted when offloaded. | |
| error | No | Human-readable error message | |
| proxy | No | Base36 ID of the exit that succeeded (e.g. `4DZ3VE`). Pass it to foura_single.proxy or foura_browser.proxy to reuse that exit, or to foura_proxy.ignoreProxies to skip it on future rotations. | |
| total | No | Outer total time in seconds (proxy selection + retries + the successful inner attempt). Float. | |
| limits | No | ||
| status | No | HTTP status code from the target (from the succeeding proxy attempt). `0` indicates every attempt failed before any HTTP response (DNS / connection refused / timeout) - check the `error` field for the underlying reason. | |
| current | No | ||
| details | No | Structured no_eligible_proxy context containing the normalized requested country scope. Preserve this scope and retry later. Do not propose or perform an unscoped fallback; change it only after the user explicitly changes the requirement. | |
| headers | No | Response headers per redirect hop, as an array of objects. Each entry has `result.{version, code, reason}` plus arbitrary header-name keys whose values are strings (or arrays of strings for multi-value headers like Set-Cookie / Link). | |
| request | No | Echoed PrRequest from upstream PrResponseError | |
| service | No | ||
| retryAfter | No | ||
| size_bytes | No | Total offloaded body size in bytes | |
| total_time | No | Per-attempt wall-clock duration of the succeeding inner request | |
| exitCountry | No | Latest available two-letter target-visible exit-country code used for selection. Present on successful requests that use exitCountries. | |
| offloaded_resource_uri | No | foura-mcp://payload/<uuid>. Pass this URI to resources/read to retrieve the offloaded body. |