What is the Scraping API?
The Scraping API by 55 Tech lets you route HTTP, WebSocket, and AMQP requests through a network of 80+ geo-distributed agents. Within seconds, the API automatically identifies the most reliable agents for each target — so your requests become instantly more successful without managing proxies yourself. What you can do:- HTTP fetch — GET/POST/PUT/PATCH/DELETE with full header, body, and cookie control
- WebSocket relay — Bidirectional frame relay (Socket.IO, SignalR, Centrifugo, GraphQL-WS, raw WebSocket)
- AMQP consumer — Stream RabbitMQ messages via Server-Sent Events (SSE)
- Geo targeting — Pin requests to specific countries or individual agents
- Block detection — Responses include a
meta.blockedflag when access restrictions are detected
Base URL
Authentication
Pass your API key via theX-API-Key header or (for WebSocket/AMQP) the apiKey body field. See Authentication for details.
Endpoints
| Endpoint | Method | Auth | Description |
|---|---|---|---|
/fetch | GET, POST, PUT, PATCH, DELETE | Required | Proxy HTTP requests through the agent network |
/ws | WebSocket | In connect message | Bidirectional WebSocket relay |
/amqp | POST | In body or header | AMQP/RabbitMQ consumer relay (SSE stream) |
/usage | GET | Required | Per-key usage metrics (requests, bytes, top domains) |
/network/agents | GET | Required | List all agents with slug, name, country |
/network/status | GET | Required | Network summary (total nodes, nodes per country) |
/network/geo | GET | Required | Agents grouped by country |
/network/health/{domain} | GET | Required | Per-agent health state for a domain |
/debug/pick | GET | Required | Preview which agent would be selected |
/healthz | GET | No | Liveness probe |
Control headers
These headers control routing and are stripped before forwarding to the target:| Header | Aliases | Description | Example |
|---|---|---|---|
X-Target-URL | — | Target URL (no encoding needed, recommended) | https://example.com/?foo=bar |
X-Geo | X-Geo-CC, X-Geo-Strict, X-CC, X-Country | Restrict to specific countries (comma-separated ISO codes) | US,DE,AT |
X-Expect-JSON | — | Hint that the target response is JSON | 1 |
X-Agent | — | Route through specific agent(s) by slug or comma-separated list | de1, de1,at5,us3 |
X-Timeout | — | Override request timeout in seconds | 60 |
Rate limiting
Rate limits are per API key:- Default: 10 requests/second
- WebSocket connections consume 1 token on connect (not per frame)
429 with headers:
GET /usage.
Fetch response format
All HTTP fetch responses follow this structure:| Field | Description |
|---|---|
meta.status | HTTP status code from the target |
meta.final_url | Final URL after redirects |
meta.http_version | HTTP version used (e.g. HTTP/2) |
meta.elapsed_ms | Round-trip time in milliseconds |
meta.blocked | true if access restrictions were detected in the response |
meta.agent.id | Node that served the request (e.g. scraping-de1) |
meta.bytes | Response body size in bytes |
raw | Response body as text (when not JSON) |
raw_json | Parsed JSON object (when response is valid JSON, otherwise null) |
Next steps
Authentication
Set up your API key.
Quickstart
Make your first proxied request.