ProxyApp API

Order residential proxy packages, list credentials, generate targeted proxies, extend subscriptions, and top up bandwidth. Authenticated requests use the same API key as SMSPool.

Authentication

Base URL: https://www.proxyapp.net/api

Get your key from SMSPool settings. Send it as a query/body field named key, or as a Bearer token. JSON bodies are accepted on POST endpoints.

Authorization: Bearer YOUR_API_KEY

curl "https://www.proxyapp.net/api/balance?key=YOUR_API_KEY"

Errors

Failed responses use HTTP 400, 401, 404, or 429 and always include {"success":0,"message":"..."}. HTML is stripped from messages so they are safe to show as-is.

Proxy formats & targeting

The host and port are shared. Each package has its own username (the unique identifier) and password. Targeting is appended to the password:

password-country-US-region-NY-city-newyork-session-Ab15CdEfgHijklm

Formats: ip:port:user:pass, user:pass:ip:port, ip:port@user:pass, user:pass@ip:port.

GET /api/packages Public

Returns every plan you can order, including bandwidth, price, and the effective rate per GB.

curl "https://www.proxyapp.net/api/packages"
{
  "success": 1,
  "packages": [
    {
      "id": 3,
      "name": "Growth",
      "gb": 25,
      "price": 55,
      "rate_per_gb": 2.2,
      "length_days": 31
    }
  ]
}

POST /api/order API key

Charges your SMSPool balance and creates a new proxy package. Existing packages stay active. Check the blocklist endpoint before ordering if you care about a specific target domain.

Parameter Type Required Description
package int Yes Package id from /api/packages
coupon string No Optional coupon code
curl -X POST "https://www.proxyapp.net/api/order" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d "package=3"
{
  "success": 1,
  "message": "Package purchased successfully.",
  "proxy": {
    "identifier": "SojSBfptwh",
    "host": "104.16.0.1",
    "port": 8000,
    "username": "SojSBfptwh",
    "password": "xK91mPq2Ab",
    "expires_at": "2026-09-23 22:01:52",
    "is_active": 1,
    "package": "Growth",
    "package_gb": 25
  }
}

GET /api/proxies API key

Returns every package on the account. Usage numbers come from cache unless you pass live=1 (slower, one provider lookup per package).

Parameter Type Required Description
live int No Set to 1 to refresh usage from the provider
curl "https://www.proxyapp.net/api/proxies" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "success": 1,
  "count": 2,
  "proxies": [
    {
      "identifier": "SojSBfptwh",
      "username": "SojSBfptwh",
      "is_active": 1,
      "package": "Growth",
      "traffic_balance_formatted": "18.59 GB"
    }
  ]
}

GET /api/proxy API key

Looks up a package by its unique identifier (the proxy username) and returns live credentials, expiry, and remaining data.

Parameter Type Required Description
id string Yes Package identifier, e.g. SojSBfptwh
curl "https://www.proxyapp.net/api/proxy?id=SojSBfptwh" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "success": 1,
  "proxy": {
    "identifier": "SojSBfptwh",
    "host": "104.16.0.1",
    "port": 8000,
    "username": "SojSBfptwh",
    "password": "xK91mPq2Ab",
    "status": "ACTIVE",
    "expires_at": "2026-09-23 22:01:52",
    "is_active": 1,
    "traffic_balance_formatted": "18.59 GB",
    "extend_cost": 20.45
  }
}

POST /api/generate API key

Builds one or more connection strings for a package. Country, region, and city are appended to the password. Sticky sessions keep the same IP for about 5 minutes.

Parameter Type Required Description
id string Yes Package identifier
country string No ISO country code from /api/locations
region string No Region / state id
city string No City id
sticky int No 1 to enable a sticky session
amount int No How many lines to generate (1–100)
format string No 1 or ip_port_user_pass, 2 user_pass_ip_port, 3 ip_port_at_user_pass, 4 user_pass_at_ip_port
curl -X POST "https://www.proxyapp.net/api/generate" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d "id=SojSBfptwh&country=US&sticky=1&amount=2&format=1"
{
  "success": 1,
  "count": 2,
  "format": "ip_port_user_pass",
  "proxies": [
    "104.16.0.1:8000:SojSBfptwh:xK91mPq2Ab-country-US-session-Ab15Cd",
    "104.16.0.1:8000:SojSBfptwh:xK91mPq2Ab-country-US-session-Xy92Zq"
  ]
}

POST /api/extend API key

Adds 30 days to the selected package. The charge is 50% of the remaining data at the original plan rate. Expired packages cannot be extended — order a new one instead.

Parameter Type Required Description
id string Yes Package identifier
curl -X POST "https://www.proxyapp.net/api/extend" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d "id=SojSBfptwh"
{
  "success": 1,
  "message": "Your proxy has been extended for 30 days.",
  "proxy": {
    "identifier": "SojSBfptwh",
    "expires_at": "2026-10-23 22:01:52",
    "is_active": 1
  }
}

POST /api/topup API key

Adds more data to an existing package without changing credentials or expiration. Choose a plan from /api/packages — the listed GB is added on top of whatever is still remaining. Expired packages cannot be topped up.

Parameter Type Required Description
id string Yes Package identifier
package int Yes Package id from /api/packages
coupon string No Optional coupon code
curl -X POST "https://www.proxyapp.net/api/topup" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d "id=SojSBfptwh&package=3"
{
  "success": 1,
  "message": "Added 25 GB to this proxy.",
  "gb_added": 25,
  "cost": 55,
  "proxy": {
    "identifier": "SojSBfptwh",
    "package": "Growth",
    "package_gb": 50,
    "traffic_balance_formatted": "43.59 GB",
    "expires_at": "2026-09-23 22:01:52"
  }
}

POST /api/password API key

Generates a new random password for that package only. Other packages are unchanged.

Parameter Type Required Description
id string Yes Package identifier
curl -X POST "https://www.proxyapp.net/api/password" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d "id=SojSBfptwh"
{
  "success": 1,
  "message": "Proxy password updated.",
  "identifier": "SojSBfptwh",
  "username": "SojSBfptwh",
  "password": "nR84tLq0Pm"
}

GET /api/history API key

Returns recent package purchases and top-ups for the account, newest first. Each row includes type: purchase or topup.

Parameter Type Required Description
limit int No Max rows to return (1–500, default 50)
curl "https://www.proxyapp.net/api/history?limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "success": 1,
  "count": 2,
  "purchases": [
    {
      "id": 1843,
      "identifier": "SojSBfptwh",
      "type": "topup",
      "package": "Growth",
      "gb": 25,
      "cost": 55,
      "date": "2026-08-24 09:12:04"
    },
    {
      "id": 1842,
      "identifier": "SojSBfptwh",
      "type": "purchase",
      "package": "Growth",
      "gb": 25,
      "cost": 55,
      "date": "2026-08-23 22:01:52"
    }
  ]
}

GET /api/balance API key

Returns the current SMSPool balance used to pay for proxy packages.

curl "https://www.proxyapp.net/api/balance" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "success": 1,
  "balance": 120.5
}

GET /api/locations Public

Lists countries, regions, or cities you can pass to /api/generate.

Parameter Type Required Description
type string Yes countries, regions, or cities
country string No Required for regions and usually for cities
region string No Optional region filter for cities
curl "https://www.proxyapp.net/api/locations?type=regions&country=US"
{
  "success": 1,
  "type": "regions",
  "data": [
    { "id": "NY", "name": "New York" }
  ]
}

GET /api/blocklist Public

Checks whether a domain is blocked on the network. Use this before you buy a package for a specific target.

Parameter Type Required Description
domain string Yes Domain or full URL
curl "https://www.proxyapp.net/api/blocklist?domain=example.com"
{
  "success": 1,
  "blocked": 0,
  "domain": "example.com",
  "matched_rule": null,
  "message": "This domain is not currently in the blocklist."
}