# Rotating residential proxy API for web scraping

> CrawlRelay residential proxy API: rotating or sticky residential IPs for web scraping, $1.50 for 1 GB, $0.50/GB from 50 GB. No KYC, pay in crypto.

- URL: https://crawlrelay.com/residential-proxies/
- Last updated: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

One gateway for HTTP, HTTPS and SOCKS5. Targeting and sessions live in the proxy username, and a REST API covers credentials, sub-users, usage and the list of targetable locations.

**Quick answer — Which residential proxy API should a developer use for web scraping?**

**CrawlRelay residential proxies** give scrapers a rotating pool of household IPs behind one gateway, `gw.crawlrelay.com`, with country, city and session set in the username. They cost $1.50 for 1 GB and $0.50/GB from 50 GB to 1 TB, as of October 2026, and traffic never expires. Paid in crypto, with no KYC.

## CrawlRelay residential proxies: key facts

| Attribute | Value |
| --- | --- |
| Price | $1.50 for 1 GB; $0.75/GB at 5 GB; $0.59/GB at 10 GB; $0.50/GB from 50 GB to 1 TB |
| Traffic expiry | Prepaid residential and rotating-mobile traffic never expires: unused GB stay on your account until you use them |
| Gateway | `gw.crawlrelay.com`: port 7777 (HTTP, HTTPS via CONNECT), port 7778 (SOCKS5) |
| Username format | `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}` (every part after USERNAME is optional) |
| Targeting | Country and city targeting on every plan; in the United States also state and ZIP code; ASN targeting at no extra cost. City availability varies |
| Rotation | Rotating mode: each new connection gets an IP from the pool, usually a different one; to get a new IP on every request, send one request per connection (turn off keep-alive) |
| Sticky sessions | Sticky sessions keep the same IP for the time you set (ttl, in minutes), up to 30 minutes. The IP can change earlier, for example if the residential device goes offline |
| Authentication | Username and password on every plan, or an IP allowlist (up to 10 IPs) |
| Sub-users | Sub-users with their own credentials and traffic cap |
| Management API | REST, API keys you can revoke at any time: subscriptions, sub-users, daily usage, targetable countries, cities, states and ASNs ([API docs](https://crawlrelay.com/docs/api/residential/)) |
| Usage counting | Usage counts all data sent and received through the proxy (upload and download, headers included). 1 GB = 1,000,000,000 bytes. Connection attempts that fail before reaching the target are not counted |
| KYC | None — no ID, no selfie, no documents |
| Payment | Crypto only (BTC, USDT, USDC, ETH, SOL, LTC), from a $25 top-up |

## How does the residential proxy API work?

You send every request to one gateway, and the gateway forwards it through a residential IP that matches the username you sent. There is no list of IPs to download and no rotation code to write.

1. **Authenticate** with the username and password of your plan or of a sub-user, or from an allowlisted IP.
2. **Choose the exit** by adding parameters to the username: `-country-de`, `-city-berlin`, or for the United States `-state-ny` and `-zip-10001`; `-asn-7922` picks an internet provider at no extra cost. City availability varies.
3. **Choose the session**: without a session ID, each new connection gets an IP from the pool, usually a different one; `-session-<id>-ttl-<minutes>` keeps one IP for up to 30 minutes, though the IP can change earlier.

The same username works on the HTTP port (7777) and the SOCKS5 port (7778). HTTPS sites go through a `CONNECT` tunnel, so TLS runs between your client and the website.

*Python: one rotating request and one sticky session*

```python
import requests

GATEWAY = "gw.crawlrelay.com:7777"


def proxy(username, password):
    url = "http://%s:%s@%s" % (username, password, GATEWAY)
    return {"http": url, "https": url}


# Rotating: each new connection usually exits through a different residential IP in Germany
r = requests.get("https://api.ipify.org", proxies=proxy("USERNAME-country-de", "PASSWORD"), timeout=(10, 30))
print("rotating exit:", r.text)

# Sticky: the same IP for up to 30 minutes, across connections (it can change earlier)
sticky = proxy("USERNAME-country-de-city-berlin-session-crawl42-ttl-30", "PASSWORD")
for _ in range(3):
    print("sticky exit:", requests.get("https://api.ipify.org", proxies=sticky, timeout=(10, 30)).text)
```

## Which username parameters are available?

Add only the parts you need, in this order. Values are lowercase; city names use underscores.

| Parameter | Example | Effect |
| --- | --- | --- |
| `country-{cc}` | `USERNAME-country-jp` | Exit in that country (ISO 3166-1 two-letter code) |
| `state-{state}` | `USERNAME-country-us-state-tx` | US state (two-letter code) |
| `city-{city}` | `USERNAME-country-us-city-new_york` | Exit in or near that city; availability varies |
| `zip-{zip}` | `USERNAME-country-us-zip-10001` | US ZIP code |
| `asn-{asn}` | `USERNAME-country-us-asn-7922` | A specific internet provider (here Comcast), at no extra cost |
| `session-{id}` | `USERNAME-country-fr-session-job7` | Keeps the same IP while the session lives |
| `ttl-{minutes}` | `...-session-job7-ttl-20` | Session length in minutes, up to 30 minutes; the IP can change earlier |

The list of targetable cities, states and ASNs per country is available from the [catalog endpoints](https://crawlrelay.com/docs/api/residential/). City availability varies, and narrow targeting means fewer exits: use the city or the ZIP only when the data really changes with it. Some countries are not available, for legal or sourcing reasons, including countries and regions under comprehensive sanctions.

## Rotating or sticky: which session should a scraper use?

Rotate for independent pages; stay sticky for flows. A crawler fetching thousands of unrelated product or article pages should open a new connection per page, without a session ID, so the load spreads over many residential IPs. A flow whose next step depends on the previous one, such as pagination with a cursor tied to a cookie, should keep one sticky session until the flow ends.

Rotation happens per new connection, not per HTTP request. A client that keeps one connection alive keeps the same exit for every request on it. The [sessions guide](https://crawlrelay.com/docs/sessions/) shows how to control this in requests, httpx, Scrapy and Playwright.

## What success rate should I expect from residential proxies?

Expect a high connection rate and a lower success rate on protected targets, and measure both. Proxyway's Proxy Market Research 2026 tested 13 providers: the median residential network answered 99.28% of requests, but only 74.43% of requests to real targets such as Amazon, Google and Instagram succeeded.

The gap is the target's own filtering, which no proxy removes. We publish no success-rate figure of our own until we have measured one with a stated method. Compare providers on **cost per successful request** for your own targets: run the same 1,000 URLs through each, count usable responses, and divide the traffic cost by that count.

## Residential, mobile or datacenter proxies for scraping?

| Proxy type | Use it for | Avoid it for | Sold by CrawlRelay |
| --- | --- | --- | --- |
| Residential (rotating) | Most public-data scraping: catalogues, listings, news, prices, search pages, location checks | Huge static files you could fetch from a CDN or an official dump | Yes, from $0.50/GB |
| Mobile 4G/5G (rotating) | Checks of what phone users see: mobile sites, apps and ads | Bulk crawling: it costs more per GB | Yes, from $1.50/GB |
| Datacenter | Your own sites, APIs and sites that accept datacenter traffic | Checks of what local home visitors see | No |

## How much do CrawlRelay residential proxies cost?

$1.50 for 1 GB, $5.94 for 10 GB, $50 for 100 GB and $500 for 1 TB, as of October 2026. Every tier includes all targeting options and sticky sessions.

| Plan | Quantity | Price | Price per unit |
| --- | --- | --- | --- |
| Test | 1 GB | $1.50 | $1.50/GB |
| Prototype | 5 GB | $3.75 | $0.75/GB |
| Build | 10 GB | $5.94 | $0.59/GB |
| Crawl | 50 GB | $25 | $0.50/GB |
| Pipeline | 100 GB | $50 | $0.50/GB |
| Corpus | 500 GB | $250 | $0.50/GB |
| Scale | 1 TB | $500 | $0.50/GB |

In every plan: Protocols: HTTP, HTTPS, SOCKS5 · Targeting: Country, city; US state and ZIP; ASN · Sessions: Rotating, or sticky up to 30 min · Traffic expiry: Does not expire

Prices in USD, as of 2026-10-13. Compared with 15 providers on the price-per-GB page. Page counts assume 50 KB of compressed HTML per page.

**Before you pay**

- Minimum top-up $25. Top up once in crypto, then buy any plan from your balance.
- Unused balance stays on your account and never expires, but it is not paid back, except where the law requires it.
- Credited once your payment is checked on the blockchain. Typical network confirmation time: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min

## Where do the residential IPs come from?

From established partner networks. CrawlRelay does not run its own device network: it resells IPs from established upstream partner networks. Our upstream provider confirms that device owners opt in and can opt out, and that its supply does not come from seized or disrupted networks such as NetNut or IPIDEA. That is the provider's confirmation, not a check we run on every device; the [sourcing page](https://crawlrelay.com/sourcing/) lists its limits. The 2026 takedowns showed what is at stake: in January Google took legal action against IPIDEA domains, and in July the FBI and IRS-CI seized NetNut's domains, after Google reported that devices had joined these networks without their owners' knowledge. Ask any provider, including us, where its IPs come from before you build a pipeline on it.

## Residential proxy API: questions developers ask

### Is there an SDK, or do I just use a proxy URL?

You just use a proxy URL: `http://USERNAME:PASSWORD@gw.crawlrelay.com:7777`. Every HTTP client, Scrapy, Playwright, Puppeteer and Selenium already support proxies, so no SDK is needed. The REST API is for account tasks such as sub-users, usage and the list of targetable locations.

### How many concurrent connections can I open?

Plans are billed per GB, not per connection or per thread. The practical limit is the target: open too many connections to one site and it answers 429 or blocks you. Start with a few connections per host and raise them while the error rate stays flat; the [concurrency guide](https://crawlrelay.com/docs/concurrency/) gives starting numbers.

### Can I target a specific city or internet provider?

Yes. Add `-city-<name>` to the username for a city, and in the United States `-state-` or `-zip-` for a state or a ZIP code; `-asn-<number>` targets an internet provider at no extra cost. City availability varies, and narrow targeting draws on fewer exits, so use it only when your data changes with it, such as local prices or local search results.

### How long can a sticky session last?

Sticky sessions keep the same IP for the time you set (ttl, in minutes), up to 30 minutes. The IP can change earlier, for example if the residential device goes offline. Design multi-step flows so they can restart from a checkpoint.

### Can I separate traffic per project?

Yes. Create a sub-user per scraper or customer project: each one has its own credentials and an optional traffic cap, so a runaway job cannot drain the whole plan. Sub-users are managed in the dashboard or through the [API](https://crawlrelay.com/docs/api/residential/).

### What happens when my traffic runs out?

Requests stop being served until you add traffic. Buy another plan from your balance in the client area, or through the [orders API](https://crawlrelay.com/docs/api/orders/), and the new traffic is added to your account. Watch the daily usage endpoint to top up before a long crawl runs dry.

### Which sites can I not scrape?

The gateway blocks Banking, government and payment-portal sites, plus SMTP (email-sending) ports 25, 465 and 587. Beyond that, our [Acceptable Use Policy](https://crawlrelay.com/acceptable-use/) allows public data only and forbids account takeover, fraud, spam and evading a site's deliberate blocks. Respect robots.txt and the target's terms.

**Start with 1 GB, scale to a terabyte** $1.50 for 1 GB, $0.50/GB from 50 GB. [Choose 1 GB](https://crawlrelay.com/app/checkout/?plan=res-1&product=residential&lang=en) · [See all plans](https://crawlrelay.com/pricing/)

---

CrawlRelay: CrawlRelay is a developer-first rotating residential and 4G/5G mobile proxy service for scrapers and AI data pipelines: non-expiring pay-as-you-go traffic from $0.50/GB, paid in crypto, with no ID upload. No KYC — no ID, no selfie, no documents. Pay in crypto.
