Skip to main content
A sub-user is a residential proxy account for one of your customers: a username, a password and a data limit taken from your pool. Your customer connects with these credentials as described in Proxy Access.
Data you assign to a sub-user comes out of your unassigned pool right away. The pool is tracked, not enforced, so you never get a “not enough data” error. remainingBytes just goes negative.
All examples read your key from the RESELLER_KEY environment variable. See Authentication.

Create a Sub-User

POST /reseller/users
Node.js

Request Parameters

Response

Response

Errors

The message is Username "x" is already taken. Pick another one. Choose a different username, or leave it out to get a generated one.
Nothing was created and no data was taken. You can safely retry.
A field breaks the rules above. message is a list of strings, one for each problem.

List Sub-Users

GET /reseller/users
Node.js

Query Parameters

Response

Response

Get One Sub-User

GET /reseller/users/:username Returns one sub-user with live usage. Use it to see how much data a customer has used.
Node.js

Response

Response
If usage can’t be looked up, you still get the credentials, with "usage": null and a usageError note.

Change Data

POST /reseller/users/:username/data Send a GB amount to add or remove. A positive number adds data from your pool. A negative number takes unused data back.
Node.js

Request Parameters

Response

Response

Errors

An account’s data can’t go below zero, and you can only take back data that hasn’t been used. Lower the amount.
Nothing was charged or changed. You can safely retry.

Change Password

POST /reseller/users/:username/password Sets a new password. Send the password you want, or an empty body to get a strong generated one. The username stays the same.
Node.js

Request Parameters

Response

Response
The new password works within about 60 seconds. Until then the old password keeps working, and open connections are never cut. You can give your customer the new password right away.

Errors

The password doesn’t follow the rules above.
Another change to this sub-user is still running. Try again in a moment.
Nothing changed. You can safely retry.

Delete a Sub-User

DELETE /reseller/users/:username Ends a customer’s access and returns their unused data to your pool.
Node.js

Response

Response
What happens, in order:
  1. The account’s unused data is removed, so the credentials stop working.
  2. The unused data goes back to your unassigned pool.
  3. The sub-user is removed from your account. Its usage stays in your usage history.
You can’t undo a deletion. To give the same customer access again, create a new sub-user, preferably with a new username, because the old account still exists in an emptied state.

Errors

The deletion stopped and nothing changed. The credentials still work and nothing was refunded. Try again later.

Errors on Every Endpoint

The message is Sub-user "x" not found. Check the username. You can only see your own sub-users.

Limits

  • Data per sub-user: 0.01 to 10000 GB when you create it, changed by up to 10,000 GB per call.
  • Page size: at most 100 sub-users per list request.
  • Password changes: take effect within about 60 seconds.
  • Used data: can’t be refunded, by a data change or by a deletion.

Proxy Access

How your customers connect with a sub-user’s credentials.

Usage History

Usage over time for your pool and for each sub-user.
Last modified on October 15, 2026