Release proxy
curl --request POST \
--url https://api.proxyjam.com/public/v1/orders/{order_id}/release \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.proxyjam.com/public/v1/orders/{order_id}/release"
headers = {"X-API-Key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.proxyjam.com/public/v1/orders/{order_id}/release', 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/{order_id}/release",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/orders/{order_id}/release"
req, _ := http.NewRequest("POST", 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.post("https://api.proxyjam.com/public/v1/orders/{order_id}/release")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.proxyjam.com/public/v1/orders/{order_id}/release")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyMobile rotating proxies
Release proxy
Cancel a mobile rotating proxy and release its port.
POST
/
orders
/
{order_id}
/
release
Release proxy
curl --request POST \
--url https://api.proxyjam.com/public/v1/orders/{order_id}/release \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.proxyjam.com/public/v1/orders/{order_id}/release"
headers = {"X-API-Key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.proxyjam.com/public/v1/orders/{order_id}/release', 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/{order_id}/release",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/orders/{order_id}/release"
req, _ := http.NewRequest("POST", 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.post("https://api.proxyjam.com/public/v1/orders/{order_id}/release")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.proxyjam.com/public/v1/orders/{order_id}/release")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyCancels the proxy at the upstream pool and releases its port back to the available inventory.
This is irreversible. The order moves to a cancelled state and the proxy can no longer be used. Any prepaid traffic on the proxy is forfeited.
Path parameters
string
required
UUID of the order backing the mobile rotating proxy.
Response
Final snapshot of the cancelled mobile rotating proxy. Same shape as the mobile branch of Get order, withstatus set to cancelled.
Example
curl -X POST "https://api.proxyjam.com/public/v1/orders/997b4450-e7ae-4ad9-8a25-996e582049c9/release" \
-H "X-API-Key: pj_AbCdEf..."
from proxyjam import ProxyJamClient
with ProxyJamClient(api_key="pj_live_...") as proxyjam:
proxy = proxyjam.proxies.release("997b4450-e7ae-4ad9-8a25-996e582049c9")
print(proxy.status)
{
"type": "mobile",
"id": "997b4450-e7ae-4ad9-8a25-996e582049c9",
"status": "cancelled",
"auto_renew": false,
"expires_at": "2026-12-31T23:59:59Z",
"host": "gw.proxyjam.com",
"port": 24534,
"username": "pj_abc",
"password": "<proxy-password>",
"current_ip": null,
"signature": null,
"tags": [],
"whitelisted_ips": [],
"order_status": "cancelled",
"proxy_type": "mobile",
"ip_version": "IPv4",
"protocol": "HTTP",
"country": "US",
"city": null,
"isp": "T-Mobile",
"period_days": 1,
"bandwidth_gb": null,
"quantity": 1,
"total_usd": 1.5,
"total_amount": "1.50",
"currency": "USD",
"promo_code_id": null,
"discount_usd": null,
"created_at": "2026-12-30T23:59:59Z",
"updated_at": "2026-12-31T00:15:01Z",
"payment_intent_id": null,
"previous_expires_at": null
}
⌘I