Create a sub-user
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");
struct curl_slist *headers = NULL;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]\", \"username\": \"developer\", \"password\": \"Correct-Horse-Battery-Staple-42\", \"first_name\": \"Dana\", \"last_name\": \"Morgan\", \"country\": \"us\", \"state\": \"state\", \"city\": \"los_angeles\", \"address\": \"address\", \"zip\": \"zip\", \"blocked_domains\": [ \"blocked.example\" ], \"allowed_ips\": [ \"198.51.100.25\" ], \"connection_limit\": 1, \"is_reseller\": false, \"is_top_level\": false, \"data\": 1073741824, \"package_id\": \"550e8400-e29b-41d4-a716-446655440002\", \"meta\": {} }");
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"), Headers = { { "Authorization", "Bearer <token>" }, }, Content = new StringContent("{ \"email\": \"[email protected]\", \"username\": \"developer\", \"password\": \"Correct-Horse-Battery-Staple-42\", \"first_name\": \"Dana\", \"last_name\": \"Morgan\", \"country\": \"us\", \"state\": \"state\", \"city\": \"los_angeles\", \"address\": \"address\", \"zip\": \"zip\", \"blocked_domains\": [ \"blocked.example\" ], \"allowed_ips\": [ \"198.51.100.25\" ], \"connection_limit\": 1, \"is_reseller\": false, \"is_top_level\": false, \"data\": 1073741824, \"package_id\": \"550e8400-e29b-41d4-a716-446655440002\", \"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"
payload := strings.NewReader("{ \"email\": \"[email protected]\", \"username\": \"developer\", \"password\": \"Correct-Horse-Battery-Staple-42\", \"first_name\": \"Dana\", \"last_name\": \"Morgan\", \"country\": \"us\", \"state\": \"state\", \"city\": \"los_angeles\", \"address\": \"address\", \"zip\": \"zip\", \"blocked_domains\": [ \"blocked.example\" ], \"allowed_ips\": [ \"198.51.100.25\" ], \"connection_limit\": 1, \"is_reseller\": false, \"is_top_level\": false, \"data\": 1073741824, \"package_id\": \"550e8400-e29b-41d4-a716-446655440002\", \"meta\": {} }")
req, _ := http.NewRequest("POST", url, payload)
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")) .header("Authorization", "Bearer <token>") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{ \"email\": \"[email protected]\", \"username\": \"developer\", \"password\": \"Correct-Horse-Battery-Staple-42\", \"first_name\": \"Dana\", \"last_name\": \"Morgan\", \"country\": \"us\", \"state\": \"state\", \"city\": \"los_angeles\", \"address\": \"address\", \"zip\": \"zip\", \"blocked_domains\": [ \"blocked.example\" ], \"allowed_ips\": [ \"198.51.100.25\" ], \"connection_limit\": 1, \"is_reseller\": false, \"is_top_level\": false, \"data\": 1073741824, \"package_id\": \"550e8400-e29b-41d4-a716-446655440002\", \"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]\", \"username\": \"developer\", \"password\": \"Correct-Horse-Battery-Staple-42\", \"first_name\": \"Dana\", \"last_name\": \"Morgan\", \"country\": \"us\", \"state\": \"state\", \"city\": \"los_angeles\", \"address\": \"address\", \"zip\": \"zip\", \"blocked_domains\": [ \"blocked.example\" ], \"allowed_ips\": [ \"198.51.100.25\" ], \"connection_limit\": 1, \"is_reseller\": false, \"is_top_level\": false, \"data\": 1073741824, \"package_id\": \"550e8400-e29b-41d4-a716-446655440002\", \"meta\": {} }");Request request = new Request.Builder() .url("https://api.proxyrequest.com/api/v1/users") .post(body) .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', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, data: { username: 'developer', password: 'Correct-Horse-Battery-Staple-42', first_name: 'Dana', last_name: 'Morgan', country: 'us', state: 'state', city: 'los_angeles', address: 'address', zip: 'zip', blocked_domains: ['blocked.example'], allowed_ips: ['198.51.100.25'], connection_limit: 1, is_reseller: false, is_top_level: false, data: 1073741824, package_id: '550e8400-e29b-41d4-a716-446655440002', 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';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"email":"[email protected]","username":"developer","password":"Correct-Horse-Battery-Staple-42","first_name":"Dana","last_name":"Morgan","country":"us","state":"state","city":"los_angeles","address":"address","zip":"zip","blocked_domains":["blocked.example"],"allowed_ips":["198.51.100.25"],"connection_limit":1,"is_reseller":false,"is_top_level":false,"data":1073741824,"package_id":"550e8400-e29b-41d4-a716-446655440002","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]\", \"username\": \"developer\", \"password\": \"Correct-Horse-Battery-Staple-42\", \"first_name\": \"Dana\", \"last_name\": \"Morgan\", \"country\": \"us\", \"state\": \"state\", \"city\": \"los_angeles\", \"address\": \"address\", \"zip\": \"zip\", \"blocked_domains\": [ \"blocked.example\" ], \"allowed_ips\": [ \"198.51.100.25\" ], \"connection_limit\": 1, \"is_reseller\": false, \"is_top_level\": false, \"data\": 1073741824, \"package_id\": \"550e8400-e29b-41d4-a716-446655440002\", \"meta\": {} }")val request = Request.Builder() .url("https://api.proxyrequest.com/api/v1/users") .post(body) .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";
let payload = json!({ "username": "developer", "password": "Correct-Horse-Battery-Staple-42", "first_name": "Dana", "last_name": "Morgan", "country": "us", "state": "state", "city": "los_angeles", "address": "address", "zip": "zip", "blocked_domains": ("blocked.example"), "allowed_ips": ("198.51.100.25"), "connection_limit": 1, "is_reseller": false, "is_top_level": false, "data": 1073741824, "package_id": "550e8400-e29b-41d4-a716-446655440002", "meta": json!({}) });
let mut headers = reqwest::header::HeaderMap::new(); 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 \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "email": "[email protected]", "username": "developer", "password": "Correct-Horse-Battery-Staple-42", "first_name": "Dana", "last_name": "Morgan", "country": "us", "state": "state", "city": "los_angeles", "address": "address", "zip": "zip", "blocked_domains": [ "blocked.example" ], "allowed_ips": [ "198.51.100.25" ], "connection_limit": 1, "is_reseller": false, "is_top_level": false, "data": 1073741824, "package_id": "550e8400-e29b-41d4-a716-446655440002", "meta": {} }'wget --quiet \ --method POST \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --body-data '{ "email": "[email protected]", "username": "developer", "password": "Correct-Horse-Battery-Staple-42", "first_name": "Dana", "last_name": "Morgan", "country": "us", "state": "state", "city": "los_angeles", "address": "address", "zip": "zip", "blocked_domains": [ "blocked.example" ], "allowed_ips": [ "198.51.100.25" ], "connection_limit": 1, "is_reseller": false, "is_top_level": false, "data": 1073741824, "package_id": "550e8400-e29b-41d4-a716-446655440002", "meta": {} }' \ --output-document \ - https://api.proxyrequest.com/api/v1/usersCreates a user owned by the authenticated reseller and returns the new account. The caller must be allowed to manage sub-users.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Fields accepted when a reseller or administrator creates a customer account.
object
User’s email address. Must be unique if provided.
Unique username for the account. Must be 4-128 characters.
Account password. Must be 8-128 characters long.
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.
List of domains to block for this user.
List of IP addresses allowed for this user. Maximum 10 IPs.
Maximum number of concurrent connections allowed for the user.
Whether the user should have reseller privileges. Only superusers can create resellers.
Whether the user is a sub-user under the parent account.
Initial data allocation for the user (traditional auth mode only).
Package ID to assign to the user (package-based auth mode only).
Additional metadata for the user. Maximum 50 fields.
object
Examples
Example request
{ "username": "developer", "password": "Correct-Horse-Battery-Staple-42", "first_name": "Dana", "last_name": "Morgan", "country": "us", "state": "state", "city": "los_angeles", "address": "address", "zip": "zip", "blocked_domains": [ "blocked.example" ], "allowed_ips": [ "198.51.100.25" ], "connection_limit": 1, "is_reseller": false, "is_top_level": false, "data": 1073741824, "package_id": "550e8400-e29b-41d4-a716-446655440002", "meta": {}}Fields accepted when a reseller or administrator creates a customer account.
object
User’s email address. Must be unique if provided.
Unique username for the account. Must be 4-128 characters.
Account password. Must be 8-128 characters long.
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.
List of domains to block for this user.
List of IP addresses allowed for this user. Maximum 10 IPs.
Maximum number of concurrent connections allowed for the user.
Whether the user should have reseller privileges. Only superusers can create resellers.
Whether the user is a sub-user under the parent account.
Initial data allocation for the user (traditional auth mode only).
Package ID to assign to the user (package-based auth mode only).
Additional metadata for the user. Maximum 50 fields.
object
Examples
Example request
email=developer%40example.com&username=developer&password=Correct-Horse-Battery-Staple-42&first_name=Dana&last_name=Morgan&country=us&state=state&city=los_angeles&address=address&zip=zip&blocked_domains=blocked.example&allowed_ips=198.51.100.25&connection_limit=1&is_reseller=false&is_top_level=false&data=1073741824&package_id=550e8400-e29b-41d4-a716-446655440002Fields accepted when a reseller or administrator creates a customer account.
object
User’s email address. Must be unique if provided.
Unique username for the account. Must be 4-128 characters.
Account password. Must be 8-128 characters long.
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.
List of domains to block for this user.
List of IP addresses allowed for this user. Maximum 10 IPs.
Maximum number of concurrent connections allowed for the user.
Whether the user should have reseller privileges. Only superusers can create resellers.
Whether the user is a sub-user under the parent account.
Initial data allocation for the user (traditional auth mode only).
Package ID to assign to the user (package-based auth mode only).
Additional metadata for the user. Maximum 50 fields.
object
Examples
Example request
{ "username": "developer", "password": "Correct-Horse-Battery-Staple-42", "first_name": "Dana", "last_name": "Morgan", "country": "us", "state": "state", "city": "los_angeles", "address": "address", "zip": "zip", "blocked_domains": [ "blocked.example" ], "allowed_ips": [ "198.51.100.25" ], "connection_limit": 1, "is_reseller": false, "is_top_level": false, "data": 1073741824, "package_id": "550e8400-e29b-41d4-a716-446655440002", "meta": {}}Responses
Section titled “Responses”The resource or action result was created successfully.
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
Available data allowance for the user
Amount of data consumed by the user
Last update timestamp for user’s data
Proxy authentication password
Last proxy password reset timestamp
Examples
Created user
{ "id": "550e8400-e29b-41d4-a716-446655440001", "username": "developer", "first_name": "Dana", "last_name": "Morgan", "is_active": true, "is_reseller": false, "otp_enabled": true}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
Stable translation key suitable for client localisation.
Examples
Validation error
{ "non_field_errors": [ "The request could not be processed." ], "translation": "errors.request.invalid"}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
Stable translation key suitable for client localisation.
Examples
Authentication required
{ "detail": "Authentication credentials were not provided."}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
Stable translation key suitable for client localisation.
Examples
Permission denied
{ "detail": "You do not have permission to perform this action."}