ProxBits

ProxBits Open API

Manage your proxy IPs programmatically — purchase, query, renew, and release. Pure RESTful JSON, supporting VLESS + SOCKS5 + HTTP across one endpoint.

Quick Start

6 steps to integrate. From order to credentials typically takes under a minute.
1

Create an API Token

Console → API Management → New Token

2

Check balance / pricing

GET /balance and /offerings to check account balance, live stock, and per-region pricing

3

Place an order

POST /purchase submits an order; the amount is debited from your balance

4

Poll order status

GET /orders/{order_no} until status=completed (about 30-60s)

5

Get connection credentials

Response includes vless_link / socks5_url / http_url for all three protocols

6

Wire it up

Drop the credentials into V2RayN / curl / any supported client

Authentication

All endpoints authenticate via Bearer Token (HTTP header).
API base URL: https://proxbits.com/api/open
http
GET /api/open/balance HTTP/1.1
Host: proxbits.com
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
json
// Standard response envelope
{
  "code": 200,      // 200 = success, anything else = failure
  "msg": "SUCCESS",
  "data": { /* ... */ }
}

// Common error codes
// 401 — token invalid or missing
// 403 — permission denied (account disabled, etc.)
// 404 — resource not found (wrong order/IP id, etc.)
// 400 — bad request / insufficient balance

Available IP Types

IP types and regions currently supported. Use GET /api/open/offerings.
Type codeNameAvailable regionsNotes
static_residentialStatic Residential ISPUnited States (US)30 / 60 / 90-day cycles, dedicated IP

API Reference

7 core endpoints covering accounts, pricing, purchase, query, and renewal.
GET/api/open/balance
Get account balance (USD).
Request
bash
curl 'https://proxbits.com/api/open/balance' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
Response
json
{
  "code": 200,
  "msg": "SUCCESS",
  "data": {
    "balance": 102.20,
    "currency": "USD"
  }
}
GET/api/open/offerings
Get all purchasable countries with live stock + pricing (30/60/90 day). Fetched live with a 60s Redis cache.
Request
bash
curl 'https://proxbits.com/api/open/offerings' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
Response
json
{
  "code": 200,
  "msg": "SUCCESS",
  "data": [
    {
      "area_id": 16,
      "country_name": "United States",
      "in_stock": true,
      "upstream_price_30d": 4.00,
      "price_30d": 8.00,
      "price_60d": 16.00,
      "price_90d": 24.00
    }
    // ... 32+ countries
  ]
}
Out-of-stock countries (in_stock=false) are still listed but cannot be purchased. Use this endpoint to look up area_id before ordering.
GET/api/open/pricing
[Legacy] Simplified pricing list. Prefer /api/open/offerings instead.
Request
bash
curl 'https://proxbits.com/api/open/pricing' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
Response
json
{
  "code": 200,
  "msg": "SUCCESS",
  "data": [
    {
      "area_id": 16,
      "country": "United States",
      "country_name": "United States",
      "ip_type": "static_residential",
      "price_per_month_usd": 8.00
    }
    // ... 32+ countries
  ]
}
POST/api/open/purchase
Place an order (asynchronous; returns order_no, must be polled). area_id is required — see GET /api/open/offerings for the catalog.
Parameters
NameRequiredTypeDescription
area_idYesintCountry id (e.g. US=16, HK=101, JP=36 — full list via GET /api/open/offerings)
qtyNointQuantity, 1-50 (default 1)
duration_monthsNointDuration, 1/2/3 (30/60/90 days, default 1)
auto_renewalNoboolAuto-renew (default false)
Request
bash
curl -X POST 'https://proxbits.com/api/open/purchase' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "area_id": 16,
    "qty": 1,
    "duration_months": 1,
    "auto_renewal": false
  }'
Response
json
{
  "code": 200,
  "msg": "SUCCESS",
  "data": {
    "order_no": "LA-20260520093000-A1B2C3",
    "order_id": "uuid-xxx",
    "status": "processing",
    "qty": 1,
    "estimated_amount_usd": 8.00
  }
}
Balance is debited synchronously (estimated from the pricing table). Failed orders are automatically refunded.
GET/api/open/orders/{order_no}
Get order status. When status=completed, the response includes full credentials for the provisioned IPs.
Request
bash
curl 'https://proxbits.com/api/open/orders/LA-20260520093000-A1B2C3' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
Response
json
{
  "code": 200,
  "msg": "SUCCESS",
  "data": {
    "order_no": "LA-20260520093000-A1B2C3",
    "status": "completed",
    "qty": 1,
    "amount_usd": 8.00,
    "created_at": "2026-05-20T09:30:00Z",
    "ips": [
      {
        "id": "uuid-of-proxy-ip",
        "real_ip": "168.158.175.227",
        "country": "US",
        "relay_ip": "5.78.45.83",
        "vless_port": 443,
        "socks5_port": 1080,
        "http_port": 8080,
        "relay_user": "la-u583f6e3b-44b02a74",
        "relay_password": "PVZLsW6t6HwAz4N7BVSOSznAz4433H5O",
        "vless_uuid": "fdbf84fb-b473-4ec7-9d05-9d83fb8a986c",
        "vless_link": "vless://...?security=reality&...",
        "socks5_url": "socks5://la-u...:PVZ...@5.78.45.83:1080",
        "http_url": "http://la-u...:PVZ...@5.78.45.83:8080",
        "reality_public_key": "MrwGZqEZO3w5T1g5aetvueYf7jO4UVBCdJxaSqLw6kE",
        "reality_short_id": "3ef1d4113fb6de71",
        "reality_sni": "www.microsoft.com",
        "expire_at": "2026-06-20T09:30:00Z",
        "status": "active",
        "auto_renewal": false
      }
    ]
  }
}
status values: processing / completed / failed. On failure, data.error contains the error detail.
GET/api/open/ips
List all proxy IPs owned by the current account (paginated + status-filtered).
Parameters
NameRequiredTypeDescription
statusNostringactive / expired / invalid
pageNointPage number (default 1)
page_sizeNointPage size (default 20, max 100)
Request
bash
curl 'https://proxbits.com/api/open/ips?status=active&page=1&page_size=20' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
Response
json
{
  "code": 200,
  "msg": "SUCCESS",
  "data": {
    "total": 1,
    "page": 1,
    "page_size": 20,
    "items": [ /* same shape as orders/{order_no} ips[] */ ]
  }
}
GET/api/open/ips/{ip_id}
Get details for a single IP (including all three protocol credentials).
Request
bash
curl 'https://proxbits.com/api/open/ips/uuid-of-proxy-ip' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
Response
json
{
  "code": 200,
  "msg": "SUCCESS",
  "data": { /* same shape as the ip object in orders detail */ }
}
POST/api/open/renew
Batch renewal (synchronous). UUID / credentials / egress IP are preserved — only expire_at is extended.
Parameters
NameRequiredTypeDescription
ip_idsYesstring[]List of IP ids to renew
monthsNointRenewal duration 1/2/3 months (default 1)
Request
bash
curl -X POST 'https://proxbits.com/api/open/renew' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "ip_ids": ["uuid-1", "uuid-2"],
    "months": 1
  }'
Response
json
{
  "code": 200,
  "msg": "SUCCESS",
  "data": {
    "order_no": "LA-R-20260520093500-X9Y8Z7",
    "status": "completed",
    "amount_usd": 16.00,
    "qty": 2
  }
}

Full Examples

End-to-end: fetch live offerings → place order → poll → receive three-protocol credentials
python
import time
import requests

API_BASE = "https://proxbits.com"
HEADERS = {"Authorization": "Bearer YOUR_API_TOKEN"}


def main():
    # 1. Check balance
    bal = requests.get(f"{API_BASE}/api/open/balance", headers=HEADERS).json()
    print(f"Balance: ${bal['data']['balance']:.2f}")

    # 2. Fetch live offerings and choose an in-stock area_id
    offerings = requests.get(
        f"{API_BASE}/api/open/offerings", headers=HEADERS
    ).json()["data"]
    choice = next(item for item in offerings if item["in_stock"])
    area_id = choice["area_id"]
    print(f"Selected region: {choice['country_name']} (area_id={area_id})")

    # 3. Order 1 IP for 1 month
    r = requests.post(
        f"{API_BASE}/api/open/purchase",
        headers={**HEADERS, "Content-Type": "application/json"},
        json={"area_id": area_id, "qty": 1, "duration_months": 1},
    ).json()
    order_no = r["data"]["order_no"]
    print(f"Order placed: {order_no}, estimated ${r['data']['estimated_amount_usd']}")

    # 4. Poll the order (up to 3 minutes)
    for _ in range(60):
        info = requests.get(
            f"{API_BASE}/api/open/orders/{order_no}", headers=HEADERS
        ).json()
        status = info["data"]["status"]
        if status == "completed":
            for ip in info["data"]["ips"]:
                print(f"\nIP {ip['real_ip']} ({ip['country']}):")
                print(f"  VLESS:  {ip['vless_link']}")
                print(f"  SOCKS5: {ip['socks5_url']}")
                print(f"  HTTP:   {ip['http_url']}")
            break
        if status == "failed":
            print(f"Purchase failed: {info['data'].get('error')}")
            break
        time.sleep(3)


main()

FAQ

Common questions about API usage
Q: What's the difference between VLESS / SOCKS5 / HTTP?

A: A single IP serves all three protocols with shared credentials (same user/password) routing to the same egress IP. VLESS+Reality offers the strongest anti-censorship resilience and is best for v2rayN / Clash users; SOCKS5 / HTTP suit fingerprint browsers (AdsPower / Multilogin) and command-line tools (curl / requests).

Q: How long until I can use a newly-bought IP?

A: docs.api.faq.a2

Q: Does renewal swap the IP or change credentials?

A: No. Renewal only extends expire_at — UUID / password / egress IP all stay the same, so clients don't need to be reconfigured.

Q: Why can't I see the raw underlying socks5 credentials?

A: For security, the underlying socks5 username/password is never exposed to customers. All traffic flows through the ProxBits relay node using credentials we issue, preventing credential leakage and abuse.

Q: Which durations are supported?

A: Currently supported durations: 30 / 60 / 90 days (duration_months = 1 / 2 / 3).

Q: What's the maximum quantity?

A: Up to 50 per order; no account-level cap (limited by balance). Bulk orders provision sequentially — expect about 30s per IP.

Next Steps

Compare countries, create an API token, or review setup guidance before your first order.

Compare live pricing

Review supported countries and current stock before creating an order.

Create your token

Sign in and create a bearer token from the API Management page.

Need setup help?

Read support guidance for billing, protocols, and acceptable business use.