Add data to a sub-user order
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");curl_easy_setopt(hnd, CURLOPT_URL, "https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/data/add");
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, "{ \"package_id\": \"550e8400-e29b-41d4-a716-446655440002\", \"data\": 1073741824 }");
CURLcode ret = curl_easy_perform(hnd);using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Post, RequestUri = new Uri("https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/data/add"), Headers = { { "Accept-Language", "de" }, { "Authorization", "Bearer <token>" }, }, Content = new StringContent("{ \"package_id\": \"550e8400-e29b-41d4-a716-446655440002\", \"data\": 1073741824 }") { 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/data/add"
payload := strings.NewReader("{ \"package_id\": \"550e8400-e29b-41d4-a716-446655440002\", \"data\": 1073741824 }")
req, _ := http.NewRequest("POST", 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/data/add")) .header("Accept-Language", "de") .header("Authorization", "Bearer <token>") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{ \"package_id\": \"550e8400-e29b-41d4-a716-446655440002\", \"data\": 1073741824 }")) .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, "{ \"package_id\": \"550e8400-e29b-41d4-a716-446655440002\", \"data\": 1073741824 }");Request request = new Request.Builder() .url("https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/data/add") .post(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: 'POST', url: 'https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/data/add', headers: { 'Accept-Language': 'de', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, data: {package_id: '550e8400-e29b-41d4-a716-446655440002', data: 1073741824}};
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/data/add';const options = { method: 'POST', headers: { 'Accept-Language': 'de', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"package_id":"550e8400-e29b-41d4-a716-446655440002","data":1073741824}'};
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, "{ \"package_id\": \"550e8400-e29b-41d4-a716-446655440002\", \"data\": 1073741824 }")val request = Request.Builder() .url("https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/data/add") .post(body) .addHeader("Accept-Language", "de") .addHeader("Authorization", "Bearer <token>") .addHeader("Content-Type", "application/json") .build()
val response = client.newCall(request).execute()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/data/add";
let payload = json!({ "package_id": "550e8400-e29b-41d4-a716-446655440002", "data": 1073741824 });
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.post(url) .headers(headers) .json(&payload) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}curl --request POST \ --url https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/data/add \ --header 'Accept-Language: de' \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "package_id": "550e8400-e29b-41d4-a716-446655440002", "data": 1073741824 }'wget --quiet \ --method POST \ --header 'Accept-Language: de' \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --body-data '{ "package_id": "550e8400-e29b-41d4-a716-446655440002", "data": 1073741824 }' \ --output-document \ - https://api.proxyrequest.com/api/v1/users/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/data/addAdds data integer bytes to a managed sub-user’s virtual quota for package_id and returns the updated order. Both fields are required. The caller must own a root order for this package and the target sub-user. Creates the child order if absent; an existing independently purchased order cannot be converted by this operation. The allocation does not reserve or debit the parent’s ledger, and may exceed its remaining data. Actual traffic needs both personal quota and a usable parent pool. Use Idempotency-Key to avoid granting the same quota twice.
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”Stable key for one logical mutation. Successful responses are replayable for 24 hours; reusing a key with a different request returns 409.
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 Bodyrequired
Section titled “Request Bodyrequired”object
Package for which the caller owns a root order.
Positive integer bytes to add to the child’s assigned quota. Does not reserve parent data; may exceed the parent’s remaining pool.
Examples
Add data request
{ "package_id": "550e8400-e29b-41d4-a716-446655440002", "data": 1073741824}object
Package for which the caller owns a root order.
Positive integer bytes to add to the child’s assigned quota. Does not reserve parent data; may exceed the parent’s remaining pool.
Examples
Add data request
package_id=550e8400-e29b-41d4-a716-446655440002&data=1073741824object
Package for which the caller owns a root order.
Positive integer bytes to add to the child’s assigned quota. Does not reserve parent data; may exceed the parent’s remaining pool.
Examples
Add data request
{ "package_id": "550e8400-e29b-41d4-a716-446655440002", "data": 1073741824}Responses
Section titled “Responses”The request was accepted and the updated resource is returned.
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
Example response
{ "id": "550e8400-e29b-41d4-a716-446655440001", "is_auto_renewal": true, "auto_renewal_percentage": 1, "auto_renewal_data": 1, "package": {}, "proxy_password": "p9W4rT2xK7mQ", "proxy_password_reset": "2026-07-01T12:30:00Z", "pools": [ "residential" ], "data": 1073741824, "data_remaining": 1, "data_spent": 1073741824, "ledgers": [ {} ], "latest_data_top_up": 1, "latest_data_top_up_date": "2026-07-01T12:30:00Z", "data_updated": "2026-07-01T12:30:00Z", "updated": "2026-07-01T12:30:00Z", "created": "2026-07-01T12:30:00Z"}Headers
Section titled “Headers”True when the response was replayed from a prior request.
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 idempotency key is in progress or was reused for a different request.
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”Language used for human-readable errors.