Перейти к основному содержимому

Магазин прокси

Просмотр и покупка доступных прокси.

Просмотр доступных прокси

Получите пагинированный список прокси, доступных для заказа, с опциональными фильтрами.

Endpoint

GET /proxies/shop/

Параметры запроса

ПараметрТипОбязательноОписание
access_typestringНетТип доступа к прокси. Значения: shared, private
connection_port_httpbooleanНетЕсли true, возвращаются только продукты с поддержкой HTTP. Если false — только без поддержки HTTP. Комбинируется с connection_port_socks5 по AND-семантике
connection_port_socks5booleanНетЕсли true, возвращаются только продукты с поддержкой SOCKS5. Если false — только без поддержки SOCKS5. Комбинируется с connection_port_http по AND-семантике
countrystringНетФильтр по коду страны (ISO 3166-1 alpha-2, например, us, au)
proxy_categorystringНетФильтр по категории. Значения: datacenter, lte, residential_rotating, residential_static
stock_statusstringНетФильтр по наличию. Значения: in_stock, out_of_stock
pageintegerНетНомер страницы для пагинации
page_sizeintegerНетКоличество результатов на странице

Запрос

curl -X 'GET' \
'https://app.cyberyozh.com/api/v1/proxies/shop/?country=pk&proxy_category=datacenter' \
-H 'accept: application/json' \
-H 'X-Api-Key: ваш_api_ключ'

Ответ

{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"proxy_products": [
{
"id": "f3e3ec3b-e6eb-40a7-b2d2-9125acb3093c",
"title": "IPv4 PK",
"location_country_code": "PK",
"price_usd": "2.18",
"discounted_price": null,
"days": 30,
"proxy_category": "datacenter",
"stock_status": "in_stock",
"traffic_limitation": -1,
"is_auto_renewal_possible": true,
"is_manual_renewal_possible": false,
"protocols": ["http"],
"max_quantity": 10,
"available_periods": [
{"months": 1, "price": "2.18", "discount_percent": "0"},
{"months": 2, "price": "4.36", "discount_percent": "0"},
{"months": 3, "price": "6.54", "discount_percent": "0"},
{"months": 6, "price": "13.08", "discount_percent": "0"},
{"months": 12, "price": "23.54", "discount_percent": "10"}
]
}
],
"title": "IPv4 PK",
"proxy_category": "datacenter",
"access_type": "private",
"location_country_code": "PK"
},
{
"proxy_products": [
{
"id": "45cbff57-7dca-4b12-b9fa-4f8b81d9bc0c",
"title": "IPv4 PK",
"location_country_code": "PK",
"price_usd": "1.77",
"discounted_price": null,
"days": 30,
"proxy_category": "datacenter",
"stock_status": "in_stock",
"traffic_limitation": -1,
"is_auto_renewal_possible": false,
"is_manual_renewal_possible": false,
"protocols": ["http"],
"max_quantity": 10,
"available_periods": []
}
],
"title": "IPv4 PK",
"proxy_category": "datacenter",
"access_type": "shared",
"location_country_code": "PK"
}
]
}

Поля ответа

ПолеТипОписание
countintegerОбщее количество результатов
nextstringURL следующей страницы (null если последняя)
previousstringURL предыдущей страницы (null если первая)
resultsarrayМассив групп прокси-продуктов
results[].titlestringНазвание группы
results[].proxy_categorystringКатегория: datacenter, lte, residential_rotating, residential_static
results[].access_typestringТип доступа: shared или private
results[].location_country_codestringКод страны
results[].proxy_productsarrayПродукты в группе
proxy_products[].idstring (UUID)Идентификатор продукта
proxy_products[].titlestringНазвание продукта
proxy_products[].location_country_codestringКод страны
proxy_products[].price_usdstringЦена в USD за один прокси на базовый срок
proxy_products[].discounted_pricestring | nullЦена с вашей персональной скидкой; null, если скидки на этот продукт нет
proxy_products[].daysintegerДлительность в днях
proxy_products[].proxy_categorystringКатегория
proxy_products[].stock_statusstringНаличие: in_stock или out_of_stock
proxy_products[].traffic_limitationintegerРазмер включенного в тариф трафика в МБ (-1 — безлимит)
proxy_products[].is_auto_renewal_possiblebooleanДоступно ли автопродление
proxy_products[].is_manual_renewal_possiblebooleanДоступно ли ручное продление
proxy_products[].protocolsarray[string]Поддерживаемые протоколы подключения (например, http, socks5)
proxy_products[].max_quantityinteger | nullМаксимальное quantity в одной позиции покупки; null — у продукта нет своего лимита, действует общий лимит 10
proxy_products[].available_periodsarrayСроки аренды, которые можно передать в period_months. Пустой массив — срок фиксирован, принимается только period_months: 1
available_periods[].monthsintegerСрок аренды в месяцах
available_periods[].pricestringЦена в USD за один прокси на весь срок с учётом вашей персональной скидки
available_periods[].discount_percentstringСкидка за длительный срок в процентах

Количество и срок аренды

max_quantity и available_periods показывают, что можно передать в buy_proxies для каждого продукта:

Продуктquantityperiod_monthsЧто отдаёт витрина
Общий датацентр (datacenter, shared)1–10только 1max_quantity: 10, available_periods: []
Выделенный датацентр (datacenter, private)1–101, 2, 3, 6, 12max_quantity: 10, пять сроков
Статический резидентный (residential_static)1–101, 2, 3, 6, 12max_quantity: 10, пять сроков
Остальные продукты1–10только 1max_quantity: null, available_periods: []

Покупка прокси

Заказать один или несколько прокси с выбором количества и срока аренды.

Endpoint

POST /proxies/shop/buy_proxies/

Тело запроса — массив позиций покупки. Каждая позиция обрабатывается независимо: если одна отклонена, остальные всё равно покупаются.

Запрос

Купить 3 общих датацентровых прокси, 2 выделенных на 3 месяца и попробовать купить 11 общих за раз:

curl -X 'POST' \
'https://app.cyberyozh.com/api/v1/proxies/shop/buy_proxies/' \
-H 'accept: application/json' \
-H 'X-Api-Key: ваш_api_ключ' \
-H 'Content-Type: application/json' \
-d '[
{
"id": "45cbff57-7dca-4b12-b9fa-4f8b81d9bc0c",
"auto_renew": false,
"quantity": 3
},
{
"id": "f3e3ec3b-e6eb-40a7-b2d2-9125acb3093c",
"auto_renew": false,
"quantity": 2,
"period_months": 3
},
{
"id": "45cbff57-7dca-4b12-b9fa-4f8b81d9bc0c",
"auto_renew": false,
"quantity": 11
}
]'

Поля запроса

ПолеТипОбязательноПо умолчаниюОписание
idstring (UUID)ДаID продукта из списка магазина
auto_renewbooleanДаВключить автопродление. Работает, только если продукт его поддерживает и period_months равен 1
quantityintegerНет1Сколько прокси купить: от 1 до max_quantity продукта (не больше 10)
period_monthsintegerНет1Срок аренды в месяцах: 1, 2, 3, 6 или 12. Должен быть в available_periods продукта
promo_codestringНетПромокод, применяется к каждому прокси в позиции

Ограничения на запрос:

  • не больше 50 позиций;
  • суммарное quantity по всем позициям — не больше 50.

Цену считает сервер: цена за выбранный срок (см. available_periods), умноженная на quantity. В примере выше первая позиция стоит 3 × $1.77 = $5.31, вторая — 2 × $6.54 = $13.08. Позиция оплачивается целиком — если баланса не хватает на все прокси позиции, ничего не покупается.

Ответ

201 Created и массив той же длины и в том же порядке, что и запрос:

[
{
"id": "45cbff57-7dca-4b12-b9fa-4f8b81d9bc0c",
"auto_renew": false,
"status": "in_progress",
"message": "0f1c4a2e-6f0b-4a51-9a53-2b1f9d6c8e11",
"code": null,
"order_ids": [
"0f1c4a2e-6f0b-4a51-9a53-2b1f9d6c8e11",
"5b7d9e10-3c2a-4e8f-b1d4-7a9c0e2f6b35",
"a3c1f0b2-8d4e-4b6a-9f17-c2e5d8b0a741"
]
},
{
"id": "f3e3ec3b-e6eb-40a7-b2d2-9125acb3093c",
"auto_renew": false,
"status": "in_progress",
"message": "c7e2a9d4-1b3f-4c8e-a6d2-9f0b4e7c1a58",
"code": null,
"order_ids": [
"c7e2a9d4-1b3f-4c8e-a6d2-9f0b4e7c1a58",
"e4b8f1a3-7d2c-4e9b-8a1f-3c6d0b9e2f74"
]
},
{
"id": "45cbff57-7dca-4b12-b9fa-4f8b81d9bc0c",
"auto_renew": false,
"status": "canceled",
"message": "You can order up to 10 proxies at once.",
"code": "quantity_limit_exceeded",
"order_ids": []
}
]

Поля ответа

ПолеТипОписание
idstring (UUID)ID продукта из запроса
auto_renewbooleanВключено ли автопродление у созданных заказов на самом деле
statusstringin_progress или canceled
messagestringДля in_progress — ID первого созданного заказа; для canceled — причина текстом, на языке из Accept-Language
codestring | nullМашиночитаемая причина отказа; null, если позиция принята
order_idsarray[string]ID всех заказов, созданных по позиции; пустой для canceled

Статусы ответа

СтатусОписание
in_progressВсе прокси позиции заказаны и обрабатываются
canceledПозиция не куплена: заказы не созданы, баланс не списан

Коды отказа

В интеграции опирайтесь на code, а не на message — текст сообщения зависит от языка.

КодСообщениеЗначение
invalid_productSelected Proxy no more exists.Продукт не существует или снят с продажи
out_of_stockPrivate proxy is out of stock now. Try again later.Продукта нет в наличии
insufficient_fundsNot enough money.Баланса не хватает на всю позицию
promocode_invalidatedPromo code is not applicable anymore. Please re-enter it.Промокод недействителен или истёк
quantity_limit_exceededYou can order up to 10 proxies at once.quantity больше лимита продукта
period_not_supportedThis product is sold for a fixed period only.period_months нет в available_periods продукта
something_went_wrongSomething went wrong. Contact SupportНепредвиденная ошибка, обратитесь в поддержку

Ошибки валидации

400 Bad Request возвращается на весь запрос, и ничего не покупается, если неверно само тело:

  • тело не массив или в нём больше 50 позиций;
  • суммарное quantity больше 50;
  • quantity меньше 1;
  • period_months не из 1, 2, 3, 6, 12.
[{"period_months": ["\"5\" is not a valid choice."]}]
{"non_field_errors": ["Ensure the total quantity is no more than 50 proxies per request."]}
warning

Запрос не идемпотентен. Повтор после таймаута купит прокси ещё раз. Перед повтором проверьте историю заказов.