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"
}