Create order
curl --request POST \
--url https://api.proxyjam.com/public/v1/orders \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"offer_id": 123,
"payment_method": "<string>",
"proxy_type": "<string>",
"ip_version": "<string>",
"protocol": "<string>",
"country": "<string>",
"city": "<string>",
"isp": "<string>",
"quantity": 123,
"period_days": 123,
"tarification_index": 123,
"bandwidth_gb": 123,
"auto_renew": true,
"notes": "<string>",
"idempotency_key": "<string>"
}
'import requests
url = "https://api.proxyjam.com/public/v1/orders"
payload = {
"offer_id": 123,
"payment_method": "<string>",
"proxy_type": "<string>",
"ip_version": "<string>",
"protocol": "<string>",
"country": "<string>",
"city": "<string>",
"isp": "<string>",
"quantity": 123,
"period_days": 123,
"tarification_index": 123,
"bandwidth_gb": 123,
"auto_renew": True,
"notes": "<string>",
"idempotency_key": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
offer_id: 123,
payment_method: '<string>',
proxy_type: '<string>',
ip_version: '<string>',
protocol: '<string>',
country: '<string>',
city: '<string>',
isp: '<string>',
quantity: 123,
period_days: 123,
tarification_index: 123,
bandwidth_gb: 123,
auto_renew: true,
notes: '<string>',
idempotency_key: '<string>'
})
};
fetch('https://api.proxyjam.com/public/v1/orders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.proxyjam.com/public/v1/orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'offer_id' => 123,
'payment_method' => '<string>',
'proxy_type' => '<string>',
'ip_version' => '<string>',
'protocol' => '<string>',
'country' => '<string>',
'city' => '<string>',
'isp' => '<string>',
'quantity' => 123,
'period_days' => 123,
'tarification_index' => 123,
'bandwidth_gb' => 123,
'auto_renew' => true,
'notes' => '<string>',
'idempotency_key' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.proxyjam.com/public/v1/orders"
payload := strings.NewReader("{\n \"offer_id\": 123,\n \"payment_method\": \"<string>\",\n \"proxy_type\": \"<string>\",\n \"ip_version\": \"<string>\",\n \"protocol\": \"<string>\",\n \"country\": \"<string>\",\n \"city\": \"<string>\",\n \"isp\": \"<string>\",\n \"quantity\": 123,\n \"period_days\": 123,\n \"tarification_index\": 123,\n \"bandwidth_gb\": 123,\n \"auto_renew\": true,\n \"notes\": \"<string>\",\n \"idempotency_key\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.proxyjam.com/public/v1/orders")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"offer_id\": 123,\n \"payment_method\": \"<string>\",\n \"proxy_type\": \"<string>\",\n \"ip_version\": \"<string>\",\n \"protocol\": \"<string>\",\n \"country\": \"<string>\",\n \"city\": \"<string>\",\n \"isp\": \"<string>\",\n \"quantity\": 123,\n \"period_days\": 123,\n \"tarification_index\": 123,\n \"bandwidth_gb\": 123,\n \"auto_renew\": true,\n \"notes\": \"<string>\",\n \"idempotency_key\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.proxyjam.com/public/v1/orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"offer_id\": 123,\n \"payment_method\": \"<string>\",\n \"proxy_type\": \"<string>\",\n \"ip_version\": \"<string>\",\n \"protocol\": \"<string>\",\n \"country\": \"<string>\",\n \"city\": \"<string>\",\n \"isp\": \"<string>\",\n \"quantity\": 123,\n \"period_days\": 123,\n \"tarification_index\": 123,\n \"bandwidth_gb\": 123,\n \"auto_renew\": true,\n \"notes\": \"<string>\",\n \"idempotency_key\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"status": "<string>",
"total_usd": 123,
"payment_info": {
"payment_method": "<string>",
"payment_intent_id": "<string>",
"payment_url": "<string>"
},
"proxy_access": [
{
"id": "<string>",
"host": "<string>",
"port": 123,
"username": "<string>",
"password": "<string>",
"protocol": "<string>",
"status": "<string>",
"expires_at": "<string>",
"whitelisted_ips": [
{}
],
"bandwidth_total_gb": 123,
"bandwidth_used_gb": 123
}
]
}Orders
Create order
Place a proxy order as an authenticated user.
POST
/
orders
Create order
curl --request POST \
--url https://api.proxyjam.com/public/v1/orders \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"offer_id": 123,
"payment_method": "<string>",
"proxy_type": "<string>",
"ip_version": "<string>",
"protocol": "<string>",
"country": "<string>",
"city": "<string>",
"isp": "<string>",
"quantity": 123,
"period_days": 123,
"tarification_index": 123,
"bandwidth_gb": 123,
"auto_renew": true,
"notes": "<string>",
"idempotency_key": "<string>"
}
'import requests
url = "https://api.proxyjam.com/public/v1/orders"
payload = {
"offer_id": 123,
"payment_method": "<string>",
"proxy_type": "<string>",
"ip_version": "<string>",
"protocol": "<string>",
"country": "<string>",
"city": "<string>",
"isp": "<string>",
"quantity": 123,
"period_days": 123,
"tarification_index": 123,
"bandwidth_gb": 123,
"auto_renew": True,
"notes": "<string>",
"idempotency_key": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
offer_id: 123,
payment_method: '<string>',
proxy_type: '<string>',
ip_version: '<string>',
protocol: '<string>',
country: '<string>',
city: '<string>',
isp: '<string>',
quantity: 123,
period_days: 123,
tarification_index: 123,
bandwidth_gb: 123,
auto_renew: true,
notes: '<string>',
idempotency_key: '<string>'
})
};
fetch('https://api.proxyjam.com/public/v1/orders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.proxyjam.com/public/v1/orders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'offer_id' => 123,
'payment_method' => '<string>',
'proxy_type' => '<string>',
'ip_version' => '<string>',
'protocol' => '<string>',
'country' => '<string>',
'city' => '<string>',
'isp' => '<string>',
'quantity' => 123,
'period_days' => 123,
'tarification_index' => 123,
'bandwidth_gb' => 123,
'auto_renew' => true,
'notes' => '<string>',
'idempotency_key' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.proxyjam.com/public/v1/orders"
payload := strings.NewReader("{\n \"offer_id\": 123,\n \"payment_method\": \"<string>\",\n \"proxy_type\": \"<string>\",\n \"ip_version\": \"<string>\",\n \"protocol\": \"<string>\",\n \"country\": \"<string>\",\n \"city\": \"<string>\",\n \"isp\": \"<string>\",\n \"quantity\": 123,\n \"period_days\": 123,\n \"tarification_index\": 123,\n \"bandwidth_gb\": 123,\n \"auto_renew\": true,\n \"notes\": \"<string>\",\n \"idempotency_key\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.proxyjam.com/public/v1/orders")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"offer_id\": 123,\n \"payment_method\": \"<string>\",\n \"proxy_type\": \"<string>\",\n \"ip_version\": \"<string>\",\n \"protocol\": \"<string>\",\n \"country\": \"<string>\",\n \"city\": \"<string>\",\n \"isp\": \"<string>\",\n \"quantity\": 123,\n \"period_days\": 123,\n \"tarification_index\": 123,\n \"bandwidth_gb\": 123,\n \"auto_renew\": true,\n \"notes\": \"<string>\",\n \"idempotency_key\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.proxyjam.com/public/v1/orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"offer_id\": 123,\n \"payment_method\": \"<string>\",\n \"proxy_type\": \"<string>\",\n \"ip_version\": \"<string>\",\n \"protocol\": \"<string>\",\n \"country\": \"<string>\",\n \"city\": \"<string>\",\n \"isp\": \"<string>\",\n \"quantity\": 123,\n \"period_days\": 123,\n \"tarification_index\": 123,\n \"bandwidth_gb\": 123,\n \"auto_renew\": true,\n \"notes\": \"<string>\",\n \"idempotency_key\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"status": "<string>",
"total_usd": 123,
"payment_info": {
"payment_method": "<string>",
"payment_intent_id": "<string>",
"payment_url": "<string>"
},
"proxy_access": [
{
"id": "<string>",
"host": "<string>",
"port": 123,
"username": "<string>",
"password": "<string>",
"protocol": "<string>",
"status": "<string>",
"expires_at": "<string>",
"whitelisted_ips": [
{}
],
"bandwidth_total_gb": 123,
"bandwidth_used_gb": 123
}
]
}Places a new proxy order. The proxies are provisioned immediately after a successful payment.
Use
"payment_method": "wallet" to deduct from your wallet balance instantly, or "payment_method": "cryptocloud" to pay with crypto and receive a redirect URL.
Send an
idempotency_key to make this request safe to retry. See Idempotency.Request body
integer
required
ID of the proxy offer from the catalog.
string
required
wallet or cryptocloud.string
default:"residential"
Proxy type:
datacenter, residential, or mobile.string
default:"IPv4"
IPv4 or IPv6.string
default:"HTTP"
HTTP, HTTPS, or SOCKS5.string
default:"US"
ISO 3166-1 alpha-2 country code.
string
Optional city for geo-targeting.
string
Optional ISP filter.
integer
default:"1"
Number of proxies.
integer
default:"30"
Rental period in days. For offers that require a
tarification_index, must
match the chosen option’s period_days exactly.integer
Index into the offer’s
options array. Required for mobile rotating
offers, which sell only pre-registered tariff triples; pass the index of
the option the user picked. Ignored for other offers and rejected with
422 if supplied for them.integer
Optional traffic limit in GB. Leave unset for unlimited (where supported).
boolean
default:"false"
Automatically renew when the period ends.
string
Optional private notes for your reference.
string
UUID for idempotent request handling.
Response
string
Order UUID.
string
Order status. One of:
pending, pending_payment, active, failed, cancelled, expired.number
Total charged in USD.
object
array
Populated once the order is
active. Each item:Show ProxyAccess
Show ProxyAccess
string
Provider proxy ID.
string
Proxy hostname or IP.
integer
Proxy port.
string
Authentication username.
string
Authentication password.
string
Connection protocol.
string
Proxy status.
string
ISO 8601 expiry timestamp.
array
List of allowed source IPs.
number
Total traffic limit in GB.
number
Traffic already used in GB.
Example — wallet payment
curl -X POST https://api.proxyjam.com/public/v1/orders \
-H "X-API-Key: pj_AbCdEf..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
-d '{
"offer_id": 42,
"payment_method": "wallet",
"proxy_type": "residential",
"ip_version": "IPv4",
"protocol": "HTTP",
"country": "US",
"quantity": 2,
"period_days": 30
}'
from proxyjam import ProxyJamClient
with ProxyJamClient(api_key="pj_live_...") as proxyjam:
orders = proxyjam.orders.create(
offer_id=42,
quantity=2,
period_days=30,
payment_method="wallet",
idempotency_key="550e8400-e29b-41d4-a716-446655440000",
)
order = orders[0]
print(order.id, order.status, order.proxy_host, order.proxy_port)
{
"id": "order-uuid-here",
"user_id": "user-uuid",
"offer_id": 42,
"status": "active",
"total_usd": 7.0,
"proxy_type": "residential",
"ip_version": "IPv4",
"protocol": "HTTP",
"country": "US",
"city": null,
"isp": null,
"quantity": 2,
"period_days": 30,
"bandwidth_gb": null,
"auto_renew": false,
"notes": null,
"created_at": "2024-01-15T10:00:00Z",
"updated_at": "2024-01-15T10:00:05Z",
"payment_info": {
"payment_method": "wallet",
"payment_intent_id": null,
"payment_url": null
},
"proxy_access": [
{
"id": "1836367",
"host": "proxy.ProxyJam.com",
"port": 10001,
"username": "usr_abc",
"password": "<proxy-password>",
"protocol": "HTTP",
"status": "active",
"expires_at": "2024-02-14T10:00:00Z",
"whitelisted_ips": [],
"bandwidth_total_gb": 1.0,
"bandwidth_used_gb": 0.0
}
]
}
⌘I