Proxy Shop
Browse and purchase available proxies.
Browse Available Proxies
Get a paginated list of proxies available for order with optional filters.
Endpoint
GET /proxies/shop/
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
access_type | string | No | Proxy access type. Values: shared, private |
connection_port_http | boolean | No | If true, return only products supporting HTTP. If false, return only products NOT supporting HTTP. Combine with connection_port_socks5 for AND semantics |
connection_port_socks5 | boolean | No | If true, return only products supporting SOCKS5. If false, return only products NOT supporting SOCKS5. Combine with connection_port_http for AND semantics |
country | string | No | Filter by country code (ISO 3166-1 alpha-2, e.g., us, au) |
proxy_category | string | No | Filter by category. Values: datacenter, lte, residential_rotating, residential_static |
stock_status | string | No | Filter by availability. Values: in_stock, out_of_stock |
page | integer | No | Page number for pagination |
page_size | integer | No | Number of results per page |
Request
curl -X 'GET' \
'https://app.cyberyozh.com/api/v1/proxies/shop/?country=pk&proxy_category=datacenter' \
-H 'accept: application/json' \
-H 'X-Api-Key: your_api_key_here'
Response
{
"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"
}
]
}
Response Fields
| Field | Type | Description |
|---|---|---|
count | integer | Total number of results |
next | string | URL of the next page (null if last) |
previous | string | URL of the previous page (null if first) |
results | array | Array of proxy product groups |
results[].title | string | Group title |
results[].proxy_category | string | Category: datacenter, lte, residential_rotating, residential_static |
results[].access_type | string | Access type: shared or private |
results[].location_country_code | string | Country code |
results[].proxy_products | array | Products in this group |
proxy_products[].id | string (UUID) | Product identifier |
proxy_products[].title | string | Product name |
proxy_products[].location_country_code | string | Country code |
proxy_products[].price_usd | string | Price in USD for one proxy for the base period |
proxy_products[].discounted_price | string | null | Price with your personal discount applied; null if you have no discount for this product |
proxy_products[].days | integer | Duration in days |
proxy_products[].proxy_category | string | Category |
proxy_products[].stock_status | string | Availability: in_stock or out_of_stock |
proxy_products[].traffic_limitation | integer | Traffic limit in MB included in the plan (-1 for unlimited) |
proxy_products[].is_auto_renewal_possible | boolean | Whether auto-renewal is available |
proxy_products[].is_manual_renewal_possible | boolean | Whether manual renewal is available |
proxy_products[].protocols | array[string] | Supported connection protocols (e.g., http, socks5) |
proxy_products[].max_quantity | integer | null | Maximum quantity you can buy in one purchase position; null means the product has no own limit and the general limit of 10 applies |
proxy_products[].available_periods | array | Rental periods you can pass as period_months. An empty array means the period is fixed and only period_months: 1 is accepted |
available_periods[].months | integer | Rental period in months |
available_periods[].price | string | Price in USD for one proxy for the whole period, your personal discount included |
available_periods[].discount_percent | string | Discount for the longer period, in percent |
Quantity and Rental Period
max_quantity and available_periods tell you what you can pass to buy_proxies for each product:
| Product | quantity | period_months | What the listing returns |
|---|---|---|---|
Shared datacenter (datacenter, shared) | 1–10 | 1 only | max_quantity: 10, available_periods: [] |
Dedicated datacenter (datacenter, private) | 1–10 | 1, 2, 3, 6, 12 | max_quantity: 10, five periods |
Static residential (residential_static) | 1–10 | 1, 2, 3, 6, 12 | max_quantity: 10, five periods |
| Other products | 1–10 | 1 only | max_quantity: null, available_periods: [] |
Purchase Proxies
Order one or more proxies, choosing how many and for how long.
Endpoint
POST /proxies/shop/buy_proxies/
The request body is an array of purchase positions. Each position is processed independently: if one is rejected, the others still go through.
Request
Buy 3 shared datacenter proxies, 2 dedicated datacenter proxies for 3 months, and try to buy 11 shared proxies at once:
curl -X 'POST' \
'https://app.cyberyozh.com/api/v1/proxies/shop/buy_proxies/' \
-H 'accept: application/json' \
-H 'X-Api-Key: your_api_key_here' \
-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
}
]'
Request Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string (UUID) | Yes | — | Product ID from the shop listing |
auto_renew | boolean | Yes | — | Enable auto-renewal. Takes effect only if the product supports it and period_months is 1 |
quantity | integer | No | 1 | Number of proxies to buy, from 1 up to the product's max_quantity (never more than 10) |
period_months | integer | No | 1 | Rental period in months: 1, 2, 3, 6 or 12. Must be one of the product's available_periods |
promo_code | string | No | — | Promo code, applied to every proxy in the position |
Limits per request:
- no more than 50 positions;
- the total
quantityacross all positions is no more than 50.
The price is calculated by the server: the price for the chosen period (see available_periods) multiplied by quantity. In the example above the first position costs 3 × $1.77 = $5.31 and the second 2 × $6.54 = $13.08. The whole position is charged at once — if the balance does not cover all proxies of the position, nothing is bought.
Response
201 Created with an array of the same length and order as the request:
[
{
"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": []
}
]
Response Fields
| Field | Type | Description |
|---|---|---|
id | string (UUID) | Product ID from the request |
auto_renew | boolean | Whether auto-renewal is actually enabled for the created orders |
status | string | in_progress or canceled |
message | string | For in_progress — ID of the first created order; for canceled — human-readable reason, translated according to Accept-Language |
code | string | null | Machine-readable rejection reason; null when the position is accepted |
order_ids | array[string] | IDs of all orders created for the position; empty for canceled |
Response Statuses
| Status | Description |
|---|---|
in_progress | All proxies of the position are ordered and being processed |
canceled | The position was not bought: no orders were created and the balance was not charged |
Rejection Codes
Use code rather than message in your integration — the message text depends on the language.
| Code | Message | Meaning |
|---|---|---|
invalid_product | Selected Proxy no more exists. | The product does not exist or is no longer on sale |
out_of_stock | Private proxy is out of stock now. Try again later. | The product is out of stock |
insufficient_funds | Not enough money. | The balance does not cover the whole position |
promocode_invalidated | Promo code is not applicable anymore. Please re-enter it. | The promo code is invalid or expired |
quantity_limit_exceeded | You can order up to 10 proxies at once. | quantity is above the product's limit |
period_not_supported | This product is sold for a fixed period only. | period_months is not in the product's available_periods |
something_went_wrong | Something went wrong. Contact Support | Unexpected error, contact support |
Validation Errors
400 Bad Request is returned for the whole request, and nothing is bought, when the body itself is invalid:
- the body is not an array, or it has more than 50 positions;
- the total
quantityis above 50; quantityis less than 1;period_monthsis not one of1,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."]}
The request is not idempotent. If you retry after a timeout, the proxies will be bought again. Check your order history before retrying.