List proxy offers
curl --request GET \
--url https://api.proxyjam.com/public/v1/catalog \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.proxyjam.com/public/v1/catalog"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.proxyjam.com/public/v1/catalog', 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/catalog",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.proxyjam.com/public/v1/catalog"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.proxyjam.com/public/v1/catalog")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.proxyjam.com/public/v1/catalog")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"kinds": [
{
"kind": "<string>",
"offers": [
{
"id": 123,
"kind": "<string>",
"mode": "<string>",
"ip_version": "<string>",
"name": "<string>",
"description": "<string>",
"country_code": "<string>",
"is_available": true,
"price_from_usd": 123,
"currency": "<string>",
"options": [
{}
]
}
]
}
],
"total": 123
}Catalog
List proxy offers
Retrieve all available proxy offers grouped by type.
GET
/
catalog
List proxy offers
curl --request GET \
--url https://api.proxyjam.com/public/v1/catalog \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.proxyjam.com/public/v1/catalog"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.proxyjam.com/public/v1/catalog', 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/catalog",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.proxyjam.com/public/v1/catalog"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.proxyjam.com/public/v1/catalog")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.proxyjam.com/public/v1/catalog")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"kinds": [
{
"kind": "<string>",
"offers": [
{
"id": 123,
"kind": "<string>",
"mode": "<string>",
"ip_version": "<string>",
"name": "<string>",
"description": "<string>",
"country_code": "<string>",
"is_available": true,
"price_from_usd": 123,
"currency": "<string>",
"options": [
{}
]
}
]
}
],
"total": 123
}Returns the full proxy catalog grouped by
kind. Use query parameters to filter the results.
Query parameters
string
Filter by proxy type. One of:
datacenter, residential, mobile.string
Filter by ISO 3166-1 alpha-2 country code (e.g.,
US, GB, DE).boolean
When
true, returns only offers currently in stock.Response
array
List of offer groups, one per proxy kind.
Show ProxyOffersByKind
Show ProxyOffersByKind
string
The proxy type:
datacenter, residential, or mobile.array
List of offers for this kind.
Show ProxyOfferResponse
Show ProxyOfferResponse
integer
Unique offer ID. Use this when placing an order.
string
Proxy type.
string
Proxy mode as defined by the provider.
string
IP version:
IPv4 or IPv6.string
Display name of the offer.
string
Optional description.
string
ISO country code of the proxy location.
boolean
Whether the offer is currently purchasable.
number
Starting price in USD across all options.
string
Always
USD.array
Pricing options. See Proxy types for field details.
integer
Total number of offers across all kinds.
Example
curl "https://api.proxyjam.com/public/v1/catalog?kind=residential&country=US&is_available=true"
from proxyjam import ProxyJamClient
# Catalog is public; the SDK forwards X-API-Key but no auth is required.
with ProxyJamClient(api_key="pj_live_...") as proxyjam:
catalog = proxyjam.catalog.list(
kind="residential",
country="US",
is_available=True,
)
for group in catalog.kinds:
for offer in group.offers:
print(offer.id, offer.name, offer.price_from_usd, offer.currency)
{
"kinds": [
{
"kind": "residential",
"offers": [
{
"id": 42,
"kind": "residential",
"mode": "rotating",
"ip_version": "IPv4",
"name": "US Residential Rotating",
"description": "High-quality US residential proxies",
"country_code": "US",
"is_available": true,
"price_from_usd": 3.5,
"currency": "USD",
"options": [
{
"price": 3.5,
"period_days": 30,
"period_name": "30 days",
"period_months": 1
}
]
}
]
}
],
"total": 1
}
⌘I