REST API
Teams
Read teams in a workspace and their members.
GET
/v2/workspaces/{slug}/teamsTeam list search
Search and list workspace teams with pagination.
Parameters
slugRequiredstringpathWorkspace slugoffsetintegerqueryDefault0Zero-based offset of the first returned item.limitintegerqueryDefault20Maximum number of items returned.querystring | nullquerySearch term applied to team names.member_idinteger | nullqueryReturn only teams to which the specified member belongs.
Request example
curl --request GET \
--url "https://api.callabo.ai/v2/workspaces/your-workspace/teams" \
--header "Accept: application/json" \
--header "Authorization: Bearer $CALLABO_PAT"Success responses
Response body
itemsRequiredV2Team[]Teams.idRequiredintegerTeam identifier.nameRequiredstringTeam name.emailstring | nullTeam email address.default_transcribe_languageRequiredTranscribeLanguageForTeamDefault transcription language for the team.request_insight_extract_typeRequiredTeamInsightExtractTypeDefault insight generation type for the team.default_custom_insight_template_idinteger | nullDefault custom insight template identifier for the team.keywordsRequiredstring[]Default team keywords.member_countRequiredintegerNumber of members in the team.record_countRequiredintegerNumber of records associated with the team.created_atRequiredstring (date-time)Date and time when the team was created.pageRequiredV2PaginationTeam pagination information.offsetRequiredintegerZero-based offset of the first returned item.limitRequiredintegerRequested maximum number of items.totalRequiredintegerTotal number of matching items.
Response example
{
"items": [
{
"id": 1,
"name": "Example",
"default_transcribe_language": "inherit",
"request_insight_extract_type": "inherit",
"keywords": [
"string"
],
"member_count": 1,
"record_count": 1,
"created_at": "2026-08-27T03:00:00Z"
}
],
"page": {
"offset": 1,
"limit": 1,
"total": 1
}
}Errors
| Status | Error code | Description |
|---|---|---|
| 401 | UNAUTHORIZED | Unauthenticated request |
| 402 | FEATURE_NOT_AVAILABLE | Subscription feature unavailable |
| 403 | FORBIDDEN | Insufficient requester permissions |
| 404 | WORKSPACE_NOT_FOUND | Not found |
| 422 | VALIDATION_ERROR | Unprocessable content |
| 429 | RATE_LIMIT_EXCEEDED | Request limit exceededLearn more |
GET
/v2/workspaces/{slug}/teams/{team_id}Team Detailed inquiry
Retrieve team details and member and record counts.
Parameters
team_idRequiredintegerpathTeam identifier.slugRequiredstringpathWorkspace slug
Request example
curl --request GET \
--url "https://api.callabo.ai/v2/workspaces/your-workspace/teams/1" \
--header "Accept: application/json" \
--header "Authorization: Bearer $CALLABO_PAT"Success responses
Response body
idRequiredintegerTeam identifier.nameRequiredstringTeam name.emailstring | nullTeam email address.default_transcribe_languageRequiredTranscribeLanguageForTeamDefault transcription language for the team.request_insight_extract_typeRequiredTeamInsightExtractTypeDefault insight generation type for the team.default_custom_insight_template_idinteger | nullDefault custom insight template identifier for the team.keywordsRequiredstring[]Default team keywords.member_countRequiredintegerNumber of members in the team.record_countRequiredintegerNumber of records associated with the team.created_atRequiredstring (date-time)Date and time when the team was created.
Response example
{
"id": 1,
"name": "Example",
"default_transcribe_language": "inherit",
"request_insight_extract_type": "inherit",
"keywords": [
"string"
],
"member_count": 1,
"record_count": 1,
"created_at": "2026-08-27T03:00:00Z"
}Errors
| Status | Error code | Description |
|---|---|---|
| 401 | UNAUTHORIZED | Unauthenticated request |
| 403 | FORBIDDEN | Insufficient requester permissions |
| 404 | TEAM_NOT_FOUND, WORKSPACE_NOT_FOUND | Not found |
| 422 | VALIDATION_ERROR | Unprocessable content |
| 429 | RATE_LIMIT_EXCEEDED | Request limit exceededLearn more |
GET
/v2/workspaces/{slug}/teams/{team_id}/membersTeam member list search
List members belonging to the team and their role information with pagination.
Parameters
team_idRequiredintegerpathTeam identifier.slugRequiredstringpathWorkspace slugoffsetintegerqueryDefault0Zero-based offset of the first returned item.limitintegerqueryDefault20Maximum number of items returned.
Request example
curl --request GET \
--url "https://api.callabo.ai/v2/workspaces/your-workspace/teams/1/members" \
--header "Accept: application/json" \
--header "Authorization: Bearer $CALLABO_PAT"Success responses
Response body
itemsRequiredV2TeamMember[]Team members.idRequiredintegerTeam membership identifier.team_idRequiredintegerTeam identifier.member_idRequiredintegerWorkspace member identifier.memberRequiredV2TeamMemberSummaryInformation about a member of the team.base_workspace_roleRequiredBaseWorkspaceRoleMember's default workspace role.workspace_role_idsRequiredinteger[]Identifiers of custom workspace roles assigned to the member.base_roleRequiredBaseTeamRoleMember's default team role.rolesRequiredV2TeamRole[]Custom team roles assigned to the member.team_permissionsRequiredobjectPermissions calculated from the combination of team roles.pageRequiredV2PaginationTeam member pagination information.offsetRequiredintegerZero-based offset of the first returned item.limitRequiredintegerRequested maximum number of items.totalRequiredintegerTotal number of matching items.
Response example
{
"items": [
{
"id": 1,
"team_id": 1,
"member_id": 1,
"member": {
"id": 1,
"user_id": 1,
"email": "developer@example.com",
"name": "Example"
},
"base_workspace_role": "workspace_manager",
"workspace_role_ids": [
1
],
"base_role": "manager",
"roles": [
{
"id": 1,
"name": "Example",
"is_system_role": true,
"permissions": [
{
"resource": "member_management",
"effect": "allow"
}
]
}
],
"team_permissions": {}
}
],
"page": {
"offset": 1,
"limit": 1,
"total": 1
}
}Errors
| Status | Error code | Description |
|---|---|---|
| 401 | UNAUTHORIZED | Unauthenticated request |
| 403 | FORBIDDEN | Insufficient requester permissions |
| 404 | TEAM_NOT_FOUND, WORKSPACE_NOT_FOUND | Not found |
| 422 | VALIDATION_ERROR | Unprocessable content |
| 429 | RATE_LIMIT_EXCEEDED | Request limit exceededLearn more |