ProxyWing LogoProxyWing
Browse endpoints

ProxyWing Developer API

Datacenter

Order, list, extend, rotate credentials and whitelist IPs for datacenter proxies.

GET/datacenter/products

List datacenter products

Returns the datacenter proxy products available for purchase, with per-location pricing.

Auth · Bearer
RequestGET /datacenter/products
curl -X GET "https://api.proxywing.com/v1/datacenter/products" \
  -H "Authorization: Bearer pk_live_XXXXXXXX"
Response200 · application/json
{
  "products": [
    {
      "product_id": "dcprod_3",
      "location": "UK",
      "quantity": 1,
      "price_monthly": 1.8
    }
  ]
}
POST/datacenter/orders

Order a datacenter proxy

Purchases a datacenter proxy product using the account balance and provisions it immediately. Choose a billing_cycle of monthly, quarterly, semiannually or annually — longer terms are billed at the product's discounted per-cycle price (the same rates as the web checkout), and the total field reports exactly what was charged. Supply an Idempotency-Key header so retries of a timed-out request never double-charge the account.

Auth · BearerIdempotency-Key

Body parameters

  • product_idstringrequired

    The product to order, from GET /datacenter/products.

  • billing_cyclestringoptional

    Billing term: "monthly" (default), "quarterly", "semiannually" or "annually". Longer terms bill the product's discounted per-cycle price. (Month counts 1/3/6/12 are accepted as aliases.)

  • promo_codestringoptional

    Optional promo code. Only percentage-discount promo codes under 100% off apply via the API (a code that would zero the total is rejected).

RequestPOST /datacenter/orders
curl -X POST "https://api.proxywing.com/v1/datacenter/orders" \
  -H "Authorization: Bearer pk_live_XXXXXXXX" \
  -H "Idempotency-Key: b3f2a1c4-7e9d-4a2b-8c6f-1d5e9a0b3c7f" \
  -H "Content-Type: application/json" \
  -d '{"product_id":"dcprod_3","billing_cycle":"annually"}'
Response200 · application/json
{
  "order_id": "ord_100001",
  "invoice_id": "inv_200001",
  "product_id": "dcprod_3",
  "billing_cycle": "annually",
  "total": 19.44,
  "status": "paid"
}
GET/datacenter/orders/{ord_id}/renewal-options

Get renewal terms

Returns the extension terms available for an order — 1, 3, 6 and 12 months — each with its price. Longer terms use the product's discounted per-cycle pricing, so 3/6/12 months cost less than the monthly price times the number of months. Pass one of these months values as cycle to the extend endpoint.

Auth · Bearer

Path parameters

  • ord_idstringrequired

    The order id, e.g. ord_100001, from GET /datacenter/proxies.

RequestGET /datacenter/orders/{ord_id}/renewal-options
curl -X GET "https://api.proxywing.com/v1/datacenter/orders/{ord_id}/renewal-options" \
  -H "Authorization: Bearer pk_live_XXXXXXXX"
Response200 · application/json
{
  "order_id": "ord_100001",
  "next_due_date": "2026-09-02",
  "options": [
    {
      "months": 1,
      "total": 1.8,
      "label": "1 Month",
      "discount_pct": 0
    },
    {
      "months": 3,
      "total": 5.15,
      "label": "3 Months",
      "discount_pct": 5
    },
    {
      "months": 6,
      "total": 10.05,
      "label": "6 Months",
      "discount_pct": 7
    },
    {
      "months": 12,
      "total": 19.44,
      "label": "12 Months",
      "discount_pct": 10
    }
  ]
}
POST/datacenter/orders/{ord_id}/extend

Extend a datacenter order

Generates a renewal invoice for the order's underlying service and settles it from the account balance. On payment the service's next due date and the proxy expiry advance by cycle months — status is "paid" and next_due_date confirms the new due date. Longer terms are billed at the product's discounted per-cycle price (see GET /datacenter/orders/{ord_id}/renewal-options). If the balance can't cover total, the invoice is left open and status is "awaiting_payment"; top up and repeat the call to settle the same invoice (a second one is never stacked). Supply an Idempotency-Key header so retries never double-extend.

Auth · BearerIdempotency-Key

Path parameters

  • ord_idstringrequired

    The order id to extend, e.g. ord_100001.

Body parameters

  • cycleintegerrequired

    Term to extend by, in months: 1, 3, 6 or 12. See GET /renewal-options for the price of each.

  • cycle_typestringrequired

    Must be "monthly" — the only supported cycle unit.

RequestPOST /datacenter/orders/{ord_id}/extend
curl -X POST "https://api.proxywing.com/v1/datacenter/orders/{ord_id}/extend" \
  -H "Authorization: Bearer pk_live_XXXXXXXX" \
  -H "Idempotency-Key: b3f2a1c4-7e9d-4a2b-8c6f-1d5e9a0b3c7f" \
  -H "Content-Type: application/json" \
  -d '{"cycle":3,"cycle_type":"monthly"}'
Response200 · application/json
{
  "order_id": "ord_100001",
  "invoice_id": "inv_200002",
  "status": "paid",
  "total": 5.15,
  "next_due_date": "2026-12-02"
}
GET/datacenter/proxies

List datacenter proxies

Returns every datacenter order on the account along with the live proxy credentials for each.

Auth · Bearer
RequestGET /datacenter/proxies
curl -X GET "https://api.proxywing.com/v1/datacenter/proxies" \
  -H "Authorization: Bearer pk_live_XXXXXXXX"
Response200 · application/json
{
  "orders": [
    {
      "id": "ord_100001",
      "location": "UK",
      "status": "active",
      "expires_at": "2026-08-02T10:14:00",
      "proxies": [
        {
          "id": "prx_8fJ2Wm4Qx1Pv7Ra0Ub9c",
          "ip": "203.0.113.60",
          "http_port": 47668,
          "socks_port": 47669,
          "username": "SAMPLEU1",
          "password": "sample_password",
          "location": "UK",
          "expires_at": "2026-08-02T10:14:00"
        }
      ]
    }
  ]
}
POST/datacenter/orders/{ord_id}/change-password

Change a proxy's password

Rotates the proxy authentication password for an order. Existing sessions using the old password stop working immediately.

Auth · Bearer

Path parameters

  • ord_idstringrequired

    The order id whose proxy password to rotate.

RequestPOST /datacenter/orders/{ord_id}/change-password
curl -X POST "https://api.proxywing.com/v1/datacenter/orders/{ord_id}/change-password" \
  -H "Authorization: Bearer pk_live_XXXXXXXX"
Response200 · application/json
{
  "status": "password_changed"
}
GET/datacenter/orders/{ord_id}/whitelist

List whitelisted IPs

Returns the IPs currently whitelisted on a datacenter order (IPs allowed to use the proxies without a username/password).

Auth · Bearer

Path parameters

  • ord_idstringrequired

    The order id, from GET /datacenter/proxies.

RequestGET /datacenter/orders/{ord_id}/whitelist
curl -X GET "https://api.proxywing.com/v1/datacenter/orders/{ord_id}/whitelist" \
  -H "Authorization: Bearer pk_live_XXXXXXXX"
Response200 · application/json
{
  "order_id": "ord_100001",
  "ips": [
    "203.0.113.9",
    "203.0.113.10"
  ]
}
POST/datacenter/orders/{ord_id}/whitelist

Whitelist an IP

Adds an IP address to the order's whitelist, allowing IP-authenticated access without a username/password.

Auth · Bearer

Path parameters

  • ord_idstringrequired

    The order id to whitelist the IP on.

Body parameters

  • ipstringrequired

    IPv4 or IPv6 address to whitelist, e.g. 203.0.113.9.

RequestPOST /datacenter/orders/{ord_id}/whitelist
curl -X POST "https://api.proxywing.com/v1/datacenter/orders/{ord_id}/whitelist" \
  -H "Authorization: Bearer pk_live_XXXXXXXX" \
  -H "Content-Type: application/json" \
  -d '{"ip":"203.0.113.9"}'
Response200 · application/json
{
  "status": "whitelisted",
  "ip": "203.0.113.9"
}