Team members
owner_user_id identifies the team owner. member_user_id identifies an accepted member and is null for pending invitations. The legacy user_id field remains the member ID, or zero while pending, during the compatibility window.
Endpoint
GET https://zapped.to/api/team-members/{team_id}
Authentication
An API key with the teams:read scope (Read teams and members), sent as Authorization: Bearer YOUR_API_KEY.
Example
curl --request GET \
--url 'https://zapped.to/api/team-members/{team_id}' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--url 'https://zapped.to/api/team-members/{team_id}' \
--header 'Authorization: Bearer YOUR_API_KEY' \
Response example
{
"data": [
{
"id": 1,
"team_id": 1,
"user_id": 42,
"owner_user_id": 7,
"member_user_id": 42,
"user_email": "[email protected]",
"access": {
"read.all": true
},
"role": "viewer",
"resource_scope": "all",
"status": 1,
"datetime": "2026-10-18 09:03:22",
"last_datetime": null
}
]
}
Endpoint
POST https://zapped.to/api/team-members
Authentication
An API key with the teams:write scope (Manage teams, invitations and memberships), sent as Authorization: Bearer YOUR_API_KEY.
Team member API writes support roles with All resources access only. Use the web app to assign selected projects or selected cards.
| Parameters | Details | Description |
|---|---|---|
| team_id | Required Integer | - |
| user_email | Required String | - |
| role | Optional String | viewer, editor, or admin. Defaults to viewer. |
| access | Optional String Array | Compatibility input only. Supply every permission as an explicit true or false value, or supply the complete enabled-key list for one role. Partial capability lists are rejected. |
Example
curl --request POST \
--url 'https://zapped.to/api/team-members' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: multipart/form-data' \
--form 'team_id=1' \
--form 'user_email=[email protected]' \
--form 'role=editor' \
--url 'https://zapped.to/api/team-members' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: multipart/form-data' \
--form 'team_id=1' \
--form 'user_email=[email protected]' \
--form 'role=editor' \
Response example
{
"data": {
"id": 1,
"team_id": 1,
"user_id": 0,
"owner_user_id": 7,
"member_user_id": null,
"user_email": "[email protected]",
"role": "editor",
"resource_scope": "all",
"status": 0
}
}
Endpoint
POST https://zapped.to/api/team-members/{team_member_id}
Authentication
An API key with the teams:write scope (Manage teams, invitations and memberships), sent as Authorization: Bearer YOUR_API_KEY.
Team member API writes support roles with All resources access only. Use the web app to assign selected projects or selected cards.
| Parameters | Details | Description |
|---|---|---|
| role | Optional String | viewer, editor, or admin. |
| access | Optional String Array | Compatibility input only. Supply the complete canonical true or false object or the complete enabled-key list for one role. If role is also supplied, both values must describe the same permissions. |
Example
curl --request POST \
--url 'https://zapped.to/api/team-members/{team_member_id}' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: multipart/form-data' \
--form 'role=viewer' \
--url 'https://zapped.to/api/team-members/{team_member_id}' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: multipart/form-data' \
--form 'role=viewer' \
Response example
{
"data": {
"id": 1,
"team_id": 1,
"user_id": 42,
"owner_user_id": 7,
"member_user_id": 42,
"user_email": "[email protected]",
"role": "viewer",
"resource_scope": "all",
"status": 1
}
}
Endpoint
DELETE https://zapped.to/api/team-members/{team_member_id}
Authentication
An API key with the teams:write scope (Manage teams, invitations and memberships), sent as Authorization: Bearer YOUR_API_KEY.
Example
curl --request DELETE \
--url 'https://zapped.to/api/team-members/{team_member_id}' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--url 'https://zapped.to/api/team-members/{team_member_id}' \
--header 'Authorization: Bearer YOUR_API_KEY' \
A successful DELETE returns HTTP 200 with an empty response body.