API ReferenceSub-users
Create a sub-user
Give a team, project or customer their own proxy credentials and limits.
POST
https://api.riftip.com/v1/sub-usersCreates a sub-user with its own proxy username and password. The password is returned once, in this response.
#Body parameters
| Parameter | Type | Description |
|---|---|---|
username | string, required | 3–32 lowercase letters, digits or hyphens. Prefixed with your account name. |
traffic_limit_gb | number | Cap on traffic across GB-billed networks. Omit for no cap. |
networks | string[] | Networks this sub-user may use. Defaults to all on your plans. |
note | string | Up to 200 characters, for your own reference. |
#Request
curl -X POST https://api.riftip.com/v1/sub-users \
-H "Authorization: Bearer $RIFTIP_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 6c1e2f4a-team-scraper" \
-d '{ "username": "scraper", "traffic_limit_gb": 100, "networks": ["residential", "datacenter"] }'const res = await fetch("https://api.riftip.com/v1/sub-users", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.RIFTIP_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ username: "scraper", traffic_limit_gb: 100, networks: ["residential", "datacenter"] }),
});
const subUser = await res.json();sub_user = requests.post(
"https://api.riftip.com/v1/sub-users",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"username": "scraper", "traffic_limit_gb": 100, "networks": ["residential", "datacenter"]},
).json()#Response
201 Created
JSON
{
"id": "su_5m1t0p",
"username": "acme-scraper",
"password": "Vt8r-2pQx-91Lm",
"status": "active",
"networks": ["residential", "datacenter"],
"traffic_limit_bytes": 107374182400,
"traffic_used_bytes": 0,
"created_at": "2026-10-20T09:30:00Z"
}Heads up
Store the password now — it's never shown again. To issue a new one, rotate it with Update a sub-user.