ProxioDocs
API Reference

Getting Started

Create an API key in the Proxio dashboard, verify it with GET /account, and generate your first proxy list, with copy-paste examples in cURL, Python, and Node.js.

This page takes you from zero to your first working API call. You'll create a key in the dashboard, confirm it with a GET /account request, and then pull a ready-to-use proxy list, all in cURL, Python, and Node.js.

The base URL for every request is https://dashboard.proxio.net/api/v1. Endpoint paths like /account are relative to it.

Create an API key

In the dashboard, go to Settings → API Keys and create a new key. Pick a preset that matches what the key will do:

  • Read-only (read) for dashboards and monitoring.
  • Automation (read, write) to also manage credentials, whitelists, sessions, and webhooks.
  • Full (read, write, purchase) to also place orders and renewals that spend from your wallet.

The full key is shown once, at creation time. Copy it immediately and store it in a secret manager, it starts with pxo_ and cannot be retrieved again. If you lose it, revoke it and create a new one.

Treat the key like a password

Anyone with your pxo_… key can act as your account within its scopes. Never commit it to source control or paste it into a browser. For extra safety, set an IP allowlist on the key.

Verify the key

Call GET /account with your key in the Authorization header. A 200 confirms the key is valid and shows your profile, wallet balance, and service totals.

curl https://dashboard.proxio.net/api/v1/account \
  -H "Authorization: Bearer pxo_9fJ2kQ7xR4mN8pL1dW6vB3cH5tZ0aYqS7dK2mN9x"
# pip install requests
import requests

BASE = "https://dashboard.proxio.net/api/v1"
API_KEY = "pxo_9fJ2kQ7xR4mN8pL1dW6vB3cH5tZ0aYqS7dK2mN9x"

resp = requests.get(
    f"{BASE}/account",
    headers={"Authorization": f"Bearer {API_KEY}"},
    timeout=15,
)
resp.raise_for_status()
print(resp.json()["data"])
// Node 18+ has global fetch, no dependencies needed.
const BASE = "https://dashboard.proxio.net/api/v1"
const API_KEY = "pxo_9fJ2kQ7xR4mN8pL1dW6vB3cH5tZ0aYqS7dK2mN9x"

const res = await fetch(`${BASE}/account`, {
  headers: { Authorization: `Bearer ${API_KEY}` },
})
if (!res.ok) throw new Error(`HTTP ${res.status}`)
const { data } = await res.json()
console.log(data)

200 response:

{
  "data": {
    "user": { "id": "clx_9a2f", "email": "[email protected]", "created_at": "2026-01-02T10:00:00.000Z" },
    "wallet": { "currency": "USD", "balance": "42.50" },
    "totals": { "active_services": 3, "total_services": 7, "active_credentials": 5 }
  },
  "meta": { "request_id": "req_8Ke2jP4mQ" }
}

Find a service

The API calls a package a service. List yours to grab an id to work with:

curl "https://dashboard.proxio.net/api/v1/services?status=active&limit=5" \
  -H "Authorization: Bearer pxo_9fJ2kQ7xR4mN8pL1dW6vB3cH5tZ0aYqS7dK2mN9x"
import requests

BASE = "https://dashboard.proxio.net/api/v1"
API_KEY = "pxo_9fJ2kQ7xR4mN8pL1dW6vB3cH5tZ0aYqS7dK2mN9x"

resp = requests.get(
    f"{BASE}/services",
    headers={"Authorization": f"Bearer {API_KEY}"},
    params={"status": "active", "limit": 5},
    timeout=15,
)
resp.raise_for_status()
services = resp.json()["data"]
print(services[0]["id"], services[0]["category"])
const BASE = "https://dashboard.proxio.net/api/v1"
const API_KEY = "pxo_9fJ2kQ7xR4mN8pL1dW6vB3cH5tZ0aYqS7dK2mN9x"

const res = await fetch(`${BASE}/services?status=active&limit=5`, {
  headers: { Authorization: `Bearer ${API_KEY}` },
})
const { data } = await res.json()
console.log(data[0].id, data[0].category)

Copy the id of a RESIDENTIAL service for the next step. See Services for the full list and detail shapes.

Generate your first proxy list

Ask the service for ten ready-to-use proxy lines. Targeting is embedded directly in the username, so each line is paste-ready, no separate configuration. session=sticky pins each line to one IP, which makes the session segments visible in the output below.

curl "https://dashboard.proxio.net/api/v1/services/clpkg_2a9x/proxy-list?count=10&country=us&session=sticky&format=txt" \
  -H "Authorization: Bearer pxo_9fJ2kQ7xR4mN8pL1dW6vB3cH5tZ0aYqS7dK2mN9x"
import requests

BASE = "https://dashboard.proxio.net/api/v1"
API_KEY = "pxo_9fJ2kQ7xR4mN8pL1dW6vB3cH5tZ0aYqS7dK2mN9x"
SERVICE_ID = "clpkg_2a9x"

resp = requests.get(
    f"{BASE}/services/{SERVICE_ID}/proxy-list",
    headers={"Authorization": f"Bearer {API_KEY}"},
    params={"count": 10, "country": "us", "session": "sticky", "format": "txt"},
    timeout=15,
)
resp.raise_for_status()
print(resp.text)
const BASE = "https://dashboard.proxio.net/api/v1"
const API_KEY = "pxo_9fJ2kQ7xR4mN8pL1dW6vB3cH5tZ0aYqS7dK2mN9x"
const SERVICE_ID = "clpkg_2a9x"

const res = await fetch(
  `${BASE}/services/${SERVICE_ID}/proxy-list?count=10&country=us&session=sticky&format=txt`,
  { headers: { Authorization: `Bearer ${API_KEY}` } },
)
console.log(await res.text())

200 response (text/plain):

abc123xyz-region-us-sessid-k3n8f2p9q1ab1-sesstime-10:[email protected]:16666
abc123xyz-region-us-sessid-m7b2c4d6e8fg2-sesstime-10:[email protected]:16666

Each line is username:password@host:port, ready to drop into any HTTP client. The Proxy List page covers the full username grammar, every query parameter, and recipes like "1000 sticky US sessions for 30 minutes".

Where next

On this page