Каталог

Список всіх публично доступних методів для взаємодії з API.

GET

Каталог і прайс

Нове/catalog/config

Каталог та прайс-лист

Усе, що потрібно для розрахунку, в одному запиті: товари з їхніми опціями та правилами, тривалість періодів на сьогодні, курси валют та повний прайс-лист.

Примітки

  • Розрахуйте ціну на вашому боці за допомогою pricing, а потім отримайте точну ціну з сервера за допомогою функції Створити замовлення.
  • Надішліть свій токен, щоб отримати власні знижки та бонуси в полі user; без нього ціни будуть загальнодоступними.
  • fx.approx_expires_at — це час наступної зміни курсів та тривалості періодів — після цього виконайте запит знову.
  • У відповіді міститься ETag: надішліть If-None-Match, і ви отримаєте 304, якщо нічого не змінилося.
  • Числа в pricing — це числа; курси та значення user — це десяткові рядки.

Метод запита

GEThttps://api.stableproxy.com/v3/catalog/config

Приклади коду

1const baseUrl = "https://api.stableproxy.com/v3";
2const response = await fetch(baseUrl + "/catalog/config", {
3 method: "GET",
4 headers: {
5 "Content-Type": "application/json"
6 }
7});
8const data = await response.json();

Приклади відповідей

Catalog — one product shown200application/json
{
  "data": {
    "version": "2026-10-06.426930f8",
    "currency": "USD",
    "fx": {
      "rates": {
        "USD": "1",
        "UAH": "45.59",
        "EUR": "0.87",
        "PLN": "3.7"
      },
      "fetched_at": "2026-03-18T00:00:58+02:00",
      "approx_expires_at": "2026-10-07T00:10:00+03:00"
    },
    "user": {
      "sale_divisor": "1",
      "bonuses": []
    },
    "categories": [
      {
        "key": "datacenter",
        "label_key": "common.proxy-types.datacenter",
        "products": [
          "shared",
          "private",
          "datacenter_gb"
        ]
      }
    ],
    "products": {
      "shared": {
        "category": "datacenter",
        "label_key": "common.proxy-types-pay-for.shared",
        "name_key": "common.proxy-types.shared",
        "pay_for": "ip",
        "links": [
          "private",
          "datacenter_gb"
        ],
        "lists": {
          "countries": "/v3/catalog/countries/shared"
        },
        "options": {
          "count": {
            "type": "int",
            "unit": "ip",
            "min": 1,
            "max": 2000,
            "default": 10,
            "presets": [
              1,
              10,
              25,
              50,
              100,
              250
            ]
          },
          "period": {
            "type": "period",
            "select": true,
            "default": "1m",
            "values": [
              {
                "key": "1w",
                "unit": "weeks",
                "amount": 1,
                "days": 7
              },
              {
                "key": "2w",
                "unit": "weeks",
                "amount": 2,
                "days": 14
              },
              {
                "key": "1m",
                "unit": "months",
                "amount": 1,
                "days": 31
              },
              {
                "key": "1y",
                "unit": "years",
                "amount": 1,
                "days": 365
              }
            ]
          },
          "traffic": {
            "type": "int",
            "unit": "gb",
            "select": true,
            "min": 25,
            "max": 5000,
            "step": 1,
            "default": 100,
            "presets": [
              25,
              100,
              400,
              800,
              5000
            ]
          },
          "countries": {
            "type": "country_map",
            "sum_equals": "count",
            "random_allowed": true,
            "preselect_all": false,
            "list": "/v3/catalog/countries/shared"
          },
          "geo_service": {
            "type": "enum",
            "default": "overall",
            "list": "/v3/catalog/geo-services"
          },
          "ip_score": {
            "type": "int",
            "min": 0,
            "max": 100,
            "default": 0
          },
          "unlimited_ips": {
            "type": "bool",
            "default": false
          }
        },
        "rules": [
          {
            "when": {
              "days": [
                "<",
                7
              ]
            },
            "limit": {
              "count": {
                "max": 25
              }
            }
          },
          {
            "when": {
              "days": [
                "<",
                14
              ]
            },
            "limit": {
              "count": {
                "max": 50
              }
            }
          },
          {
            "when": {
              "days": [
                "<",
                28
              ]
            },
            "limit": {
              "count": {
                "max": 100
              }
            }
          },
          {
            "when": {
              "count": [
                ">=",
                100
              ]
            },
            "hide": {
              "traffic": [
                25
              ]
            }
          }
        ]
      }
    },
    "pricing": {
      "unlimited_ips_fee": {
        "default": 2,
        "mobile": 1,
        "payasgo": 1,
        "peer": 1
      },
      "referral_sale": 0.05
    }
  },
  "meta": []
}
GET

Країни продукту

Нове/catalog/countries/{product}
Замінює старіші методи v2

Цей метод API v3 замінює такі методи API v2 (вони ще працюють):

Країни, куди доставляється товар

Країни, куди можна доставити товар, із зазначенням кількості адрес, на які зараз можна безкоштовно доставити товар (available), та кількість, яку можна доставити одразу (instant).

Примітки

  • ZZ означає «будь-яка країна».

  • surcharge: true позначає країну, ціна в якій розраховується з урахуванням множника (див. pricing.country_multiplier).

  • geo_service змінює базу даних, яка визначає країну (лише для спільних та приватних продуктів).

"data": {

"product": "shared",

"geo_service": "overall",

"countries": [

{

"code": "ZZ",

"available": 184,

"instant": 184,

"surcharge": false

},

{

"code": "DK",

"available": 1,

"instant": 1,

"surcharge": false

},

{

"code": "LT",

"available": 1,

"instant": 1,

"surcharge": false

}

]

},

"meta": {}

}

"error": {

"code": "not_found",

"message": "Не знайдено.",

"details": {}

}

}

Метод запита

GEThttps://api.stableproxy.com/v3/catalog/countries/{product}

Параметри запиту

ІдентифікаторПравилаПриклад
geo_serviceНе обов'язковоnullablestringoverall
product1requiredstringshared

Приклади коду

1const baseUrl = "https://api.stableproxy.com/v3";
2const response = await fetch(baseUrl + "/catalog/countries/{product}", {
3 method: "GET",
4 headers: {
5 "Content-Type": "application/json"
6 }
7});
8const data = await response.json();

Приклади відповідей

Countries — first three200application/json
 {
Unknown product404application/json
 {
GET

Міста країни

Нове/catalog/cities/{product}

Міста країни

Міста, на які можна орієнтувати продукт для житлового сектору, у порядку від найбільшого до найменшого, із зазначенням кількості адрес у кожному.

Примітки

  • supported: false означає, що у базі даних продукту немає інформації про міста — замовлення здійснюється без зазначення міст.

  • Міста є необов’язковими: вказуйте їх під час генерації проксі-адрес для пакета, а не під час його придбання.

"data": {

"product": "residential_gb",

"country": "US",

"supported": true,

"cities": [

{

"code": "ashburn",

"name": "Ashburn",

"count": 16611

},

{

"code": "dallas",

"name": "Dallas",

"count": 13999

},

{

"code": "newyork",

"name": "Нью-Йорк",

"count": 5300

}

]

},

"meta": {}

}

"error": {

"code": "validation_failed",

"message": "Деякі поля недійсні.",

"details": {

"country": [

"Поле «country» є обов’язковим."

]

}

}

}

Метод запита

GEThttps://api.stableproxy.com/v3/catalog/cities/{product}

Параметри запиту

ІдентифікаторПравилаПриклад
countryrequiredstringsize:2alphaUS
product1requiredstringresidential_gb

Приклади коду

1const baseUrl = "https://api.stableproxy.com/v3";
2const response = await fetch(baseUrl + "/catalog/cities/{product}", {
3 method: "GET",
4 headers: {
5 "Content-Type": "application/json"
6 }
7});
8const data = await response.json();

Приклади відповідей

Cities — first three200application/json
 {
Missing country422application/json
 {
GET

Сервіси геолокації

Нове/catalog/geo-services
Замінює старіші методи v2

Цей метод API v3 замінює такі методи API v2 (вони ще працюють):

Служби геолокації

Яка база даних IP-адрес визначає країну проксі-сервера. Параметр overall об’єднує їх і є значенням за замовчуванням.

Примітки

  • Лише продукти в масиві products підтримують вибір служби, відмінної від overall.

"data": {

"default": "overall",

"products": [

"shared",

"private"

],

"services": [

{

"key": "overall",

"label_key": "common.words.geo-service.overall"

},

{

"key": "ip2location",

"label_key": "common.words.geo-service.ip2location"

},

{

"key": "adspower",

"label_key": "common.words.geo-service.adspower"

},

{

"key": "dolphin",

"label_key": "common.words.geo-service.dolphin"

}

]

},

"meta": {}

}

Метод запита

GEThttps://api.stableproxy.com/v3/catalog/geo-services

Приклади коду

1const baseUrl = "https://api.stableproxy.com/v3";
2const response = await fetch(baseUrl + "/catalog/geo-services", {
3 method: "GET",
4 headers: {
5 "Content-Type": "application/json"
6 }
7});
8const data = await response.json();

Приклади відповідей

Services200application/json
 {