Skip to main content

Sessions overview

A session is a proxy usage unit. Each session has a session_id, type (dynamic or static), status, and when active, a proxy object (host, port, credentials, full_url).

Lifecycle

creating → active → [rotating] → expired
                  ↘ error
                  ↘ terminated (manual)
  • creating — Session created; backend is provisioning. Poll GET /sessions/{session_id} until status === "active".
  • active — Ready; use proxy.full_url to send traffic.
  • rotating — (Dynamic only) IP rotation in progress.
  • expired — Traffic or time exhausted.
  • error — Provisioning or runtime error.
  • terminated — Manually terminated via POST /sessions/{session_id}/terminate.

Session types

TypeAPI docDescription
DynamicDynamicRotating IP; pay per traffic (GB). Create with type: "dynamic" and config.product_no, config.traffic_gb, etc.
StaticStaticFixed IP; pay per duration. Create with type: "static" and config.product_no, config.quantity, config.duration_days.

API summary

ActionMethodPath
CreatePOST/sessions
ListGET/sessions?status=active&type=dynamic&page=1&page_size=20
GetGET/sessions/{session_id}
Rotate (dynamic)POST/sessions/{session_id}/rotate
Renew (static)POST/sessions/{session_id}/renew
TerminatePOST/sessions/{session_id}/terminate
UsageGET/sessions/{session_id}/usage
WhitelistPOST/sessions/{session_id}/whitelist

Idempotency

For create and renew, send Idempotency-Key to avoid duplicate orders on retries:
curl -X POST "https://api.nexalayer.net/v1/sessions" \
  -H "X-API-Key: <api_key>" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: create_dynamic_001" \
  -d '{ "type": "dynamic", "config": { ... } }'
Next: Dynamic, Static, Rotate, Renew, Terminate.