777Proxy APIv1
БотBot OpenAPI

777 Proxy API

Покупайте прокси и управляйте ими из своего кода. Дешевле, чем в боте.Buy and manage proxies from your own code. Cheaper than in the bot.

Базовый адресBase URLhttps://api.777projects.org/v1
ФорматFormatJSON · UTF-8
OpenAPIopenapi.json

ВведениеIntroduction

API для перепродажи прокси 777 Proxy. Через него можно делать всё то же, что в боте: смотреть каталог с вашими ценами, покупать, продлевать и настраивать Luxury.

Базовый адрес: https://api.777projects.org/v1. Запросы и ответы в JSON (UTF-8), суммы в долларах США, время в UTC (ISO 8601).

An API for reselling 777 Proxy. It does everything the bot does: a catalog with your prices, ordering, renewals and Luxury settings.

Base URL: https://api.777projects.org/v1. Requests and responses are JSON (UTF-8), amounts are in US dollars, times are UTC (ISO 8601).

АвторизацияAuthentication

Ключ создаётся в боте @proxy777robot, раздел «🔌 API доступ». Бот показывает его один раз. Передавайте ключ в каждом запросе:

Authorization: Bearer sk_live_…

Держите ключ на сервере, в клиентский код его не кладите. В боте можно разрешить ключ только с ваших IP, тогда утёкший ключ никому не пригодится. Перевыпустить ключ можно в любой момент, старый сразу перестаёт работать.

Create a key in the bot @proxy777robot, section “🔌 API access”. The bot shows it once. Send the key with every request:

Authorization: Bearer sk_live_…

Keep the key on your server, not in client code. In the bot you can allow the key only from your IPs, so a leaked key is useless. You can reissue the key at any time; the old one stops working at once.

Быстрый стартQuickstart

  1. Создайте ключ в @proxy777robot, раздел «🔌 API доступ».
  2. Пополните баланс в боте.
  3. Выберите тир, тип и период в GET /v1/products.
  4. Создайте заказ. Прокси придут в ответе.
  1. Create a key in @proxy777robot, section “🔌 API access”.
  2. Top up your balance in the bot.
  3. Pick a tier, type and period from GET /v1/products.
  4. Create an order. The proxies come back in the response.
curl -X POST https://api.777projects.org/v1/orders \
  -H "Authorization: Bearer $API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "tier": "prem",
    "type": "socks5",
    "country": "US",
    "period": "month",
    "quantity": 2
  }'
import requests

API_KEY = "sk_live_..."

r = requests.post(
    "https://api.777projects.org/v1/orders",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "tier": "prem",
        "type": "socks5",
        "country": "US",
        "period": "month",
        "quantity": 2
    },
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/orders", {
  method: "POST",
  headers: { Authorization: `Bearer ${API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    "tier": "prem",
    "type": "socks5",
    "country": "US",
    "period": "month",
    "quantity": 2
  }),
});
console.log(await r.json());

Цены и балансPricing and balance

По API дешевле, чем в боте. В каталоге price_usd это ваша цена, retail_price_usd это цена в боте. Цены провайдеров меняются, поэтому берите актуальные из GET /v1/products и не храните их у себя.

Заказы оплачиваются с долларового баланса в боте, пополняется он тоже в боте. 777 coins через API не тратятся. Кэшбэк и реферальные за покупки через API не начисляются. Если провайдер не выдал прокси, деньги сразу возвращаются на баланс.

Когда баланс опускается ниже порога, бот присылает одно сообщение. По умолчанию порог $10, его можно поменять в боте.

The API is cheaper than the bot. In the catalog, price_usd is your price and retail_price_usd is the bot price. Provider prices change, so read current prices from GET /v1/products instead of storing them.

Orders are paid from your USD balance in the bot, and you top it up there too. 777 coins are not spent through the API. API purchases earn no cashback or referral rewards. If the provider fails to issue proxies, the money goes straight back to your balance.

When your balance drops below a threshold, the bot sends you one message. The default is $10; you can change it in the bot.

ОшибкиErrors

У всех ошибок одинаковое тело и свой HTTP-статус. В коде проверяйте code, он не меняется. message написан для людей.Every error has the same body and its own HTTP status. Check code in your code; it never changes. message is for people.

{
  "error": {
    "code": "insufficient_balance",
    "message": "Insufficient balance",
    "required_usd": 5.58,
    "balance_usd": 2.1
  }
}
HTTPcodeЗначениеMeaning
400invalid_jsonТело запроса не JSON-объектRequest body is not a JSON object
400invalid_requestНеверные параметры запросаInvalid request parameters
400invalid_periodТакого периода или объёма нет у типаThe type has no such period or volume
400invalid_quantityКоличество вне допустимого диапазонаQuantity is out of range
400invalid_countryСтрана недоступна для типаCountry is not available for the type
400invalid_optionНеверная настройка LuxuryInvalid Luxury option
401unauthorizedНет ключа или ключ неверныйMissing or invalid API key
402insufficient_balanceНе хватает денег. В ответе есть required_usd и balance_usdNot enough money. The response has required_usd and balance_usd
403key_disabledКлюч отключёнThe key is disabled
403ip_not_allowedIP не в белом списке ключаIP is not in the key whitelist
404unknown_productТир или тип не продаётсяTier or type is not on sale
404order_not_foundЗаказа нет или он не вашOrder not found or not yours
409out_of_stockНет в наличии. Сколько есть, видно в availableOut of stock. available shows what is left
409not_renewableЭтот заказ нельзя продлитьThis order cannot be renewed
409not_luxuryМетод только для Luxury-заказовLuxury orders only
409request_in_progressЗапрос с этим Idempotency-Key ещё идётA request with this Idempotency-Key is still running
429rate_limitedБольше 60 запросов в минуту. Подождите Retry-After секундOver 60 requests per minute. Wait Retry-After seconds
500internal_errorВнутренняя ошибкаInternal error
502provider_errorПровайдер не выдал прокси, деньги вернулись на балансThe provider failed, the money is back on your balance
503api_disabledAPI временно выключенAPI is temporarily disabled

ЛимитыRate limits

На один ключ 60 запросов в минуту. Если больше, придёт 429 и заголовок Retry-After с числом секунд. В одном заказе до 50 прокси.

60 requests per minute per key. Above that you get 429 and a Retry-After header in seconds. Up to 50 proxies per order.

Повторы запросовIdempotency

Покупка, продление и докупка трафика принимают заголовок Idempotency-Key. Если связь оборвалась и непонятно, прошёл ли запрос, отправьте его ещё раз с тем же ключом. Вернётся первый ответ, деньги второй раз не спишутся. Ключ живёт сутки.

Buying, renewing and adding traffic accept an Idempotency-Key header. If the connection drops and you can't tell whether the request went through, send it again with the same key. You get the first response back and are not charged twice. Keys live for 24 hours.

Статусы заказаOrder statuses

active
Работает
expired
Срок закончился. Продлите, если у заказа renewable: true
paused
Вы поставили Luxury-заказ на паузу
exhausted
У Luxury-заказа закончился трафик. Докупите GB
active
Working
expired
The term is over. Renew it if the order has renewable: true
paused
You paused this Luxury order
exhausted
The Luxury order is out of traffic. Add GB

БалансGet balance

GET/v1/balance

Баланс в долларах, тот же, что в боте. Пополняется в боте, API его только тратит.Your USD balance, the same one as in the bot. You top it up in the bot; the API only spends it.

curl https://api.777projects.org/v1/balance \
  -H "Authorization: Bearer $API_KEY"
import requests

API_KEY = "sk_live_..."

r = requests.get(
    "https://api.777projects.org/v1/balance",
    headers={"Authorization": f"Bearer {API_KEY}"},
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/balance", {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
console.log(await r.json());
ОтветResponse 200
{
  "balance_usd": 124.5,
  "currency": "USD",
  "low_balance_threshold_usd": 10
}

Каталог и ценыList products

GET/v1/products

Что сейчас продаётся: тиры, типы и периоды. price_usd ваша цена по API, retail_price_usd цена в боте. У типов per_gb вместо срока объём трафика, и quantity всегда 1.What is on sale right now: tiers, types and periods. price_usd is your API price, retail_price_usd is the bot price. For per_gb types the period is a traffic volume and quantity is always 1.

curl https://api.777projects.org/v1/products \
  -H "Authorization: Bearer $API_KEY"
import requests

API_KEY = "sk_live_..."

r = requests.get(
    "https://api.777projects.org/v1/products",
    headers={"Authorization": f"Bearer {API_KEY}"},
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/products", {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
console.log(await r.json());
ОтветResponse 200
{
  "tiers": [
    {
      "id": "prem",
      "name": "Premium",
      "types": [
        {
          "id": "socks5",
          "name": "SOCKS5 Proxy",
          "description": "Datacenter proxies, SOCKS5 protocol. Support any traffic (TCP/UDP), games, software.",
          "billing": "per_proxy",
          "max_quantity": 50,
          "renewable": true,
          "periods": [
            {
              "id": "month",
              "name": "30 days",
              "days": 30,
              "gb": null,
              "price_usd": 2.79,
              "retail_price_usd": 3.06
            }
          ]
        }
      ]
    },
    {
      "id": "di",
      "name": "Luxury",
      "types": [
        {
          "id": "diresi",
          "name": "Residential",
          "description": "Real home IPs in 190+ countries…",
          "billing": "per_gb",
          "max_quantity": 1,
          "renewable": false,
          "periods": [
            {
              "id": "10gb",
              "name": "10 GB",
              "days": null,
              "gb": 10.0,
              "price_usd": 14.0,
              "retail_price_usd": 15.0
            }
          ]
        }
      ]
    }
  ]
}

СтраныList countries

GET/v1/products/{tier}/{type}/countries

Страны для выбранного типа. У Эконома и Telegram в available лежит остаток у провайдера. Для Luxury можно передать ANY, тогда страна любая.Countries for a type. For Economy and Telegram, available is the provider's stock. Luxury also accepts ANY for any country.

ПараметрыParameters

tierstringобязательныйrequired
ID тира, например premTier ID, e.g. prem
typestringобязательныйrequired
ID типа, например socks5Type ID, e.g. socks5
curl https://api.777projects.org/v1/products/econ/ipv4/countries \
  -H "Authorization: Bearer $API_KEY"
import requests

API_KEY = "sk_live_..."

r = requests.get(
    "https://api.777projects.org/v1/products/econ/ipv4/countries",
    headers={"Authorization": f"Bearer {API_KEY}"},
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/products/econ/ipv4/countries", {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
console.log(await r.json());
ОтветResponse 200
{
  "countries": [
    {
      "code": "US",
      "name": "United States",
      "available": 318
    },
    {
      "code": "DE",
      "name": "Germany",
      "available": 142
    }
  ]
}

Гео для LuxuryLuxury geo lookup

GET/v1/geo/{type}/{kind}

Штаты, города, ZIP-коды и ASN для таргетинга Luxury. Значение code передавайте в options заказа или в настройки.States, cities, ZIP codes and ASNs for Luxury targeting. Pass code into order options or settings.

ПараметрыParameters

typestringобязательныйrequired
Тип Luxury: diresi, dipremium, dimobile, didcLuxury type: diresi, dipremium, dimobile, didc
kindstringобязательныйrequired
countries · states · cities · zipcodes · asnscountries · states · cities · zipcodes · asns
countrystringquery
ISO-2. Нужен везде, кроме countriesISO-2, required for all kinds except countries
statestringquery
Код штата, чтобы сузить города и ZIPState code to narrow cities and ZIPs
curl https://api.777projects.org/v1/geo/diresi/cities?country=US&state=california \
  -H "Authorization: Bearer $API_KEY"
import requests

API_KEY = "sk_live_..."

r = requests.get(
    "https://api.777projects.org/v1/geo/diresi/cities?country=US&state=california",
    headers={"Authorization": f"Bearer {API_KEY}"},
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/geo/diresi/cities?country=US&state=california", {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
console.log(await r.json());
ОтветResponse 200
{
  "items": [
    {
      "code": "losangeles",
      "name": "Los Angeles",
      "count": 30
    },
    {
      "code": "sandiego",
      "name": "San Diego",
      "count": 12
    }
  ]
}

Создать заказCreate an order

POST/v1/orders

Списывает деньги с баланса и сразу выдаёт прокси. Если провайдер не выдал прокси, деньги возвращаются на баланс, а в ответе будет ошибка.Charges your balance and returns the proxies right away. If the provider fails, the money goes back to your balance and the response is an error.

ПараметрыParameters

Idempotency-Keystringheader
Любая уникальная строка до 100 символов. Повтор с тем же ключом вернёт первый ответ и не спишет деньги второй раз.Any unique string up to 100 chars. A retry with the same key returns the first response and never charges twice.

Тело запросаRequest body

tierstringобязательныйrequired
ID тира из каталогаTier ID from the catalog
typestringобязательныйrequired
ID типаType ID
countrystringобязательныйrequired
ISO-2; для Luxury можно ANYISO-2; ANY is allowed for Luxury
periodstringобязательныйrequired
ID периода или объёма из каталогаPeriod or volume ID from the catalog
quantityinteger
Сколько прокси, от 1 до 50 (по умолчанию 1). Для per_gb только 1Number of proxies, 1 to 50 (default 1). Always 1 for per_gb
optionsobject
Только для Luxury, поля нижеLuxury only, fields below
options.sessionstring
rotating (новый IP на каждый запрос) или sticky (IP держится заданное время)rotating (new IP per request) or sticky (IP is kept for a set time)
options.sticky_minutesinteger
Сколько минут держать IP в sticky, от 1 до 120 (по умолчанию 30)Minutes to keep a sticky IP, 1 to 120 (default 30)
options.protocolstring
http, socks5 или both (по умолчанию)http, socks5 or both (default)
options.statestring
Код штата из гео-справочникаState code from the geo directory
options.citystring
Код городаCity code
options.zipstring
ZIP-кодZIP code
options.asnstring
ASN провайдера, например 7922Provider ASN, e.g. 7922
options.exclude_asnarray
ASN, которые исключитьASNs to exclude
options.anonymousboolean
Только анонимные IPAnonymous IPs only
options.threadsinteger
Лимит одновременных соединенийConcurrent connection limit
curl -X POST https://api.777projects.org/v1/orders \
  -H "Authorization: Bearer $API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "tier": "prem",
    "type": "socks5",
    "country": "US",
    "period": "month",
    "quantity": 2
  }'
import requests

API_KEY = "sk_live_..."

r = requests.post(
    "https://api.777projects.org/v1/orders",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "tier": "prem",
        "type": "socks5",
        "country": "US",
        "period": "month",
        "quantity": 2
    },
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/orders", {
  method: "POST",
  headers: { Authorization: `Bearer ${API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    "tier": "prem",
    "type": "socks5",
    "country": "US",
    "period": "month",
    "quantity": 2
  }),
});
console.log(await r.json());

Luxury с таргетингом по городу и sticky-сессией:Luxury with city targeting and a sticky session:

curl -X POST https://api.777projects.org/v1/orders \
  -H "Authorization: Bearer $API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "tier": "di",
    "type": "diresi",
    "country": "DE",
    "period": "10gb",
    "options": {
      "session": "sticky",
      "sticky_minutes": 30,
      "city": "berlin"
    }
  }'
import requests

API_KEY = "sk_live_..."

r = requests.post(
    "https://api.777projects.org/v1/orders",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "tier": "di",
        "type": "diresi",
        "country": "DE",
        "period": "10gb",
        "options": {
            "session": "sticky",
            "sticky_minutes": 30,
            "city": "berlin"
        }
    },
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/orders", {
  method: "POST",
  headers: { Authorization: `Bearer ${API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    "tier": "di",
    "type": "diresi",
    "country": "DE",
    "period": "10gb",
    "options": {
      "session": "sticky",
      "sticky_minutes": 30,
      "city": "berlin"
    }
  }),
});
console.log(await r.json());
ОтветResponse 201
{
  "id": 18342,
  "tier": "prem",
  "type": "socks5",
  "country": "US",
  "period": "month",
  "quantity": 2,
  "price_usd": 5.58,
  "status": "active",
  "protocol": "socks5",
  "created_at": "2026-10-18T12:00:00Z",
  "expires_at": "2026-11-17T12:00:00Z",
  "traffic_gb": null,
  "renewable": true,
  "source": "api",
  "proxies": [
    {
      "host": "45.12.31.7",
      "port": 12324,
      "login": "u7f3k2",
      "password": "p9QmL2xa"
    },
    {
      "host": "45.12.31.9",
      "port": 12324,
      "login": "u7f3k2",
      "password": "p9QmL2xa"
    }
  ],
  "charged_usd": 5.58
}

Список заказовList orders

GET/v1/orders

Ваши заказы из API и из бота, новые сверху. Логинов и паролей в списке нет, они приходят в запросе одного заказа.Your orders from both the API and the bot, newest first. The list has no logins or passwords; get them from a single order.

ПараметрыParameters

statusstringquery
active · expired · paused · exhaustedactive · expired · paused · exhausted
limitintegerquery
От 1 до 200 (по умолчанию 50)1 to 200 (default 50)
offsetintegerquery
Сдвиг для пагинацииPagination offset
curl https://api.777projects.org/v1/orders?status=active&limit=20 \
  -H "Authorization: Bearer $API_KEY"
import requests

API_KEY = "sk_live_..."

r = requests.get(
    "https://api.777projects.org/v1/orders?status=active&limit=20",
    headers={"Authorization": f"Bearer {API_KEY}"},
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/orders?status=active&limit=20", {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
console.log(await r.json());
ОтветResponse 200
{
  "orders": [
    {
      "id": 18342,
      "tier": "prem",
      "type": "socks5",
      "country": "US",
      "period": "month",
      "quantity": 2,
      "price_usd": 5.58,
      "status": "active",
      "protocol": "socks5",
      "created_at": "2026-10-18T12:00:00Z",
      "expires_at": "2026-11-17T12:00:00Z",
      "traffic_gb": null,
      "renewable": true,
      "source": "api"
    }
  ],
  "total": 1,
  "limit": 20,
  "offset": 0
}

ЗаказRetrieve an order

GET/v1/orders/{order_id}

Заказ с логинами и паролями. expires_at считается с учётом продлений. У заказов per_gb там null: они работают, пока не кончится трафик.An order with logins and passwords. expires_at includes renewals. For per_gb orders it is null: they work until the traffic runs out.

ПараметрыParameters

order_idintegerобязательныйrequired
ID заказаOrder ID
curl https://api.777projects.org/v1/orders/18342 \
  -H "Authorization: Bearer $API_KEY"
import requests

API_KEY = "sk_live_..."

r = requests.get(
    "https://api.777projects.org/v1/orders/18342",
    headers={"Authorization": f"Bearer {API_KEY}"},
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/orders/18342", {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
console.log(await r.json());
ОтветResponse 200
{
  "id": 18342,
  "tier": "prem",
  "type": "socks5",
  "country": "US",
  "period": "month",
  "quantity": 2,
  "price_usd": 5.58,
  "status": "active",
  "protocol": "socks5",
  "created_at": "2026-10-18T12:00:00Z",
  "expires_at": "2026-11-17T12:00:00Z",
  "traffic_gb": null,
  "renewable": true,
  "source": "api",
  "proxies": [
    {
      "host": "45.12.31.7",
      "port": 12324,
      "login": "u7f3k2",
      "password": "p9QmL2xa"
    },
    {
      "host": "45.12.31.9",
      "port": 12324,
      "login": "u7f3k2",
      "password": "p9QmL2xa"
    }
  ]
}

Продлить заказRenew an order

POST/v1/orders/{order_id}/renew

Продлевает те же прокси: IP, логин и пароль остаются прежними. Работает, если у заказа renewable: true (Premium, Эконом, Telegram). Новый срок прибавляется к текущему.Extends the same proxies: IP, login and password stay as they are. Works when the order has renewable: true (Premium, Economy, Telegram). The new term is added to the current one.

ПараметрыParameters

order_idintegerобязательныйrequired
ID заказаOrder ID
Idempotency-Keystringheader
Любая уникальная строка до 100 символов. Повтор с тем же ключом вернёт первый ответ и не спишет деньги второй раз.Any unique string up to 100 chars. A retry with the same key returns the first response and never charges twice.

Тело запросаRequest body

periodstringобязательныйrequired
ID периода из каталогаPeriod ID from the catalog
curl -X POST https://api.777projects.org/v1/orders/18342/renew \
  -H "Authorization: Bearer $API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "period": "month"
  }'
import requests

API_KEY = "sk_live_..."

r = requests.post(
    "https://api.777projects.org/v1/orders/18342/renew",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "period": "month"
    },
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/orders/18342/renew", {
  method: "POST",
  headers: { Authorization: `Bearer ${API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    "period": "month"
  }),
});
console.log(await r.json());
ОтветResponse 200
{
  "id": 18342,
  "tier": "prem",
  "type": "socks5",
  "country": "US",
  "period": "month",
  "quantity": 2,
  "price_usd": 5.58,
  "status": "active",
  "protocol": "socks5",
  "created_at": "2026-10-18T12:00:00Z",
  "expires_at": "2026-12-17T12:00:00Z",
  "traffic_gb": null,
  "renewable": true,
  "source": "api",
  "proxies": [
    {
      "host": "45.12.31.7",
      "port": 12324,
      "login": "u7f3k2",
      "password": "p9QmL2xa"
    },
    {
      "host": "45.12.31.9",
      "port": 12324,
      "login": "u7f3k2",
      "password": "p9QmL2xa"
    }
  ],
  "charged_usd": 5.58
}

Остаток трафикаGet traffic

GET/v1/orders/{order_id}/traffic

Сколько GB потрачено и сколько осталось.How many GB are used and how many are left.

ПараметрыParameters

order_idintegerобязательныйrequired
ID заказаOrder ID
curl https://api.777projects.org/v1/orders/18355/traffic \
  -H "Authorization: Bearer $API_KEY"
import requests

API_KEY = "sk_live_..."

r = requests.get(
    "https://api.777projects.org/v1/orders/18355/traffic",
    headers={"Authorization": f"Bearer {API_KEY}"},
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/orders/18355/traffic", {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
console.log(await r.json());
ОтветResponse 200
{
  "total_gb": 10.0,
  "used_gb": 3.412,
  "left_gb": 6.588,
  "used_percent": 34.1
}

Докупить трафикAdd traffic

POST/v1/orders/{order_id}/traffic

Добавляет GB к заказу. Логин, пароль и настройки не меняются.Adds GB to the order. Login, password and settings stay the same.

ПараметрыParameters

order_idintegerобязательныйrequired
ID заказаOrder ID
Idempotency-Keystringheader
Любая уникальная строка до 100 символов. Повтор с тем же ключом вернёт первый ответ и не спишет деньги второй раз.Any unique string up to 100 chars. A retry with the same key returns the first response and never charges twice.

Тело запросаRequest body

periodstringобязательныйrequired
Объём из каталога, например 10gbVolume from the catalog, e.g. 10gb
curl -X POST https://api.777projects.org/v1/orders/18355/traffic \
  -H "Authorization: Bearer $API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "period": "10gb"
  }'
import requests

API_KEY = "sk_live_..."

r = requests.post(
    "https://api.777projects.org/v1/orders/18355/traffic",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "period": "10gb"
    },
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/orders/18355/traffic", {
  method: "POST",
  headers: { Authorization: `Bearer ${API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    "period": "10gb"
  }),
});
console.log(await r.json());
ОтветResponse 200
{
  "total_gb": 20.0,
  "used_gb": 3.412,
  "left_gb": 16.588,
  "used_percent": 17.1,
  "charged_usd": 14.0
}

Настройки заказаGet settings

GET/v1/orders/{order_id}/settings

Гео, тип сессии, протокол, потоки, доступ по IP, заблокированные сайты и адрес шлюза.Geo, session type, protocol, threads, IP access, blocked sites and the gateway address.

ПараметрыParameters

order_idintegerобязательныйrequired
ID заказаOrder ID
curl https://api.777projects.org/v1/orders/18355/settings \
  -H "Authorization: Bearer $API_KEY"
import requests

API_KEY = "sk_live_..."

r = requests.get(
    "https://api.777projects.org/v1/orders/18355/settings",
    headers={"Authorization": f"Bearer {API_KEY}"},
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/orders/18355/settings", {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
console.log(await r.json());
ОтветResponse 200
{
  "country": "DE",
  "state": null,
  "city": "berlin",
  "zip": null,
  "asn": null,
  "exclude_asn": [],
  "anonymous": false,
  "session": "sticky",
  "sticky_minutes": 30,
  "protocol": "both",
  "threads": 200,
  "allowed_ips": [
    "203.0.113.10"
  ],
  "blocked_hosts": [
    "doubleclick.net"
  ],
  "paused": false,
  "login": "4f0c1e9a2b7d",
  "gateway": {
    "host": "proxy.777projects.org",
    "http_port": 823,
    "socks5_port": 824,
    "sticky_ports": [
      10000,
      20000
    ]
  }
}

Изменить настройкиUpdate settings

PATCH/v1/orders/{order_id}/settings

Передайте только поля, которые меняете. Менять можно бесплатно и сколько угодно, логин и пароль остаются прежними. Если сменить страну, штат, город, ZIP и ASN сбросятся.Send only the fields you change. Changes are free and unlimited, and the login and password stay the same. Changing the country resets state, city, ZIP and ASN.

ПараметрыParameters

order_idintegerобязательныйrequired
ID заказаOrder ID

Тело запросаRequest body

countrystring
ISO-2 или ANYISO-2 or ANY
statestring
Код штата. Пустая строка его сбрасываетState code. An empty string clears it
citystring
Код городаCity code
zipstring
ZIP-кодZIP code
asnstring
ASNASN
exclude_asnarray
ASN, которые исключитьASNs to exclude
anonymousboolean
Только анонимные IPAnonymous IPs only
sessionstring
rotating или stickyrotating or sticky
sticky_minutesinteger
От 1 до 1201 to 120
protocolstring
http · socks5 · bothhttp · socks5 · both
threadsinteger
Лимит одновременных соединенийConcurrent connection limit
allowed_ipsarray
До 5 IP, с которых прокси пускает без пароля. Новый список заменяет старыйUp to 5 IPs allowed to use the proxy without a password. The new list replaces the old one
blocked_hostsarray
Домены, к которым прокси не пустит. Новый список заменяет старыйDomains the proxy will block. The new list replaces the old one
pausedboolean
Поставить заказ на паузу или снять с неёPause or resume the order
curl -X PATCH https://api.777projects.org/v1/orders/18355/settings \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "country": "US",
    "state": "california",
    "session": "sticky",
    "sticky_minutes": 15
  }'
import requests

API_KEY = "sk_live_..."

r = requests.patch(
    "https://api.777projects.org/v1/orders/18355/settings",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "country": "US",
        "state": "california",
        "session": "sticky",
        "sticky_minutes": 15
    },
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/orders/18355/settings", {
  method: "PATCH",
  headers: { Authorization: `Bearer ${API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    "country": "US",
    "state": "california",
    "session": "sticky",
    "sticky_minutes": 15
  }),
});
console.log(await r.json());
ОтветResponse 200
{
  "country": "US",
  "state": "california",
  "city": null,
  "zip": null,
  "asn": null,
  "exclude_asn": [],
  "anonymous": false,
  "session": "sticky",
  "sticky_minutes": 15,
  "protocol": "both",
  "threads": 200,
  "allowed_ips": [
    "203.0.113.10"
  ],
  "blocked_hosts": [
    "doubleclick.net"
  ],
  "paused": false,
  "login": "4f0c1e9a2b7d",
  "gateway": {
    "host": "proxy.777projects.org",
    "http_port": 823,
    "socks5_port": 824,
    "sticky_ports": [
      10000,
      20000
    ]
  }
}

Строки подключенияGet proxy lines

GET/v1/orders/{order_id}/lines

Строки подключения для софта. В режиме sticky у каждой строки свой порт и свой IP, можно получить до 1000 строк.Connection lines for your software. In sticky mode each line has its own port and IP; you can get up to 1000 lines.

ПараметрыParameters

order_idintegerобязательныйrequired
ID заказаOrder ID
formatstringquery
hpup host:port:login:pass, uphp login:pass@host:port, http и socks в виде URLhpup host:port:login:pass, uphp login:pass@host:port, http and socks as URLs
countintegerquery
Сколько строк для sticky, от 1 до 1000Number of sticky lines, 1 to 1000
protocolstringquery
http или socks5http or socks5
asstringquery
text: ответ обычным текстом, по строке на проксиtext: plain-text response, one proxy per line
curl https://api.777projects.org/v1/orders/18355/lines?format=hpup&count=3 \
  -H "Authorization: Bearer $API_KEY"
import requests

API_KEY = "sk_live_..."

r = requests.get(
    "https://api.777projects.org/v1/orders/18355/lines?format=hpup&count=3",
    headers={"Authorization": f"Bearer {API_KEY}"},
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/orders/18355/lines?format=hpup&count=3", {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
console.log(await r.json());
ОтветResponse 200
{
  "lines": [
    "proxy.777projects.org:10000:4f0c1e9a2b7d:kq81xz0pa3",
    "proxy.777projects.org:10001:4f0c1e9a2b7d:kq81xz0pa3",
    "proxy.777projects.org:10002:4f0c1e9a2b7d:kq81xz0pa3"
  ]
}

Новый парольReset password

POST/v1/orders/{order_id}/reset-password

Выдаёт новый пароль. Старый сразу перестаёт работать.Issues a new password. The old one stops working at once.

ПараметрыParameters

order_idintegerобязательныйrequired
ID заказаOrder ID
curl -X POST https://api.777projects.org/v1/orders/18355/reset-password \
  -H "Authorization: Bearer $API_KEY"
import requests

API_KEY = "sk_live_..."

r = requests.post(
    "https://api.777projects.org/v1/orders/18355/reset-password",
    headers={"Authorization": f"Bearer {API_KEY}"},
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/orders/18355/reset-password", {
  method: "POST",
  headers: { Authorization: `Bearer ${API_KEY}` },
});
console.log(await r.json());
ОтветResponse 200
{
  "login": "4f0c1e9a2b7d",
  "password": "n2v8qkx71c",
  "line": "proxy.777projects.org:823:4f0c1e9a2b7d:n2v8qkx71c"
}

СтатистикаGet usage stats

GET/v1/orders/{order_id}/stats

Трафик и запросы по дням за неделю, плюс ошибки подключения. NO_RAY: под фильтр нет IP, ослабьте гео. TRAFFIC_EXHAUSTED: закончились GB. THREADS_EXHAUSTED: слишком много соединений.Daily traffic and requests for the last week, plus connection errors. NO_RAY: no IP matches the filter, loosen the geo. TRAFFIC_EXHAUSTED: out of GB. THREADS_EXHAUSTED: too many connections.

ПараметрыParameters

order_idintegerобязательныйrequired
ID заказаOrder ID
curl https://api.777projects.org/v1/orders/18355/stats \
  -H "Authorization: Bearer $API_KEY"
import requests

API_KEY = "sk_live_..."

r = requests.get(
    "https://api.777projects.org/v1/orders/18355/stats",
    headers={"Authorization": f"Bearer {API_KEY}"},
)
print(r.json())
const API_KEY = "sk_live_...";

const r = await fetch("https://api.777projects.org/v1/orders/18355/stats", {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
console.log(await r.json());
ОтветResponse 200
{
  "days": [
    {
      "date": "2026-10-17",
      "traffic_gb": 1.204,
      "requests": 48211
    },
    {
      "date": "2026-10-18",
      "traffic_gb": 0.861,
      "requests": 30544
    }
  ],
  "errors": [
    {
      "code": "NO_RAY",
      "count": 12
    }
  ]
}