A hostname, a port,
and the code you have.
Proxy Farms speaks SOCKS5 and HTTP, so most stacks need a configuration line rather than an integration project. Rotation is a REST call on top of that, and inbound messages come to you as webhooks.
Point your client at it.
Each proxy gives you one host and two ports: SOCKS5 on the base port, HTTP on the next one up. Authentication is a username and a password.
There is no SDK to install, no agent to run beside your workers and no library version to track. If your client accepts a proxy URL, it is already compatible.
Anything that speaks the protocol.
These are not partnerships and none of them need a plugin from us. They are listed because each one can be handed a proxy URL, which is the entire requirement.
The REST surface
Rotation is the call people automate, so it is the one we opened first. Keys are issued per account, and every response — including every refusal — is JSON.
Rotate a device
One call, keyed by the pairing id shown on the phone. The endpoint stays where it is — only the address behind it changes.
GET /v1/devices/{pairingId}/rotateKeys you issue and revoke
Create a key in the dashboard and it is shown once. Revoke it there too, and the next call with it is refused.
Authorization: Bearer pfk_...Refusals you can branch on
Every failure carries a stable code and a sentence fit to show a person, so your worker never has to read prose to find out what happened.
409 device_offline409 egress_on_wifi403 plan_requiredEvents come to you
A text can land at any second, so polling an inbox for one is mostly wasted requests. Register a URL against a device and the message comes to you instead.
You register a URL
One HTTPS endpoint per device, set on the Messages tab in the dashboard. We will not post to plain http or to a private address.
A message arrives
A text lands on that phone’s SIM — a verification code, a balance reply, anything the carrier delivers.
We post it, signed
A JSON body over HTTPS carrying the device it came from and the time it landed, with an HMAC signature over the timestamp and the body so you can tell it came from us.
We retry if you do not
Anything other than a 2xx is retried twice more, five seconds later and twenty. The last delivery and its result sit against the device in the dashboard, and twenty failures in a row switch the endpoint off.
Delivery fires the moment the phone hands the message up, and the same message is never posted twice — a retried sync forwards nothing you have already been sent.
The phone answers too
The phone that carries the IP also carries a number, and anything that arrives on it can be read where you work — in the dashboard, or in your own code.
Verification codes, forwarded
Point the webhook at the worker that is waiting for the code and it arrives in your process, not on a screen somebody has to read. The message lands on the SIM in the same phone the request went out on, so the number and the exit IP belong to each other.
Read the inbox
Every message the device has received, in the dashboard, filtered by folder and searchable by sender.
Send from the device
Write a message in the dashboard and the phone sends it over the carrier, not through a third party gateway.
Signed, so you can trust it
Every delivery carries an HMAC over the timestamp and the body. Check it against the secret on the device and a forged post gets nowhere.
The number is yours
It belongs to the SIM you put in the phone. Move the SIM and the number moves with it.
Webhook forwarding comes with the Farm Plan. The Grower Plan reads and sends from the dashboard.
There is nothing to install.
No SDK, no sidecar, no plugin that has to keep pace with our releases. The whole surface is a hostname, a port pair, a credential and an API key. Swap the proxy URL in your configuration and the rest of your stack never learns that anything changed.
See what the fleet can doChange one line and run it.
Free 7-day Farm Plan trial, no credit card. Pair a phone, copy the endpoint, point your client at it.