Documentation

Users & Teams

Manage users within your organization and organize them into teams with resource assignments. Endpoints for user invites, team creation, membership, and resource assignment.

Manage users within your organization and organize them into teams with resource assignments.

Users

List Users

GET/users

List all users in your organization. Supports ?search= (case-insensitive substring over name/email, paginated), ?page= / ?limit= (default 20, max 100), and ?email= for a server-side exact-email lookup that returns the single matching member (use ?email= rather than ?search= when you need one specific member — substring search can push the exact address past the requested page).

Invite User

POST/users

Invite a new user to your organization by email.

Update User

PATCH/users/{email}

Update a user's role or details.

Remove User

DELETE/users/{email}

Remove a user from your organization.

Teams

List Teams

GET/teams

List all teams in your organization.

Create Team

POST/teams

Create a new team.

Request · bash
curl -X POST https://zopnight.com/api/teams \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
  "name": "Platform Engineering",
  "description": "Manages shared infrastructure and developer tooling"
}'
Response · json
{
"data": {
  "id": "team_abc123",
  "name": "Platform Engineering",
  "description": "Manages shared infrastructure and developer tooling",
  "members": [],
  "resources": [],
  "createdBy": "admin@company.com",
  "createdAt": "2025-03-10T09:00:00Z",
  "updatedAt": "2025-03-10T09:00:00Z"
}
}

Get Team

GET/teams/{teamID}

Get a team with its members and assigned resources.

Update Team

PUT/teams/{teamID}

Update team name or description.

Delete Team

DELETE/teams/{teamID}

Delete a team. Members and resource assignments are removed.

Team Members

List Members

GET/teams/{teamID}/members

List all members of a team.

Add Member

In the team detail page, Add Member opens a picker of existing organization users rather than a free-text email field. Each user is listed with their name, email, and the teams they already belong to, so you can confirm who you're adding. Users who are already on the team are filtered out, so you can't add a duplicate, and you can add several members at once. Selecting a user and a team role calls the endpoint below — the email is taken from the chosen user, never typed by hand.

POST/teams/{teamID}/members

Add a user to a team by email.

Request · bash
curl -X POST https://zopnight.com/api/teams/team_abc123/members \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
  "email": "engineer@company.com"
}'
Response · json
{
"data": {
  "teamID": "team_abc123",
  "email": "engineer@company.com",
  "addedBy": "admin@company.com",
  "addedAt": "2025-03-10T09:15:00Z"
}
}

Remove Member

DELETE/teams/{teamID}/members/{email}

Remove a member from a team.

Team Resources

List Assigned Resources

GET/teams/{teamID}/resources

List all resources assigned to a team.

Assign Resource

POST/teams/{teamID}/resources

Assign a cloud resource to a team.

Request · bash
curl -X POST https://zopnight.com/api/teams/team_abc123/resources \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
  "resourceUID": "aws:us-east-1:i-0abc123def456"
}'
Response · json
{
"data": {
  "teamID": "team_abc123",
  "resourceUID": "aws:us-east-1:i-0abc123def456",
  "assignedBy": "admin@company.com",
  "assignedAt": "2025-03-10T09:30:00Z"
}
}

Unassign Resource

DELETE/teams/{teamID}/resources/{resourceUID}

Remove a resource assignment from a team.

Team Object

FieldTypeDescription
idstringUnique team ID
namestringTeam display name
descriptionstringOptional description
membersTeamMember[]List of team members
resourcesAssignedResource[]List of assigned resources
createdBystringEmail of the creator
createdAtstringISO 8601 creation timestamp
updatedAtstringISO 8601 last update timestamp