# Modifying proxy information

Update a proxy configuration.
- **Preconditions**: the proxy must exist in the team. **Dynamic proxies cannot be updated** through this endpoint. The provider must be a recognised value.
- **Effect**: this is a full overwrite, not a patch — fields you omit fall back to their defaults rather than keeping their current values. Read the proxy first and send it back complete.
- **Propagation**: profiles keep their binding because only the proxy record changes, but a browser or Cloud Phone that is already running continues to use the connection details it started with. Restart it to pick up the new ones.
- **Completion**: synchronous. No optimistic locking, so concurrent updates are last-write-wins.

Documented business errors: `14003`, `14023`. See [Error Codes](../Getting%20Started/error-codes.md) for what each code means. Any operation can additionally return the common codes.

Endpoint: POST /api/proxyInfo/update
Version: 2026-09-05

## Request fields (application/json):

  - `id` (string, required)
    Unique proxy ID

  - `proxyIp` (string, required)
    Proxy server IP address

  - `proxyPort` (integer, required)
    Proxy server port

  - `proxyName` (string)
    Custom name for the proxy

  - `country` (string)
    Country (e.g., "US", "CN")

  - `city` (string)
    City name

  - `username` (string)
    Authentication username (if required)

  - `password` (string)
    Authentication password (if required)

  - `proxyType` (integer)
    Proxy protocol type:
- `0` = HTTP
- `1` = HTTPS
- `2` = SOCKS5
- `3` = SSH

  - `proxyProvider` (integer, required)
    Proxy provider ID:
- `0` = HTTP
- `1` = HTTPS
- `2` = SOCKS5
- `3` = SSH
- `4` = Oxylabs
- `5` = Proxys.io
- `6` = GeoSurf
- `7` = Luminati
- `8` = Lumauto
- `9` = Oxylabsauto
- `10` = Trojan
- `11` = Shadowsocks
- `12` = vmess
- `13` = ABCPROXY
- `14` = LunaProxy
- `15` = IPHTML
- `16` = PiaProxy
- `17` = 922S5

  - `encryptionType` (integer)
    Encryption type (provider-specific, usually 0 for plain)

  - `ipMonitor` (boolean)
    Enable IP change monitoring

  - `ipChangeAction` (integer)
    Action to take when IP changes:
- `1` = Notify / Refresh (common value)

> Check system documentation for full options.

  - `refreshUrl` (string)
    URL to trigger IP refresh (if supported by provider)

  - `state` (string)
    Reserved field or custom state (optional)

## Response 200 fields (application/json):

  - `code` (integer, required)
    Return result code 0:Normal Other codes are exceptions.

  - `msg` (string | null, required)
    Error message

  - `requestId` (string, required)
    Operation Request ID

