Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.55-tech.com/llms.txt

Use this file to discover all available pages before exploring further.

What is the Scraping API?

The Scraping API by 55 Tech lets you route HTTP, browser, 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
  • Browser fetch — Full JavaScript rendering with cookies, screenshots, and custom JS evaluation
  • 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
  • Proxy chaining — Route requests through your own proxy for additional IP flexibility
  • Response validation — Verify expected content exists in rendered pages, auto-retry on different node if missing
  • Block detection — Responses include a meta.blocked flag when access restrictions are detected

Base URL

https://scraping-api.55-tech.com

Authentication

Pass your API key via the X-API-Key header or (for WebSocket/AMQP) the apiKey body field. See Authentication for details.

Endpoints

EndpointMethodAuthDescription
/fetchGET, POST, PUT, PATCH, DELETERequiredProxy HTTP requests through the agent network
/browserGETHeaderFetch with JavaScript rendering (cookies, screenshots, JS eval)
/browser/streamGETHeaderLive browser session — stream network, WebSocket, DOM events (SSE)
/wsWebSocketIn connect messageBidirectional WebSocket relay
/amqpPOSTIn body or headerAMQP/RabbitMQ consumer relay (SSE stream)
/usageGETRequiredPer-key usage metrics (requests, bytes, top domains)
/network/agentsGETRequiredList all agents with slug, name, country
/network/statusGETRequiredNetwork summary (total nodes, nodes per country)
/network/geoGETRequiredAgents grouped by country
/network/health/{domain}GETRequiredPer-agent health state for a domain
/debug/pickGETRequiredPreview which agent would be selected
/healthzGETNoLiveness probe

Control headers

These headers control routing and are stripped before forwarding to the target:
HeaderAliasesDescriptionExample
X-Target-URLTarget URL (no encoding needed, recommended)https://example.com/?foo=bar
X-GeoX-Geo-CC, X-Geo-Strict, X-CC, X-CountryRestrict to specific countries (comma-separated ISO codes)US,DE,AT
X-Expect-JSONHint that the target response is JSON1
X-AgentRoute through specific agent(s) by slug or comma-separated listde1, de1,at5,us3
X-TimeoutOverride request timeout in seconds60

Rate limiting

Rate limits are per API key:
  • Default: 10 requests/second
  • WebSocket connections consume 1 token on connect (not per frame)
When rate limited, the API returns 429 with headers:
Retry-After: 1
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 0
Check your current usage with GET /usage.

Fetch response format

All HTTP fetch responses follow this structure:
{
  "meta": {
    "status": 200,
    "final_url": "https://example.com/",
    "http_version": "HTTP/2",
    "elapsed_ms": 245,
    "blocked": false,
    "headers": { "content-type": "text/html" },
    "agent": { "id": "scraping-de1" },
    "bytes": 4521
  },
  "raw": "<!DOCTYPE html>...",
  "raw_json": null
}
FieldDescription
meta.statusHTTP status code from the target
meta.final_urlFinal URL after redirects
meta.http_versionHTTP version used (e.g. HTTP/2)
meta.elapsed_msRound-trip time in milliseconds
meta.blockedtrue if access restrictions were detected in the response
meta.agent.idNode that served the request (e.g. scraping-de1)
meta.bytesResponse body size in bytes
rawResponse body as text (when not JSON)
raw_jsonParsed JSON object (when response is valid JSON, otherwise null)

Next steps

Authentication

Set up your API key.

Quickstart

Make your first proxied request.

Browser rendering

Render JavaScript-heavy pages with a real browser.