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

RoleDescription
ADMINFull access to all resources and settings
USERStandard access to resources
OPERATOROperations access (device management, commands)
VIEWERRead-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:

ParameterTypeDefaultDescription
pageinteger1Page number (1–1000)
perPageinteger20Items 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
FieldTypeRequiredDescription
roleenumYesOne 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

StatusDescription
PENDINGInvitation sent, awaiting acceptance
ACCEPTEDUser accepted the invitation
REVOKEDInvitation was cancelled

List invitations

GET /v1/invitations

Query parameters:

ParameterTypeDefaultDescription
pageinteger1Page number (1–1000)
perPageinteger20Items per page (1–100)

Response: 200 OK — Paginated list of invitation objects.


Create invitation

POST /v1/invitations
FieldTypeRequiredDescription
emailstringYesEmail address to invite
roleenumYesRole 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"
}