Users & teams
The agents in your workspace and the teams they belong to.
List users
Section titled “List users”GET
/v1/usersAvailablecurl "https://api.waasl.io/v1/users" \ -H "Authorization: Bearer $WAASL_API_KEY"const res = await fetch("https://api.waasl.io/v1/users", { headers: { Authorization: `Bearer ${process.env.WAASL_API_KEY}` },});if (!res.ok) throw new Error((await res.json()).code);const data = await res.json();import osimport requests
r = requests.get( "https://api.waasl.io/v1/users", headers={"Authorization": f"Bearer {os.environ['WAASL_API_KEY']}"},)r.raise_for_status()print(r.json())Response 200 — Users
{ "data": [ { "id": "usr_4hT9qP", "name": "Omar", "email": "string", "role": "owner", "teams": [ "string" ], "status": "active", "available": true, "last_active_at": "2026-10-01T08:15:00Z" } ]}Set a user’s availability
Section titled “Set a user’s availability”PUT
/v1/users/{user_id}/availabilityComing soonUnavailable users are skipped by round-robin assignment. Useful for syncing with your shift system.
Path parameters
| Field | Type | Description |
|---|---|---|
user_id required |
string |
Request body
| Field | Type | Description |
|---|---|---|
available |
boolean |
curl -X PUT "https://api.waasl.io/v1/users/user_id/availability" \ -H "Authorization: Bearer $WAASL_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "available": true}'const res = await fetch("https://api.waasl.io/v1/users/user_id/availability", { method: "PUT", headers: { Authorization: `Bearer ${process.env.WAASL_API_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ "available": true }),});if (!res.ok) throw new Error((await res.json()).code);const data = await res.json();import osimport requests
r = requests.put( "https://api.waasl.io/v1/users/user_id/availability", headers={"Authorization": f"Bearer {os.environ['WAASL_API_KEY']}"}, json={ "available": True },)r.raise_for_status()print(r.json())Response 200 — Updated user
{ "id": "usr_4hT9qP", "name": "Omar", "email": "string", "role": "owner", "teams": [ "string" ], "status": "active", "available": true, "last_active_at": "2026-10-01T08:15:00Z"}List teams
Section titled “List teams”GET
/v1/teamsComing sooncurl "https://api.waasl.io/v1/teams" \ -H "Authorization: Bearer $WAASL_API_KEY"const res = await fetch("https://api.waasl.io/v1/teams", { headers: { Authorization: `Bearer ${process.env.WAASL_API_KEY}` },});if (!res.ok) throw new Error((await res.json()).code);const data = await res.json();import osimport requests
r = requests.get( "https://api.waasl.io/v1/teams", headers={"Authorization": f"Bearer {os.environ['WAASL_API_KEY']}"},)r.raise_for_status()print(r.json())Response 200 — Teams
{ "data": [ { "id": "team_sales", "name": "Sales", "member_ids": [ "string" ] } ]}