Skip to content

Add data to a sub-user order

POST
/users/{id}/data/add
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 }'

Adds 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.

id
required
string format: uuid

A UUID string identifying this user.

Idempotency-Key
string
<= 255 characters

Stable key for one logical mutation. Successful responses are replayable for 24 hours; reusing a key with a different request returns 409.

Accept-Language
string
default: en

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
de
object
package_id
required

Package for which the caller owns a root order.

string format: uuid
data
required

Positive integer bytes to add to the child’s assigned quota. Does not reserve parent data; may exceed the parent’s remaining pool.

integer
>= 1
Examples
ExampleAddDataRequest

Add data request

{
"package_id": "550e8400-e29b-41d4-a716-446655440002",
"data": 1073741824
}

The request was accepted and the updated resource is returned.

Media typeapplication/json
object
id
string
<= 36 characters
is_auto_renewal
required
boolean
auto_renewal_percentage
Auto Renewal Threshold (%)

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

integer
<= 70
auto_renewal_data
Auto Renewal Data (GB)

Amount of data in GB to add when auto-renewal is triggered. Set to 0 to use the package default.

integer
<= 10000
package
required
object
key
additional properties
proxy_password

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.

string
<= 64 characters
proxy_password_reset
Password Last Changed

Timestamp of the last proxy password change. Read-only — updated automatically whenever the password is rotated.

string format: date-time
nullable
pools

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.

Array<string>
data
Data Allowance (bytes)

Total data allowance for this order in bytes. 1073741824 = 1 GiB 10737418240 = 10 GiB

integer format: int64
<= 1000000000000000
data_remaining
required

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.

integer
data_spent
Data Spent (bytes)

Total bytes consumed from this order’s data allowance so far. Updated in real time as the customer uses the proxy.

integer format: int64
>= -9223372036854776000 <= 9223372036854776000
ledgers
required

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.

Array<object>
object
key
additional properties
latest_data_top_up
Latest Top-up (bytes)

Amount of data added to this order in bytes during the most recent top-up.

integer format: int64
>= -9223372036854776000 <= 9223372036854776000
latest_data_top_up_date
Latest Top-up Date

Timestamp of the most recent data top-up, set when an invoice is fulfilled.

string format: date-time
nullable
data_updated
required
Last Used
string format: date-time
updated
required
string format: date-time
created
required
string format: date-time
Examples
Exampleexample

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"
}
Idempotency-Replayed
string
Allowed values: true

True when the response was replayed from a prior request.

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>
key
additional properties
One of:
string
Examples
ExampleValidationError

Validation error

{
"non_field_errors": [
"The request could not be processed."
]
}
Content-Language
string

Language used for human-readable errors.

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>
key
additional properties
One of:
string
Examples
ExampleAuthenticationRequired

Authentication required

{
"detail": "Authentication credentials were not provided."
}
Content-Language
string

Language used for human-readable errors.

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>
key
additional properties
One of:
string
Examples
ExamplePermissionDenied

Permission denied

{
"detail": "You do not have permission to perform this action."
}
Content-Language
string

Language used for human-readable errors.

The requested resource does not exist in the current account scope.

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>
key
additional properties
One of:
string
Examples
ExampleResourceNotFound

Resource not found

{
"detail": "Not found."
}
Content-Language
string

Language used for human-readable errors.

The idempotency key is in progress or was reused for a different request.

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>
key
additional properties
One of:
string
Examplegenerated
{
"detail": "example",
"non_field_errors": [
"example"
]
}
Content-Language
string

Language used for human-readable errors.