SMMProxy

Proxy API docs, automate orders and access info

SMMProxy’s developer API provides balance checks, price checks, proxy orders, and connection info via HTTPS REST. Create an API key in the dashboard and send it as a Bearer token in the Authorization header.

Get started

  1. Create an account and complete your first top-up. API keys require at least one successful top-up.
  2. Create a new API key in your dashboard. Keys are only shown once when generated, so save it immediately.
  3. Include the Authorization: Bearer key in all requests. Responses are in JSON and always include an 'ok' field.

Default Address: https://smmproxy.io/api/v1

curl -H "Authorization: Bearer smpk_YOUR_KEY" https://smmproxy.io/api/v1/balance

GET/api/v1/balance

Check Balance

Response Example
{ "ok": true, "balance": "48.20", "currency": "USD" }

GET/api/v1/products

Check Products/Countries/Prices

Response Example
{ "ok": true, "periods": ["1w","2w","1m","2m","3m","6m","9m","12m"],
  "products": [{ "product": "isp", "unit": "ip", "countries": [{ "country": "us", "monthly": "1.29" }] }] }

POST/api/v1/orders

Proxy Order (Pay from Balance)

Request Body
{ "product": "isp", "country": "us", "quantity": 5, "period": "1m" }
Response Example
{ "ok": true, "order": { "id": "OR-7K2M-Q8XD4P", "product": "isp", "country": "us",
  "quantity": 5, "period": "1m", "total": "6.45", "expires_at": "2026-11-21T09:00:00.000Z" } }

GET/api/v1/orders

Order History (Last 100)

Response Example
{ "ok": true, "orders": [{ "id": "OR-7K2M-Q8XD4P", "status": "active", "total": "6.45" }] }

GET/api/v1/proxies?order=OR-7K2M-Q8XD4P

Connection Info List

Response Example
{ "ok": true, "proxies": [{ "host": "198.51.100.24", "http_port": 10842, "socks5_port": 20842,
  "username": "u7kq2m", "password": "Xc81pLq0Zr", "country": "us", "expires_at": "..." }] }

Order Value

NameFormatDescription
productstringisp, mobile, ipv4, residential
countrystring2-letter lowercase country code (us, gb, de ...)
quantityintegerNumber of IPs/ports, GB for residential
periodstring1w 2w 1m 2m 3m 6m 9m 12m (excludes residential)
protocolstringHTTP or SOCKS5 (default HTTP, both ports provided)

Error

HTTPerrorMeaning
401unauthorizedInvalid or missing key. No funds deducted.
400invalid_requestPlease double-check product, country, quantity, and duration values. No funds will be deducted.
402insufficient_balanceInsufficient balance for payment. Top up and try again. No funds will be deducted.
503network_errorNetwork error during order submission. No funds deducted - you can retry shortly.
429rate_limitedSend up to 300 times per minute.

Python example

import requests

API = "https://smmproxy.io/api/v1"
H = {"Authorization": "Bearer smpk_YOUR_KEY"}

order = requests.post(f"{API}/orders", headers=H, json={
    "product": "isp", "country": "us", "quantity": 5, "period": "1m"}).json()
if order["ok"]:
    proxies = requests.get(f"{API}/proxies", headers=H, params={"order": order["order"]["id"]}).json()
    for p in proxies["proxies"]:
        print(f'{p["host"]}:{p["http_port"]}:{p["username"]}:{p["password"]}')

Node.js example

const API = "https://smmproxy.io/api/v1";
const H = { Authorization: "Bearer smpk_YOUR_KEY", "Content-Type": "application/json" };

const r = await fetch(API + "/orders", { method: "POST", headers: H,
  body: JSON.stringify({ product: "mobile", country: "gb", quantity: 1, period: "1m" }) });
const j = await r.json();
console.log(j.ok ? j.order.id : j.error);
Proxy API docs, balance·pricing·orders·proxy list | SMMProxy