---
title: "Turn the residential IP on or off, or get a new one"
method: POST
path: "/api/computers/{id}/residential-proxy"
tags: ["computers"]
---

# Turn the residential IP on or off, or get a new one

`POST /api/computers/{id}/residential-proxy`

## Request

- Base URL: `https://www.orgo.ai`
- URL: `https://www.orgo.ai/api/computers/{id}/residential-proxy`
- Auth: HTTP bearer

enabled true turns it on and keeps the computer’s sticky IP; enabled false turns it off. new_ip with enabled true moves to a different IP: on a proxy that is already on, Chrome is left running.

US IPs only for now: country takes us and nothing else, and any other value answers 400 `residential_country_unavailable`. To ask about other countries, email contact@orgo.ai.

New IP limits: one a minute and 30 a day per computer, 200 a day per account. A day is UTC, and an attempt that fails still counts. Past a limit the answer is 429 `residential_new_ip_limited` with retry_after and Retry-After.

Some sites cannot be reached through a residential IP: ticketing, video and music streaming, gambling, torrents and speed tests, along with what the provider blocks itself, such as banks, government sites and mail ports. Chrome shows ERR_TUNNEL_CONNECTION_FAILED for them. Webmail in the browser works. Orgo records the sites a computer reaches this way (the domain, never a path or content), per computer and IP, for 30 days.

## Path parameters

- `id` string, required

## Request body

- object
  - `enabled` boolean, required
  - `new_ip` boolean: With enabled true: move to a different IP.
  - `country` 'us': The exit country. Only us for now; email contact@orgo.ai to ask about others.

## Response `200`

The status after the change.

- ResidentialProxyStatus
  - `proxy_on` boolean, required
  - `exit_ip` string, nullable, required: The last exit IP Orgo saw; null while the proxy is off.
  - `country` string, required: The exit country. us.
  - `quota` object, required: The workspace owner’s residential data.
    - `granted_bytes` integer, required
    - `used_bytes` integer, required
    - `remaining_bytes` integer, required
  - `changed` boolean: With ?check=1: the exit IP differs from the last one Orgo saw.
  - `checked_at` string, date-time: With ?check=1: when it was read.

## Other responses

- `400`: enabled is missing, a country other than us (`residential_country_unavailable`), or a computer that is not a Linux VM (`residential_proxy_unsupported`).
- `403`: Residential IPs are not available here, or the account is an unclaimed agent account.
- `404`: No such computer.
- `409`: The data is used up, residential IPs or New IP are paused for this computer or account, the computer has a dedicated IP, it is asleep (`computer_asleep`), or it is not ready. Nothing changed.
- `429`: Over a New IP limit (`residential_new_ip_limited`). Retry-After says when.

## Changes

- **2026-11-04** `b9e430665e74`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/orgo/apis/orgo-api/changes/api/computers/:id/residential-proxy/post.md)

---

[API](https://skmtc.dev/orgo/apis/orgo-api.md) - [All operations](https://skmtc.dev/orgo/apis/orgo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/orgo/apis/orgo-api/revisions/e4c1e7379fa5?raw)
