Documentation

SIMSwarm gateway documentation

One endpoint, targeting encoded in your credentials, and a different mobile exit on every request.

Quickstart

SIMSwarm is an ordinary forward proxy. There is no SDK to install and no API call to make before you can send traffic — everything is controlled through the credential you authenticate with.

SIMSwarm is sold to registered data-collection businesses only. Credentials are issued once an account has been approved — there is no public self-serve signup.

Once your account is approved we issue your credentials. Then send a request:

curl -x gb.simswarm.io:9000 -U "swarm11072:YOUR_SECRET" https://api.ipify.org
82.132.214.19

curl -x gb.simswarm.io:9000 -U "swarm11072:YOUR_SECRET" https://api.ipify.org
92.40.176.88   # different SIM, different carrier, different city

That is the entire integration. Point your existing crawler at the same host and port and every request it makes will leave from a different British mobile IP.

Endpoints

HostPortProtocolNotes
gb.simswarm.io9000HTTP, HTTPS (CONNECT) and SOCKS5Shared endpoint. All three protocols on this one port.
gb.simswarm.io9001–10000HTTP, HTTPS and SOCKS5Your dedicated port, if you have one. Pinned to your account.
app.simswarm.io443REST — usage & accountYour account, usage and, if enabled, the Fetch API.

There are no regional endpoints. Every country we cover is reached from this same host and port by adding a targeting token to your username — -country-us, -country-de. Widening a crawl to a new country is a string change, not an integration.

One port, three protocols. The gateway identifies HTTP, HTTPS CONNECT and SOCKS5 from the first byte of the connection, so there is no separate SOCKS port to configure. The same credential works for all three.

Authentication

Standard proxy basic auth. The username carries your account name and your targeting rules, separated by hyphens; the password is your secret.

Account names never contain a hyphen. Everything after the first hyphen is parsed as targeting, so a name with one in it could not be told apart from a typo. That is deliberate: a mistyped option fails loudly instead of being swallowed into the username.

# structure
<account>[-option-value]...  :  <secret>

# plain — rotate on every request
swarm11072:YOUR_SECRET

# Manchester, EE only — still rotating on every request
swarm11072-city-manchester-carrier-ee:YOUR_SECRET

IP whitelisting

Prefer not to put secrets in a proxy URL? If you have a dedicated port, we can whitelist your source addresses and you connect with no login at all — plain HTTP with no Proxy-Authorization, or SOCKS5 offering “no authentication”. Your pool, rotation, limits and metering are unchanged.

Two things worth knowing. The shared port on 9000 never honours a whitelist — whitelisting only applies to your own dedicated port. And if you do send a login it is always honoured and must be correct, which is how whitelisted customers still get targeting: send the username with its targeting tokens as normal.

Targeting parameters

Unknown options are rejected with 400 rather than silently ignored — a typo in -citty-manchester fails loudly, naming the option it could not read. An unknown city, a missing value, or a prefix that matches more than one city all return 400 naming the problem and, where relevant, the candidates it was torn between.

Rotation

Every request rotates. Each new TCP connection is dispatched to whichever healthy SIM matches your targeting and has the least recent contact with the host you are calling. Nothing is held between requests, including within a keep-alive pool — every fresh connection gets a fresh exit.

There is no rotation mode to select, no rotation endpoint to call and no cooldown to wait out. Narrowing your targeting narrows the pool a request can land in; it never pins you to one SIM.

Sticky sessions are not offered yet. Holding one exit IP across a sequence of requests — for a login, a basket or a cursor-paginated crawl — is in development and has no date. Until it ships, treat every request as independent and design crawls that do not need continuity. If your work depends on it, say so when you apply and we will tell you when it lands.

What the proxy adds to your traffic

Nothing. The gateway is a transparent forward proxy: it does not inject, rewrite or strip headers on your requests or on the responses coming back. On an HTTPS CONNECT tunnel it could not if it wanted to — the traffic is encrypted end to end between you and the target.

If you need per-request diagnostics — which exit answered, how many attempts it took, how much was billed — that is what the Fetch API is for. It terminates the request itself and can therefore report on it.

Errors

Errors come back in the proxy channel, before your request reaches the target.

ParameterValuesEffect
countrygb · us · ie · nl · de · fr · es · pl · auRestrict to one country. Alias: cc.
citymanchester, chicago, amsterdam, …Restrict to one city. Accepts a unique prefix.
carrieree · o2 · three · verizon · att · tmobile · orange · vodafone · …Restrict to one network. Alias: isp. Country-scoped, so fr/orange and pl/orange are distinct.
servera server nameRestrict to one specific server. Accepts a unique prefix.
CodeMeaningWhat to do
400Targeting could not be parsed or matchedThe message names the problem: unknown option, missing value, unknown city, or an ambiguous prefix with its candidates. Fix the username.
403Protocol not permitted on this accountSome accounts are SOCKS5-only. Use the protocol your account is configured for.
405Method not understood by the proxyCheck you are speaking HTTP proxy, HTTPS CONNECT or SOCKS5.
407Bad or unknown credentialsCheck the account name and secret. On a dedicated port, another account’s valid credentials are still refused — the port is pinned to you.
413Response larger than your per-request limitRaise the limit or fetch something smaller. On plain HTTP we refuse before the body moves; on HTTPS the transfer is cut when it crosses the limit.
429Daily data cap reachedResets at midnight UTC. Ask us to raise the cap if you need more.

Beyond that, the gateway gives each request up to three attempts on different exits. An exit that has not answered within three seconds is abandoned and the next one dialled. Those retries are ours, not yours — you do not need to layer aggressive client-side retries on top, and doing so mostly multiplies load on the target.

Account & usage API

Bearer-authenticated JSON at app.simswarm.io, so you can reconcile our figures against your own rather than taking an invoice on trust.

curl -H "Authorization: Bearer sws_live_…"   "https://app.simswarm.io/v1/usage?from=2026-09-01&to=2026-09-30"

{
  "period": { "from": "2026-09-01", "to": "2026-09-30" },
  "bytes":  161061273600,
  "gb":     150.0,
  "by_day": [ { "date": "2026-09-01", "gb": 4.9 }, … ]
}

/v1/account returns your endpoint, your dedicated port if you have one, your whitelisted addresses, your daily cap and your per-request size limit.

We do not publish the size or composition of the pool behind your account — how many exits or addresses sit behind it, or their health. Your pool has a name and a set of countries, cities and carriers you can target within it; the inventory itself is not customer-visible.

Fetch API

Optional, and a different shape of product: give us a URL, get the page body back. We handle the exit, the retries and the browser-shaped TLS handshake, so you are not maintaining a scraping client at all.

curl "https://app.simswarm.io/v1/fetch?token=sws_live_…&url=https%3A%2F%2Fwww.example.co.uk%2Fproduct%2F123&country=gb"

The response body is the target’s. The headers tell you what happened:

X-Target-Status:   404      # the TARGET's code, not ours — a 404 means discontinued
X-Swarm-Result:    ok
X-Swarm-Attempts:  1
X-Swarm-Ms:        640
X-Swarm-Billed:    1

Honest about the ceiling: on a 40-page basket across nine retailers we returned 100% of pages with 95% carrying the real price, median 0.9 s. But some sites — Akamai Bot Manager and Imperva in particular — defeat us and everyone else, and we will tell you which of yours do before you buy rather than after. Ask for a measured trial on your three hardest targets.

Practical advice

Limits & fair use

Three limits are set per account, and all three are visible to you on /v1/account:

Accounts are issued to registered companies for commercial data collection. Personal use, resale of raw proxy access, social media automation, bulk account creation and limited-release purchasing bots are outside the terms and will end the account.

Prohibited outright: credential stuffing, card testing, fraud, malware distribution, CSAM, and any traffic directed at UK critical national infrastructure. Accounts above £500 a month are KYC-verified. We respond to abuse reports within one business day and can trace any exit IP back to the account and SIM that used it.

Ready to point something at it?

Approved business accounts start with an evaluation gigabyte.

Apply for access Who it's for