Real 4G and 5G SIMs on hardware we own, in 42 British towns and cities. Every request exits a different subscriber IP, a different mast and a different city. You pay for gigabytes, nothing else.
Why mobile wins
UK carriers put tens of thousands of real customers behind a single CGNAT address. When your request leaves a Vodafone mast in Sheffield, it is genuinely indistinguishable from the person scrolling next to it — because it is the same IP.
A target site that blocks one of our addresses also blocks every real subscriber sharing it. Almost nobody does. That is why mobile survives where datacentre ranges die in minutes.
No pool-wide rotation windows. Each connection is dispatched to a different SIM, so a thousand concurrent requests leave from a thousand different masts.
Contracts in our name, modems in our racks, in British data centres. No consent-scraped residential SDK, no mystery peer network, no phone-in-someone's-pocket surprises.
| Datacentre | Residential pools | SIMSwarm mobile | |
|---|---|---|---|
| Where the IP comes from | Hosting ASN | Peer SDKs on consumer devices | Our own contracted UK SIMs |
| Trust at hard targets | Low | Medium | Highest |
| Rotation granularity | Per session | Per request or timed | Per request, per mast |
| Location control | ASN only | Country / city | City, region & carrier |
| Provenance you can audit | Partial | Opaque | Full SIM & site register |
| Typical UK price per GB | £0.50 – £1 | £3 – £8 | £1.20 – £2.50 |
Competitor pricing observed August 2026 across published rate cards. Datacentre remains cheaper per gigabyte — it just stops working on the targets you are reading this page about.
How it works
Point your existing scraper at a single host and port. No SDK, no browser agent, no rewrite.
Standard HTTP, HTTPS and SOCKS5 with basic auth. Works unchanged with Scrapy, Playwright, Puppeteer, curl, HTTPX and every off-the-shelf scraper you already run.
Our dispatcher scores every online SIM on health, recent target history and current load, then hands your request the freshest exit that matches your targeting rules.
Metering happens at the gateway, per request, to the kilobyte. Failed and blocked requests below 400 bytes are never charged.
Default behaviour. Nothing to configure, no rotation endpoint to call.
Hold one exit IP for 1 second to 60 minutes with a session token in the username.
Pin to Manchester, or to EE, or to both. Falls back gracefully when a pool is busy.
No thread caps or port limits. Run 20 workers or 2,000 — you are billed on bytes either way.
One credential works across all three. IP allowlisting available alongside basic auth.
Poll spend, per-key breakdowns and success rates as JSON. Webhook alerts on thresholds.
Gateway-level retry on connection failure and 407/502, dispatched to a fresh SIM. Not billed.
Issue scoped keys per client or per crawl with their own byte caps and targeting rules.
Integration
Your credential encodes your targeting. Change the username, change the exit — no API calls, no state to manage.
# rotate on every request (default)
curl -x gb.simswarm.io:9000 \
-U "sw-live-3f9ac2:secret" \
https://www.example.co.uk/search?q=widgets
# pin to Birmingham, on EE, sticky for 5 minutes
curl -x gb.simswarm.io:9000 \
-U "sw-live-3f9ac2-city-birmingham-carrier-ee-session-b7f1-ttl-5m:secret" \
https://www.example.co.uk/checkoutimport httpx
PROXY = "http://sw-live-3f9ac2:secret@gb.simswarm.io:9000"
with httpx.Client(proxy=PROXY, timeout=30) as c:
for url in urls: # each call = a new UK mobile IP
r = c.get(url)
print(r.status_code, r.headers["x-swarm-exit"])import { HttpsProxyAgent } from "https-proxy-agent";
const agent = new HttpsProxyAgent(
"http://sw-live-3f9ac2:secret@gb.simswarm.io:9000"
);
const res = await fetch("https://www.example.co.uk/", { agent });
console.log(res.headers.get("x-swarm-exit")); // 82.132.214.19 (EE/Manchester)# settings.py
DOWNLOADER_MIDDLEWARES = {
"scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware": 110,
}
HTTP_PROXY = "http://sw-live-3f9ac2:secret@gb.simswarm.io:9000"
CONCURRENT_REQUESTS = 256 # no concurrency cap on our side
RETRY_TIMES = 2 # gateway already retries dead SIMs for freeconst browser = await chromium.launch({
proxy: {
server: "http://gb.simswarm.io:9000",
username: "sw-live-3f9ac2-session-${crawlId}-ttl-30m",
password: "secret"
}
});
// one browser context keeps one UK mobile IP for the whole journeyCoverage
We are deliberately deep before we are wide. The UK swarm covers all four national carriers across 42 sites, from Inverness to Plymouth — the sort of geographic spread that a single-city 4G farm cannot fake.
Every region is reachable on the same credential through a country-code gateway. Ireland and the Netherlands enter private beta this autumn; Germany and the US follow.
Pricing
Pay as you go, no monthly minimum, and your balance never expires. Move the slider to see where you land.
Roughly 786,000 product pages a month at 200 KB each, or 15.7 million JSON API calls at 10 KB.
You keep £675 a month versus the enterprise rate card. See all bands →
Every IP in the swarm traces back to a SIM contract in SIMSwarm's name and a modem in a site we lease. There is no peer network, no bundled SDK and no consumer device earning pennies to carry your traffic. If your compliance team asks where an IP came from, we can tell them — down to the rack.
No credential stuffing, no card testing, no fraud, no CSAM, no traffic aimed at UK critical national infrastructure. Accounts are KYC-checked above £500/month. We would rather lose the revenue than end up in the sort of case study that gets a whole industry regulated.
Residential pools are usually assembled from consumer devices running a partner SDK — the IPs are real, but the provenance is murky and the exit could vanish mid-session when someone closes an app. Our exits are SIM cards we pay a monthly bill for, in modems we rack ourselves. They do not disappear, and we can account for every one of them.
Yes, by default. Each new connection is dispatched to a different SIM by the gateway, so parallel requests leave from different carriers and cities simultaneously. If you need continuity — a login, a cart, a paginated session — add a session token to your username and we will hold that exit for up to 60 minutes.
Bytes on the wire in both directions, measured at the gateway, including TLS overhead. Connection failures, 407s and any response under 400 bytes are not billed. Gateway-initiated retries are free. Your dashboard shows usage per key, per target host and per hour.
Mobile adds latency — anyone claiming otherwise is selling datacentre IPs with a mobile label. Expect 180–400 ms to first byte and 1.9 s median for a full page fetch. In exchange you get success rates on hard targets that datacentre ranges have not matched in years.
Yes. Dedicated ports with a private SIM, your own rotation schedule and an API reset endpoint are available from £45/SIM/month with unmetered traffic. Sensible when you are hammering one target continuously; the swarm is better for broad crawls.
Ireland and the Netherlands go to private beta this autumn, Germany and the US in 2027. The gateway is already country-addressed, so adding a region means changing gb to ie in your proxy host — your code, keys and billing stay exactly as they are.
Collecting publicly available data generally is, but the details matter — copyright, database rights, UK GDPR where personal data is involved, and the target's own terms. We are infrastructure, not your legal advisor: bring a lawful use case, and our acceptable use policy tells you where our line sits.
A free gigabyte, no card, no call with a sales engineer. If our success rate on your hardest target does not beat what you run today, you have lost twenty minutes.