Skip to content

CUSTOMER API DOCUMENTATION

Choose when the exit assignment changes.

Use the same configuration endpoint for Every request, timed sticky sessions and persistent assignments.

ProxySight docsUpdated
On this page

Pick the result you need

Dashboard optionAPI fieldsResult
Every requestmode: requestIndependent requests receive rotating assignments. An exit can repeat.
Sticky sessionmode: timed, interval: 10 seconds to 24 hours (supported presets)Related requests use the configured timed assignment behavior.
Keep the same IPmode: staticUse a persistent mapped assignment on the same port.

Apply a 30-second sticky session

PUT/api/v1.0/customer/proxies/configuration
Applies a timed EU Pool configuration and returns the selected endpoints with mode and interval.

Authorization: Bearer <PS_API_KEY>120 / minute overall · configuration: 20 / 5 minutes

This replaces the complete selection. Send the existing protocol, authentication and count if those should stay the same. World, EU and US are the rotating pools; read the catalog for their available capacities.

application/json
Example response
{
  "gatewayReady": true,
  "synced": true,
  "access": true,
  "allowance": {
    "ports": 500,
    "threads": 500,
    "trial": false
  },
  "settings": {
    "mode": "timed",
    "protocol": "http",
    "authentication": "credentials",
    "country": "eu",
    "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": "eu",
      "pool": "eu",
      "mode": "timed",
      "interval": 30
    },
    {
      "id": 2,
      "host": "192.0.2.11",
      "port": 40301,
      "country": "eu",
      "pool": "eu",
      "mode": "timed",
      "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"
    }
  }
}
Request parameters 8 inputs
ParameterWhereValue
modestring · requiredbodyrequest = Every request; timed = Sticky session with an interval; static = Keep the same IP.
protocolstring · requiredbodyhttp or socks5. HTTP supports HTTPS destinations through CONNECT.
authenticationstring · requiredbodycredentials or ip. Add a source address before selecting ip.
countrystring · requiredbodyrequest/timed: world, eu or us. static: world, eu or an available lowercase country code.
countinteger · requiredbody1–2,000, further limited by your plan and the matching available inventory.
intervalinteger · optionalbody10, 30, 60, 300, 600, 900, 1800, 3600, 7200, 21600, 43200 or 86400 seconds; default 30. Only timed mode uses it, but the value must always be valid.
expectedRevisionstring · optionalbodyThe active 24-character lowercase hex revision from GET /customer/proxies. Stale versions return 409.
requestIdstring · optionalbodyA unique 32-character lowercase hex request reference. Reuse it with exactly the same body after a timeout.
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.

Check your actual connection behavior

  • Check settings.mode and settings.interval in the returned state before using the exported list.
  • Test fresh connections before and after a session boundary; reused connections can behave differently.
  • Rotation can return a previously seen exit. Neither mode guarantees an unused IP for each request.

Common questions

Can I set a 24-hour session with this endpoint?

The timed API supports 10 and 30 seconds; 1, 5, 10, 15 and 30 minutes; and 1, 2, 6, 12 and 24 hours. For a persistent mapped assignment choose mode: static, shown as Keep the same IP in the dashboard.

Need help with this guide?Send us your question