Skip to content

CUSTOMER API DOCUMENTATION

Get endpoints for the protocol you use.

Select the protocol in the configuration body. The API response remains JSON; the generated connection protocol changes.

ProxySight docsUpdated
On this page

HTTP or SOCKS5?

Use the exact host and port returned for the chosen protocol. Changing a scheme in an old connection string does not select the matching gateway listener.

ConfigurationExported URIConnection use
protocol: httphttp://…HTTP clients and HTTPS destinations through a CONNECT tunnel.
protocol: socks5socks5://…SOCKS5-capable applications. Configure remote DNS in your client when needed.

Generate SOCKS5 endpoints

PUT/api/v1.0/customer/proxies/configuration
Applies a SOCKS5 selection and returns the matching endpoints and proxy credentials.

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

The Python, Java and cURL examples call the customer API over HTTPS. Your application then connects through the returned SOCKS5 endpoints using a SOCKS5-capable client.

application/json
Example response
{
  "gatewayReady": true,
  "synced": true,
  "access": true,
  "allowance": {
    "ports": 500,
    "threads": 500,
    "trial": false
  },
  "settings": {
    "mode": "request",
    "protocol": "socks5",
    "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"
    }
  }
}
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.

Use the generated values in your application

  • HTTP: use the generated http:// proxy URL, including for HTTPS targets. The target’s HTTPS connection uses CONNECT.
  • SOCKS5: use a client with SOCKS support. Python Requests needs requests[socks]; cURL can use socks5h:// for proxy-side DNS.
  • Java 17’s standard HttpClient supports HTTP proxy configuration. Use an appropriate SOCKS-capable client for SOCKS5 traffic.

Common questions

Does protocol: http prevent HTTPS requests?

No. The HTTP proxy handles HTTPS destinations through CONNECT. Use the returned HTTP listener rather than substituting an unconfigured TLS-to-proxy scheme.

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)Java 17 networking and proxy authentication settings (opens in a new tab)
Need help with this guide?Send us your question