Sub-users
Sub-users are the unit of access control on the proxy gateway. Every proxy request must reference one, and each sub-user has its own password, limits, and per-product scope.
Endpoints
GET
/subusers
List all sub-users
POST
/subusers
Create a sub-user
GET
/subusers/{id}
Get one sub-user
PATCH
/subusers/{id}
Update name, limits, or status
POST
/subusers/{id}/rotate-password
Rotate the password
DELETE
/subusers/{id}
Delete (irreversible)
List
curl -H "Authorization: Bearer API_KEY" \
https://api.helodata.com/v1/subusers?product=residentialResponse:
{
"data": [
{
"id": "sub_01HX2K3PQ4M5",
"name": "s1a2b3c4d5e",
"label": "acme-prod",
"products": ["residential", "mobile"],
"status": "active",
"concurrent_max": 600,
"rps_max": 1000,
"created_at": "2026-05-01T00:00:00Z"
}
],
"next_cursor": null
}Filter with product=residential|mobile|isp, status=active|disabled, label_contains=....
Create
Response:
The
passwordis shown only in this response. Store it immediately; we keep only a hash.
Field constraints
label
1–64 chars, [a-z0-9-]
products
Subset of ["residential", "mobile", "isp"]
concurrent_max
1–10000, must not exceed plan limit
rps_max
1–10000
Get one
Update
Editable: label, status (active / disabled), concurrent_max, rps_max. To change products, delete and recreate.
Setting status to disabled makes the sub-user immediately return 403 on every proxy request — the credentials still exist, just deactivated.
Rotate password
Response includes the new password (shown once). The old password works for 60 seconds, then 407.
Delete
Deletes the sub-user. Existing proxy requests in flight may take up to 60 seconds to drain.
Errors
409
label_taken
Another sub-user already has this label
422
over_plan_limit
Requested concurrent_max exceeds your plan
404
subuser_not_found
Wrong ID
Last updated
Was this helpful?