Update a user
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "PATCH");curl_easy_setopt(hnd, CURLOPT_URL, "https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0");
struct curl_slist *headers = NULL;headers = curl_slist_append(headers, "Accept-Language: de");headers = curl_slist_append(headers, "Authorization: Bearer <token>");headers = curl_slist_append(headers, "Content-Type: application/json");curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{ \"email\": \"[email protected]\", \"first_name\": \"Dana\", \"last_name\": \"Morgan\", \"country\": \"us\", \"state\": \"state\", \"city\": \"los_angeles\", \"address\": \"address\", \"zip\": \"zip\", \"company_name\": \"company name\", \"company_country\": \"company country\", \"company_city\": \"company city\", \"company_address\": \"company address\", \"company_postal_code\": \"company postal code\", \"company_vat_number\": \"company vat number\", \"is_reseller\": true, \"blocked_domains\": [ \"blocked.example\" ], \"allowed_ips\": [ \"198.51.100.25\" ], \"connection_limit\": 1, \"new_password\": \"New-Secure-Password-43\", \"meta\": {} }");
CURLcode ret = curl_easy_perform(hnd);using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Patch, RequestUri = new Uri("https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"), Headers = { { "Accept-Language", "de" }, { "Authorization", "Bearer <token>" }, }, Content = new StringContent("{ \"email\": \"[email protected]\", \"first_name\": \"Dana\", \"last_name\": \"Morgan\", \"country\": \"us\", \"state\": \"state\", \"city\": \"los_angeles\", \"address\": \"address\", \"zip\": \"zip\", \"company_name\": \"company name\", \"company_country\": \"company country\", \"company_city\": \"company city\", \"company_address\": \"company address\", \"company_postal_code\": \"company postal code\", \"company_vat_number\": \"company vat number\", \"is_reseller\": true, \"blocked_domains\": [ \"blocked.example\" ], \"allowed_ips\": [ \"198.51.100.25\" ], \"connection_limit\": 1, \"new_password\": \"New-Secure-Password-43\", \"meta\": {} }") { Headers = { ContentType = new MediaTypeHeaderValue("application/json") } }};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
payload := strings.NewReader("{ \"email\": \"[email protected]\", \"first_name\": \"Dana\", \"last_name\": \"Morgan\", \"country\": \"us\", \"state\": \"state\", \"city\": \"los_angeles\", \"address\": \"address\", \"zip\": \"zip\", \"company_name\": \"company name\", \"company_country\": \"company country\", \"company_city\": \"company city\", \"company_address\": \"company address\", \"company_postal_code\": \"company postal code\", \"company_vat_number\": \"company vat number\", \"is_reseller\": true, \"blocked_domains\": [ \"blocked.example\" ], \"allowed_ips\": [ \"198.51.100.25\" ], \"connection_limit\": 1, \"new_password\": \"New-Secure-Password-43\", \"meta\": {} }")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Accept-Language", "de") req.Header.Add("Authorization", "Bearer <token>") req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0")) .header("Accept-Language", "de") .header("Authorization", "Bearer <token>") .header("Content-Type", "application/json") .method("PATCH", HttpRequest.BodyPublishers.ofString("{ \"email\": \"[email protected]\", \"first_name\": \"Dana\", \"last_name\": \"Morgan\", \"country\": \"us\", \"state\": \"state\", \"city\": \"los_angeles\", \"address\": \"address\", \"zip\": \"zip\", \"company_name\": \"company name\", \"company_country\": \"company country\", \"company_city\": \"company city\", \"company_address\": \"company address\", \"company_postal_code\": \"company postal code\", \"company_vat_number\": \"company vat number\", \"is_reseller\": true, \"blocked_domains\": [ \"blocked.example\" ], \"allowed_ips\": [ \"198.51.100.25\" ], \"connection_limit\": 1, \"new_password\": \"New-Secure-Password-43\", \"meta\": {} }")) .build();HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");RequestBody body = RequestBody.create(mediaType, "{ \"email\": \"[email protected]\", \"first_name\": \"Dana\", \"last_name\": \"Morgan\", \"country\": \"us\", \"state\": \"state\", \"city\": \"los_angeles\", \"address\": \"address\", \"zip\": \"zip\", \"company_name\": \"company name\", \"company_country\": \"company country\", \"company_city\": \"company city\", \"company_address\": \"company address\", \"company_postal_code\": \"company postal code\", \"company_vat_number\": \"company vat number\", \"is_reseller\": true, \"blocked_domains\": [ \"blocked.example\" ], \"allowed_ips\": [ \"198.51.100.25\" ], \"connection_limit\": 1, \"new_password\": \"New-Secure-Password-43\", \"meta\": {} }");Request request = new Request.Builder() .url("https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0") .patch(body) .addHeader("Accept-Language", "de") .addHeader("Authorization", "Bearer <token>") .addHeader("Content-Type", "application/json") .build();
Response response = client.newCall(request).execute();import axios from 'axios';
const options = { method: 'PATCH', url: 'https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0', headers: { 'Accept-Language': 'de', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, data: { first_name: 'Dana', last_name: 'Morgan', country: 'us', state: 'state', city: 'los_angeles', address: 'address', zip: 'zip', company_name: 'company name', company_country: 'company country', company_city: 'company city', company_address: 'company address', company_postal_code: 'company postal code', company_vat_number: 'company vat number', is_reseller: true, blocked_domains: ['blocked.example'], allowed_ips: ['198.51.100.25'], connection_limit: 1, new_password: 'New-Secure-Password-43', meta: {} }};
try { const { data } = await axios.request(options); console.log(data);} catch (error) { console.error(error);}const url = 'https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = { method: 'PATCH', headers: { 'Accept-Language': 'de', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"email":"[email protected]","first_name":"Dana","last_name":"Morgan","country":"us","state":"state","city":"los_angeles","address":"address","zip":"zip","company_name":"company name","company_country":"company country","company_city":"company city","company_address":"company address","company_postal_code":"company postal code","company_vat_number":"company vat number","is_reseller":true,"blocked_domains":["blocked.example"],"allowed_ips":["198.51.100.25"],"connection_limit":1,"new_password":"New-Secure-Password-43","meta":{}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}val client = OkHttpClient()
val mediaType = MediaType.parse("application/json")val body = RequestBody.create(mediaType, "{ \"email\": \"[email protected]\", \"first_name\": \"Dana\", \"last_name\": \"Morgan\", \"country\": \"us\", \"state\": \"state\", \"city\": \"los_angeles\", \"address\": \"address\", \"zip\": \"zip\", \"company_name\": \"company name\", \"company_country\": \"company country\", \"company_city\": \"company city\", \"company_address\": \"company address\", \"company_postal_code\": \"company postal code\", \"company_vat_number\": \"company vat number\", \"is_reseller\": true, \"blocked_domains\": [ \"blocked.example\" ], \"allowed_ips\": [ \"198.51.100.25\" ], \"connection_limit\": 1, \"new_password\": \"New-Secure-Password-43\", \"meta\": {} }")val request = Request.Builder() .url("https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0") .patch(body) .addHeader("Accept-Language", "de") .addHeader("Authorization", "Bearer <token>") .addHeader("Content-Type", "application/json") .build()
val response = client.newCall(request).execute()use std::str::FromStr;use serde_json::json;use reqwest;
#[tokio::main]pub async fn main() { let url = "https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0";
let payload = json!({ "first_name": "Dana", "last_name": "Morgan", "country": "us", "state": "state", "city": "los_angeles", "address": "address", "zip": "zip", "company_name": "company name", "company_country": "company country", "company_city": "company city", "company_address": "company address", "company_postal_code": "company postal code", "company_vat_number": "company vat number", "is_reseller": true, "blocked_domains": ("blocked.example"), "allowed_ips": ("198.51.100.25"), "connection_limit": 1, "new_password": "New-Secure-Password-43", "meta": json!({}) });
let mut headers = reqwest::header::HeaderMap::new(); headers.insert("Accept-Language", "de".parse().unwrap()); headers.insert("Authorization", "Bearer <token>".parse().unwrap()); headers.insert("Content-Type", "application/json".parse().unwrap());
let client = reqwest::Client::new(); let response = client.request(reqwest::Method::from_str("PATCH").unwrap(), url) .headers(headers) .json(&payload) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}curl --request PATCH \ --url https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \ --header 'Accept-Language: de' \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "email": "[email protected]", "first_name": "Dana", "last_name": "Morgan", "country": "us", "state": "state", "city": "los_angeles", "address": "address", "zip": "zip", "company_name": "company name", "company_country": "company country", "company_city": "company city", "company_address": "company address", "company_postal_code": "company postal code", "company_vat_number": "company vat number", "is_reseller": true, "blocked_domains": [ "blocked.example" ], "allowed_ips": [ "198.51.100.25" ], "connection_limit": 1, "new_password": "New-Secure-Password-43", "meta": {} }'wget --quiet \ --method PATCH \ --header 'Accept-Language: de' \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --body-data '{ "email": "[email protected]", "first_name": "Dana", "last_name": "Morgan", "country": "us", "state": "state", "city": "los_angeles", "address": "address", "zip": "zip", "company_name": "company name", "company_country": "company country", "company_city": "company city", "company_address": "company address", "company_postal_code": "company postal code", "company_vat_number": "company vat number", "is_reseller": true, "blocked_domains": [ "blocked.example" ], "allowed_ips": [ "198.51.100.25" ], "connection_limit": 1, "new_password": "New-Secure-Password-43", "meta": {} }' \ --output-document \ - https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0Updates selected fields for a visible user and returns the latest account state.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”A UUID string identifying this user.
Header Parameters
Section titled “Header Parameters”Strong ETag from the latest representation of this resource.
Preferred language for human-readable API errors. Supported languages: en, ru, uk, de, it, fr, es, zh-hans, ja. Regional language tags and quality weights are accepted; unsupported or omitted values use English.
Examples
defr-CA, fr;q=0.9, en;q=0.5Request Body
Section titled “Request Body”Optional fields accepted when updating part of an existing customer account.
object
User’s email address. Must be unique across the system.
User’s first name.
User’s last name.
User’s country of residence.
User’s state or province.
User’s city.
User’s street address.
User’s postal/ZIP code.
Name of the user’s company.
Country where the company is located.
City where the company is located.
Company’s street address.
Company’s postal code.
Company’s VAT number.
Whether the user has reseller privileges. Only superusers can modify.
List of domains to block for this user.
List of source IP addresses allowed for this user. The maximum list size is configured per deployment.
Maximum number of concurrent connections allowed for the user.
New password for the user. Must be 8-128 characters long.
Additional metadata for the user. Maximum 50 fields.
object
Examples
Example request
{ "first_name": "Dana", "last_name": "Morgan", "country": "us", "state": "state", "city": "los_angeles", "address": "address", "zip": "zip", "company_name": "company name", "company_country": "company country", "company_city": "company city", "company_address": "company address", "company_postal_code": "company postal code", "company_vat_number": "company vat number", "is_reseller": true, "blocked_domains": [ "blocked.example" ], "allowed_ips": [ "198.51.100.25" ], "connection_limit": 1, "new_password": "New-Secure-Password-43", "meta": {}}Optional fields accepted when updating part of an existing customer account.
object
User’s email address. Must be unique across the system.
User’s first name.
User’s last name.
User’s country of residence.
User’s state or province.
User’s city.
User’s street address.
User’s postal/ZIP code.
Name of the user’s company.
Country where the company is located.
City where the company is located.
Company’s street address.
Company’s postal code.
Company’s VAT number.
Whether the user has reseller privileges. Only superusers can modify.
List of domains to block for this user.
List of source IP addresses allowed for this user. The maximum list size is configured per deployment.
Maximum number of concurrent connections allowed for the user.
New password for the user. Must be 8-128 characters long.
Additional metadata for the user. Maximum 50 fields.
object
Examples
Example request
email=developer%40example.com&first_name=Dana&last_name=Morgan&country=us&state=state&city=los_angeles&address=address&zip=zip&company_name=company+name&company_country=company+country&company_city=company+city&company_address=company+address&company_postal_code=company+postal+code&company_vat_number=company+vat+number&is_reseller=true&blocked_domains=blocked.example&allowed_ips=198.51.100.25&connection_limit=1&new_password=New-Secure-Password-43Optional fields accepted when updating part of an existing customer account.
object
User’s email address. Must be unique across the system.
User’s first name.
User’s last name.
User’s country of residence.
User’s state or province.
User’s city.
User’s street address.
User’s postal/ZIP code.
Name of the user’s company.
Country where the company is located.
City where the company is located.
Company’s street address.
Company’s postal code.
Company’s VAT number.
Whether the user has reseller privileges. Only superusers can modify.
List of domains to block for this user.
List of source IP addresses allowed for this user. The maximum list size is configured per deployment.
Maximum number of concurrent connections allowed for the user.
New password for the user. Must be 8-128 characters long.
Additional metadata for the user. Maximum 50 fields.
object
Examples
Example request
{ "first_name": "Dana", "last_name": "Morgan", "country": "us", "state": "state", "city": "los_angeles", "address": "address", "zip": "zip", "company_name": "company name", "company_country": "company country", "company_city": "company city", "company_address": "company address", "company_postal_code": "company postal code", "company_vat_number": "company vat number", "is_reseller": true, "blocked_domains": [ "blocked.example" ], "allowed_ips": [ "198.51.100.25" ], "connection_limit": 1, "new_password": "New-Secure-Password-43", "meta": {}}Responses
Section titled “Responses”The request was accepted and the updated resource is returned.
Customer account with contact details, security settings, package data, referral information, and managed sub-users visible to the caller.
object
Value must contain only letters, numbers, and underscores. It must not start or end with an underscore.
Reseller can create sub-users and manage their data.
Marketer can manage marketing campaigns and view analytics.
Designates that this user has all permissions without explicitly assigning them.
Timestamp of when the user joined
en- EN *de- DE *fr- FR *it- IT *ru- RU
List of IP addresses allowed for this user
List of domains blocked for this user
The maximum number of concurrent connections allowed for this package.
ID of the parent user (for sub-accounts)
Number of sub-users managed by this reseller
Number of users referred by this user
Currency information for the user’s transactions
object
Available coupons for this user
object
The user’s package orders, including inactive orders. Each order contains its own data allowance, usage, ledgers, and proxy credentials. An empty list means the user has no orders.
object
When this percentage of the data allowance has been consumed, the order is automatically renewed if the user has sufficient balance. Set to 0 to disable auto-renewal. 80 → renew when 80% of data is used
Amount of data in GB to add when auto-renewal is triggered. Set to 0 to use the package default.
object
Password used by the customer to authenticate proxy connections. Auto-generated by default — change only if a custom value is needed. Must be between 4 and 64 characters.
Timestamp of the last proxy password change. Read-only — updated automatically whenever the password is rotated.
Private proxy pools assigned to this order. Pools restrict which proxy IPs are available to this customer. Leave blank to use the full provider pool.
Total data allowance for this order in bytes. 1073741824 = 1 GiB 10737418240 = 10 GiB
Integer bytes. Root order: sum of usable ledger balances, not data minus data_spent. Virtual child order: max(data - data_spent, 0), a personal quota that does not guarantee the parent still has usable data.
Total bytes consumed from this order’s data allowance so far. Updated in real time as the customer uses the proxy.
Usable, non-expired ledger balances for a purchased root order; empty for a virtual child order using its parent’s pool. Not a complete history. Array position does not identify the active ledger or spending order.
object
Amount of data added to this order in bytes during the most recent top-up.
Timestamp of the most recent data top-up, set when an invoice is fulfilled.
Examples
Updated user
{ "id": "550e8400-e29b-41d4-a716-446655440001", "username": "developer", "first_name": "Dana", "last_name": "Morgan", "is_reseller": false, "orders": []}Headers
Section titled “Headers”Strong entity tag for optimistic concurrency control.
The request is malformed or violates a business rule.
Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of human-readable messages.
object
Examples
Validation error
{ "non_field_errors": [ "The request could not be processed." ]}Headers
Section titled “Headers”Language used for human-readable errors.
Authentication credentials are missing, expired, or invalid.
Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of human-readable messages.
object
Examples
Authentication required
{ "detail": "Authentication credentials were not provided."}Headers
Section titled “Headers”Language used for human-readable errors.
The authenticated account cannot perform this operation.
Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of human-readable messages.
object
Examples
Permission denied
{ "detail": "You do not have permission to perform this action."}Headers
Section titled “Headers”Language used for human-readable errors.
The requested resource does not exist in the current account scope.
Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of human-readable messages.
object
Examples
Resource not found
{ "detail": "Not found."}Headers
Section titled “Headers”Language used for human-readable errors.
The resource no longer matches the supplied ETag.
Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of human-readable messages.
object
Examplegenerated
{ "detail": "example", "non_field_errors": [ "example" ]}Headers
Section titled “Headers”Strong entity tag for optimistic concurrency control.
Language used for human-readable errors.