Resources
The questions people actually ask
These are the questions that arrive by email before anyone signs up, answered in the order they arrive. Several of the answers are no. Those are the useful ones, because finding out here costs you a minute and finding out after you integrate costs you a sprint.
What we do not offer
No residential or mobile addresses, no SOCKS5, no host:port proxy string, no search-engine results, no JavaScript rendering, no headless browser, no CAPTCHA solving, no scheduler or managed scraping jobs, and no HTML parsing service. If your question below is about one of those, the answer is that we do not sell it and are not about to.
What the product is, in one paragraph
You POST a URL to our API and get the target's response back. The call is POST /v2/proxy/fetch with region as a query parameter, your key in an x-api-key header, and a JSON body carrying the url you want. The reply is a JSON envelope: the body the target returned, the address it came out of, which region served it, and the target's own status, content type, final URL, redirect count and byte count.
There is nothing else to configure. No proxy string in your HTTP client, no per-language proxy setup, no session to keep alive.
Where the authoritative answers live
This page is prose and prose goes stale. The API reference at https://api.roamingproxy.com/v2/docs is public, generated from the running service, and is the document to trust when it and this page disagree. GET /v2/proxy/regions is the live region list. /pricing renders the plan catalog from the billing tables rather than from someone's memory of them.
Questions
- What exactly does RoamingProxy do?
- It fetches a URL for you from one of our egress nodes, so the target sees our address in the region you chose instead of yours. You send the URL, we return the response. Parsing what comes back is your side of the line.
- Which regions can I fetch from?
- us-east, us-west and europe, on AWS us-east-1, us-west-2 and eu-west-1. That is the whole fleet. Read GET /v2/proxy/regions rather than hardcoding the list: it is health-gated, so a region with nothing healthy behind it is not advertised. Log region_used on every response — it is normally the region you asked for, but if that region's endpoints all fail mid-request the fetch is served from another region and region_used tells you which. A region with no endpoints in service at all is refused outright with region_out_of_service rather than silently substituted.
- Do you have residential or mobile IPs?
- No. Every address we have belongs to an AWS range, because every node is an EC2 instance we run. Rotation within a datacenter range does not turn it into a residential range, and we will not pretend otherwise.
- Can I use it as a normal proxy, or over SOCKS5?
- No. There is no host:port endpoint and no SOCKS5 support. It is an HTTP API you call, which is why the same request works identically from a script, a serverless function and a browser backend without any proxy configuration.
- Can I get Google or Bing search rankings?
- No. Search engines serve a JavaScript challenge to datacenter addresses, and every address we have is one. We withdrew the search endpoint rather than sell one that returns a challenge page; asking for it now answers with the serp_withdrawn code.
- Does it run JavaScript on the page?
- No. You get the response the server sent. A page whose content is assembled in the browser will arrive as the shell the server sent, and no amount of retrying changes that. Many sites that look JavaScript-only have a JSON endpoint underneath that this is perfect for; that is worth ten minutes in your browser's network tab before you conclude we cannot help.
- What does it cost?
- Plans start at $25.00 per month including the first 50,000 requests, then $0.50 per 1,000 beyond that. The larger plans include more requests and rate the excess lower, so both halves get cheaper. /pricing reads the catalog live from the billing tables and is the page to check, because a number typed into marketing copy is a number that can drift.
- How do I sign up and get an API key?
- Create an account at https://cloud.roamingproxy.com, verify your email address, and mint a key on the API Keys page. The key is shown in full exactly once, so copy it then. Keys are scoped and individually revocable. Minting happens from a signed-in dashboard session and nothing else: an rp_ key cannot reach the key-management endpoints at all, and the attempt is refused with session_required. So a key leaked from a CI log cannot issue its own successor, and revoking it ends it.
- Is there self-serve checkout?
- Card checkout is being enabled through our payment provider, which acts as merchant of record. Until it is live, a plan is activated after a short exchange with a human: email billing@roamingproxy.com with roughly what you intend to fetch and how often, and you will get a straight answer about whether this fits before any money moves.
- Are rate limits per key or per account?
- Per account. All keys on one account draw from the same budget, so minting more keys does not multiply your rate. The ceilings are 120 a minute on the fetch endpoint, 60 a minute against any one target host, and 300 a minute for everything else in the reference. A 429 carries a Retry-After header; honour it.
- A request timed out. Is it safe to retry?
- Yes, if you sent an Idempotency-Key header. For 24 hours a repeat with the same key returns the stored response, marked with an Idempotency-Replayed: true header, without spending egress or billing a second request. Reusing that key for a different URL or region is refused rather than answered with the wrong response.
- What does an error look like?
- JSON with a human-readable detail and a stable machine-readable code, for example target_not_permitted, unknown_region, rate_limited or response_too_large. Branch on the code, never on the prose. The vocabulary is pinned against the published reference by a test, so a code you depend on cannot quietly change meaning between deploys.
- The call returned 200 but the page looks wrong. Why?
- A 200 from our API means we performed the fetch, not that the target was pleased about it. The target's own answer is the status field inside the envelope, so a site blocking you arrives as status 403 with the block page in result. Check that field before you check anything else.
- Do you log the URLs I fetch?
- No. Neither the target URL nor the response body is written down on an egress node. Metering records how many requests you made and how many bytes moved, because billing runs on those two numbers; the subject of a fetch is not part of that record. The consequence cuts both ways — we also cannot reconstruct a past run for you.
- Is there anything besides the proxy?
- A user-agent catalog at GET /v2/user-agents/, and a beta social data API covering Bluesky profiles and posts, Mastodon accounts and hashtags on a small allowlist of instances, and Hacker News. It is unpriced and bundled with the proxy plan. GET /social/platforms lists what serves and what is excluded, including Bluesky search, which upstream blocks.
- How do I reach a human?
- support@roamingproxy.com for anything technical, billing@roamingproxy.com for invoices, credits and quotes. The support page explains what to put in the message so the first reply is an answer rather than a request for more detail.
Get a key
Create an account and mint an API key in the dashboard. The full endpoint reference — request shapes, parameters and error codes — is published at https://api.roamingproxy.com/v2/docs.
