Team Management
Manage who has access to your organization and what they can do. The Management API provides full control over team members and invitations.
Members
Member roles
| Role | Description |
|---|---|
ADMIN | Full access to all resources and settings |
USER | Standard access to resources |
OPERATOR | Operations access (device management, commands) |
VIEWER | Read-only access |
Member object
{
"id": "mem_abc123def456",
"role": "ADMIN",
"organizationId": "org_789xyz",
"owner": false,
"userId": "usr_111222333",
"userProfile": {
"id": "usr_111222333",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane@example.com"
},
"createdAt": "2025-01-15T00:00:00.000Z",
"updatedAt": "2025-01-15T00:00:00.000Z"
}List members
GET /v1/members
Query parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number (1–1000) |
perPage | integer | 20 | Items per page (1–100) |
Response: 200 OK — Paginated list of member objects.
Get member
GET /v1/members/:id
Response: 200 OK — Returns the member object.
Update member role
PATCH /v1/members/:id
| Field | Type | Required | Description |
|---|---|---|---|
role | enum | Yes | One of: USER, ADMIN, VIEWER, OPERATOR |
{
"role": "ADMIN"
}Response: 200 OK — Returns the updated member object.
Remove member
DELETE /v1/members/:id
Response: 204 No Content
Warning
Removing a member immediately revokes their access to the organization. This action is recorded in the Audit Log.
Invitations
Invite users to join your organization by email.
Invitation object
{
"id": "inv_abc123def456",
"email": "user@example.com",
"status": "PENDING",
"role": "USER",
"organizationId": "org_789xyz",
"organizationName": "Acme Energy",
"sentAt": "2025-01-15T00:00:00.000Z",
"createdAt": "2025-01-15T00:00:00.000Z",
"updatedAt": "2025-01-15T00:00:00.000Z"
}Invitation statuses
| Status | Description |
|---|---|
PENDING | Invitation sent, awaiting acceptance |
ACCEPTED | User accepted the invitation |
REVOKED | Invitation was cancelled |
List invitations
GET /v1/invitations
Query parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number (1–1000) |
perPage | integer | 20 | Items per page (1–100) |
Response: 200 OK — Paginated list of invitation objects.
Create invitation
POST /v1/invitations
| Field | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Email address to invite |
role | enum | Yes | Role to assign: USER, ADMIN, VIEWER, or OPERATOR |
{
"email": "engineer@example.com",
"role": "USER"
}Response: 201 Created — Returns the created invitation object.
Cancel invitation
DELETE /v1/invitations/:id
Response: 204 No Content
Resend invitation
Re-send the invitation email. Useful if the original email was missed or expired.
POST /v1/invitations/:id/resend
Response: 200 OK
{
"message": "Invitation resent"
}