API ReferenceSub-users
Update a sub-user
Change limits or networks, disable access, or rotate the password.
PATCH
https://api.riftip.com/v1/sub-users/{id}Only the fields you send are changed.
#Path parameters
| Parameter | Type | Description |
|---|---|---|
id | string, required | The sub-user's ID, e.g. su_8f2k1d. |
#Body parameters
| Parameter | Type | Description |
|---|---|---|
status | string | active or disabled. Disabled sub-users' traffic is rejected with 407. |
traffic_limit_gb | number | null | New cap, or null to remove it. |
networks | string[] | Replace the allowed networks. |
rotate_password | boolean | true issues a new password and returns it once. |
#Request
curl -X PATCH https://api.riftip.com/v1/sub-users/su_8f2k1d \
-H "Authorization: Bearer $RIFTIP_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "traffic_limit_gb": 250, "rotate_password": true }'const res = await fetch("https://api.riftip.com/v1/sub-users/su_8f2k1d", {
method: "PATCH",
headers: {
Authorization: `Bearer ${process.env.RIFTIP_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ traffic_limit_gb: 250, rotate_password: true }),
});requests.patch(
"https://api.riftip.com/v1/sub-users/su_8f2k1d",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"traffic_limit_gb": 250, "rotate_password": True},
)#Response
JSON
{
"id": "su_8f2k1d",
"username": "acme-scraper",
"password": "Qe4n-77Ws-c2Hd",
"status": "active",
"traffic_limit_bytes": 268435456000,
"traffic_used_bytes": 5368709120,
"updated_at": "2026-10-20T09:42:00Z"
}password is only present when rotate_password was true.