Skip to content

CUSTOMER API DOCUMENTATION

Get and replace proxy credentials.

Read the connection details for your applications. Replace proxy credentials when you need to revoke an old copy.

ProxySight docsUpdated
On this page

Read your saved connections

GET/api/v1.0/customer/proxies
Returns the saved selection, private proxy credentials, generated endpoints and account access state.

Authorization: Bearer <PS_API_KEY>120 requests / minute / account

This read does not generate a list or contact the gateways. Without active access it still returns account state, with access: false and empty credentials/endpoints.

application/json
Example response
{
  "gatewayReady": true,
  "synced": true,
  "access": true,
  "allowance": {
    "ports": 500,
    "threads": 500,
    "trial": false
  },
  "settings": {
    "mode": "request",
    "protocol": "http",
    "authentication": "credentials",
    "country": "world",
    "count": 2,
    "interval": 30
  },
  "whitelist": [],
  "credentials": {
    "username": "ps_user_7_example",
    "password": "your-proxy-password"
  },
  "endpoints": [
    {
      "id": 1,
      "host": "192.0.2.10",
      "port": 40300,
      "country": "world",
      "pool": "world",
      "mode": "request",
      "interval": 30
    },
    {
      "id": 2,
      "host": "192.0.2.11",
      "port": 40301,
      "country": "world",
      "pool": "world",
      "mode": "request",
      "interval": 30
    }
  ],
  "distribution": {
    "192.0.2.10": 1,
    "192.0.2.11": 1
  },
  "user": {
    "id": 7,
    "email": "[email protected]",
    "username": "casey",
    "role": "customer",
    "emailVerified": true,
    "status": "ACTIVE",
    "createdAt": "2026-10-20T10:00:00+00:00",
    "providers": [],
    "canEditCredentials": true,
    "tier": "premium",
    "trial": {
      "active": false,
      "used": true,
      "limitBytes": 1000000000,
      "usedBytes": 1000000000,
      "requests": 2500
    },
    "plan": {
      "id": "growth",
      "autoRenew": true,
      "paymentProvider": "stripe",
      "amountCents": 6000,
      "subscriptionId": "sub_example",
      "name": "Growth",
      "status": "active",
      "concurrency": 500,
      "ports": 500,
      "billingPeriod": "monthly",
      "expiresAt": "2026-11-24T10:00:00+00:00"
    }
  }
}
Response fields 7 fields
FieldMeaning
access / allowanceboolean / object | nullWhether the account can use proxies, with its ports, threads and trial flag.
gatewayReady / syncedbooleanGateway access is configured and the saved settings have reached all three gateways.
settingsobject | nullThe active mode, protocol, authentication, location, count and interval.
credentialsobjectSeparate proxy username and password. These are private and are not your API key.
endpoints[]arrayGateway host/port entries to use in your client. They are not a list of dedicated exit IPs.
distributionobjectHow many returned endpoints belong to each gateway host.
whitelist / userarray / objectAuthorized source addresses and the public account/plan summary.
Errors & recovery 3 cases
HTTPWhat happenedWhat to do
401The API key is missing, revoked, or its account is unavailable.Use the current Bearer key from Settings → API key.
429The account request limit was reached.Wait for the Retry-After header before retrying.
500The request could not be completed.Retry reads with backoff. After a write, read the saved state before sending it again.

Replace the proxy username and password

POST/api/v1.0/customer/proxies/credentials/rotate
Replaces the account proxy credential pair, applies it across the gateways and returns the updated connection state.

Authorization: Bearer <PS_API_KEY>120 / minute overall · credential replacement: 5 / hour

Update every client that uses the old proxy credentials after this succeeds. The API key and account login remain separate. Read the saved state after a timeout before issuing another replacement.

application/json
Example response
{
  "gatewayReady": true,
  "synced": true,
  "access": true,
  "allowance": {
    "ports": 500,
    "threads": 500,
    "trial": false
  },
  "settings": {
    "mode": "request",
    "protocol": "http",
    "authentication": "credentials",
    "country": "world",
    "count": 2,
    "interval": 30
  },
  "whitelist": [],
  "credentials": {
    "username": "ps_user_7_example",
    "password": "replacement-proxy-password"
  },
  "endpoints": [
    {
      "id": 1,
      "host": "192.0.2.10",
      "port": 40300,
      "country": "world",
      "pool": "world",
      "mode": "request",
      "interval": 30
    },
    {
      "id": 2,
      "host": "192.0.2.11",
      "port": 40301,
      "country": "world",
      "pool": "world",
      "mode": "request",
      "interval": 30
    }
  ],
  "distribution": {
    "192.0.2.10": 1,
    "192.0.2.11": 1
  },
  "user": {
    "id": 7,
    "email": "[email protected]",
    "username": "casey",
    "role": "customer",
    "emailVerified": true,
    "status": "ACTIVE",
    "createdAt": "2026-10-20T10:00:00+00:00",
    "providers": [],
    "canEditCredentials": true,
    "tier": "premium",
    "trial": {
      "active": false,
      "used": true,
      "limitBytes": 1000000000,
      "usedBytes": 1000000000,
      "requests": 2500
    },
    "plan": {
      "id": "growth",
      "autoRenew": true,
      "paymentProvider": "stripe",
      "amountCents": 6000,
      "subscriptionId": "sub_example",
      "name": "Growth",
      "status": "active",
      "concurrency": 500,
      "ports": 500,
      "billingPeriod": "monthly",
      "expiresAt": "2026-11-24T10:00:00+00:00"
    }
  }
}
Response fields 7 fields
FieldMeaning
access / allowanceboolean / object | nullWhether the account can use proxies, with its ports, threads and trial flag.
gatewayReady / syncedbooleanGateway access is configured and the saved settings have reached all three gateways.
settingsobject | nullThe active mode, protocol, authentication, location, count and interval.
credentialsobjectSeparate proxy username and password. These are private and are not your API key.
endpoints[]arrayGateway host/port entries to use in your client. They are not a list of dedicated exit IPs.
distributionobjectHow many returned endpoints belong to each gateway host.
whitelist / userarray / objectAuthorized source addresses and the public account/plan summary.
Errors & recovery 7 cases
HTTPWhat happenedWhat to do
401The API key is missing, revoked, or its account is unavailable.Use the current Bearer key from Settings → API key.
429The account request limit was reached.Wait for the Retry-After header before retrying.
500The request could not be completed.Retry reads with backoff. After a write, read the saved state before sending it again.
403No active trial or paid proxy access.Read /customer/account and activate a plan if needed.
409Another account configuration update is still running.Wait, then read /customer/proxies before changing it again.
422A setting, source IP, inventory selection or count is invalid.Use the returned field error and the location capacity response.
503Gateway synchronization could not finish.The desired settings are retained. Read the saved state before retrying.

Keep connection values private

  • Do not publish API responses, exported URI lists or request logs containing proxy passwords.
  • Use authentication: credentials in a configuration write. It selects the matching username/password endpoint bank.
  • Replacing proxy credentials changes access credentials, not the exit IP assignment.

Common questions

Does this replace my account password?

No. Account login, the customer API key and proxy connection credentials are independent.

Further reading

Requests: proxy configuration (opens in a new tab)Java 17 HTTP client configuration (opens in a new tab)cURL command reference (opens in a new tab)
Need help with this guide?Send us your question