Skip to content

Create a sub-user

POST
/users
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": {} }'

Creates a user owned by the authenticated reseller and returns the new account. The caller must be allowed to manage sub-users.

Fields accepted when a reseller or administrator creates a customer account.

object
email

User’s email address. Must be unique if provided.

string format: email
username
required

Unique username for the account. Must be 4-128 characters.

string
>= 4 characters <= 128 characters
password
required

Account password. Must be 8-128 characters long.

string
>= 8 characters <= 128 characters
first_name

User’s first name.

string
<= 128 characters
last_name

User’s last name.

string
<= 128 characters
country

User’s country of residence.

string
<= 128 characters
state

User’s state or province.

string
<= 128 characters
city

User’s city.

string
<= 128 characters
address

User’s street address.

string
<= 128 characters
zip

User’s postal/ZIP code.

string
<= 128 characters
blocked_domains

List of domains to block for this user.

Array<string>
allowed_ips

List of IP addresses allowed for this user. Maximum 10 IPs.

Array<string>
connection_limit

Maximum number of concurrent connections allowed for the user.

integer
>= -1 <= 1000000
is_reseller

Whether the user should have reseller privileges. Only superusers can create resellers.

boolean
is_top_level

Whether the user is a sub-user under the parent account.

boolean
data

Initial data allocation for the user (traditional auth mode only).

integer
package_id

Package ID to assign to the user (package-based auth mode only).

string format: uuid
meta

Additional metadata for the user. Maximum 50 fields.

object
key
additional properties
Examples
Exampleexample

Example request

{
"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": {}
}

The resource or action result was created successfully.

Media typeapplication/json

Customer account with contact details, security settings, package data, referral information, and managed sub-users visible to the caller.

object
id
required
string format: uuid
username
required

Value must contain only letters, numbers, and underscores. It must not start or end with an underscore.

string
<= 150 characters
email
required
string format: email
<= 254 characters
is_reseller
Reseller

Reseller can create sub-users and manage their data.

boolean
is_marketer
Marketer

Marketer can manage marketing campaigns and view analytics.

boolean
is_superuser
Superuser status

Designates that this user has all permissions without explicitly assigning them.

boolean
date_joined
required
string format: date-time
date_joined_ts
required

Timestamp of when the user joined

integer
first_name
string
<= 150 characters
last_name
string
<= 150 characters
balance
integer
<= 2147483647
language
  • en - EN * de - DE * fr - FR * it - IT * ru - RU
string
Allowed values: en de fr it ru
country
string
<= 255 characters
state
string
<= 255 characters
city
string
<= 255 characters
address
string
<= 255 characters
zip
string
<= 255 characters
company_name
string
<= 255 characters
company_address
string
<= 255 characters
company_city
string
<= 255 characters
company_postal_code
string
<= 255 characters
company_country
string
<= 255 characters
company_vat_number
string
<= 255 characters
allowed_ips
required

List of IP addresses allowed for this user

Array<string>
blocked_domains
required

List of domains blocked for this user

Array<string>
connection_limit

The maximum number of concurrent connections allowed for this package.

integer
>= -1 <= 2147483647
parent_id
required

ID of the parent user (for sub-accounts)

string
sub_users
required

Number of sub-users managed by this reseller

integer
referrals
required

Number of users referred by this user

integer
referral_id
string
<= 255 characters
referral_code
required
string
referral_data_earned
required
integer
referral_data_pending
required
integer
referral_balance_pending
required
integer
referral_balance_earned
required
integer
currency
required

Currency information for the user’s transactions

object
key
additional properties
string
coupons
required

Available coupons for this user

Array<object>
object
key
additional properties
data
required

Available data allowance for the user

integer
nullable
data_spent
required

Amount of data consumed by the user

integer
nullable
data_updated
required

Last update timestamp for user’s data

string format: date-time
nullable
proxy_password
required

Proxy authentication password

string
nullable
proxy_password_reset
required

Last proxy password reset timestamp

string format: date-time
nullable
Examples
ExampleCreatedUser

Created user

{
"id": "550e8400-e29b-41d4-a716-446655440001",
"email": "[email protected]",
"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.

Media typeapplication/json

Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of human-readable messages.

object
detail
string
non_field_errors
Array<string>
translation

Stable translation key suitable for client localisation.

string
key
additional properties
One of:
string
Examples
ExampleValidationError

Validation error

{
"non_field_errors": [
"The request could not be processed."
],
"translation": "errors.request.invalid"
}

Authentication credentials are missing, expired, or invalid.

Media typeapplication/json

Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of human-readable messages.

object
detail
string
non_field_errors
Array<string>
translation

Stable translation key suitable for client localisation.

string
key
additional properties
One of:
string
Examples
ExampleAuthenticationRequired

Authentication required

{
"detail": "Authentication credentials were not provided."
}

The authenticated account cannot perform this operation.

Media typeapplication/json

Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of human-readable messages.

object
detail
string
non_field_errors
Array<string>
translation

Stable translation key suitable for client localisation.

string
key
additional properties
One of:
string
Examples
ExamplePermissionDenied

Permission denied

{
"detail": "You do not have permission to perform this action."
}