https://api.cal.id and include an Authorization: Bearer calid_xxxxx header. Requests with a JSON body must also send Content-Type: application/json, or they are rejected with 415 Unsupported Media Type.
Successful responses wrap the result in a JSON envelope. The /teams/* endpoints return success, data, message, and — on list endpoints — a top-level meta.pagination. Read the result out of data; never off the top level.
The envelope is not identical across the whole API — some endpoints omit
meta, some omit message, and unknown routes do not use the envelope at all. See Response format.teamId, and each membership within it is identified by a membershipId.
Team members can hold one of three roles:
- MEMBER — the default role for a newly added member.
- ADMIN — can manage the team and its members.
- OWNER — full control over the team.
1
Add a member
Add a user to the team by their A successful create returns
userId. The role field is optional and defaults to MEMBER.201 and the new membership inside data, including the membershipId you need for the next two steps.Response
The exact fields inside
data are listed on Add a team member. Read the identifier out of data, not out of the request body you sent.2
List members
Retrieve the team’s memberships. This endpoint pages with
page and limit and returns a top-level meta.pagination.Response
3
Change a role
Update a member’s role by their The updated membership comes back inside
membershipId. For example, promote a member to ADMIN.data.Response
4
Remove a member
Remove a member from the team by their
membershipId.