Skip to content

Making requests

bytetourist is a standard forward proxy. Anything that speaks the HTTP proxy protocol can use it without an SDK.

Terminal window
curl -x http://dev.bytetourist.com:8080 \
-U "YOUR_API_KEY:" \
http://httpbin.org/headers

HTTPS targets are tunnelled with CONNECT. To inspect or fingerprint TLS, bytetourist can terminate TLS at the node with a generated leaf certificate (MITM) and re-originate the connection with a browser-grade fingerprint — see Anti-bot & TLS fingerprints. From the client side nothing changes:

Terminal window
curl -x http://dev.bytetourist.com:8080 \
-U "YOUR_API_KEY-cc-de:" \
https://example.com
import requests
proxy = "http://YOUR_API_KEY-cc-de-iptype-residential@dev.bytetourist.com:8080"
r = requests.get(
"https://api.ipify.org?format=json",
proxies={"http": proxy, "https": proxy},
timeout=30,
)
print(r.json())
import { HttpsProxyAgent } from 'https-proxy-agent';
const agent = new HttpsProxyAgent(
'http://YOUR_API_KEY-cc-de@dev.bytetourist.com:8080'
);
const res = await fetch('https://example.com', { dispatcher: undefined, agent });
console.log(res.status);

The node enforces a timeout on the outbound call (configurable system default). A request that exceeds it returns 504. Tune retries on your side, or let bytetourist fall back to another node — see Reliability & retries.

The edge node forwards your request method, path, headers and body to the target, minus any Proxy-Authorization and X-Proxy-* headers (stripped at core). The response — status, headers, and body — streams back over the gRPC link, along with node metadata (latency, bytes transferred) used for routing and analytics.