Overview
Teams (also called groups) represent ministry groups within a church. Each team belongs to a church and optionally to an area. Teams have members with specific roles (leader, member, etc.).Authentication
All endpoints require authentication. Permissions vary by operation:- Read:
team.read - Create:
team.create - Update:
team.update
List Teams
GET /api/teams
Retrieve all teams for a church
team.read
Query Parameters
Filter teams by church ID
Alternative parameter for church_id
Filter teams by area ID
Alternative parameter for area_id
Request
Response
Indicates if the request was successful
Array of team objects (note: the response uses “groups” as the key)
List Team Members
GET /api/teams/{id}/members
Retrieve all members of a specific team
team.read
Request Parameters
The ID of the team
Request
Response
Indicates if the request was successful
Array of team member objects
Create Team
POST /api/teams
Create a new team within a church
team.create
Request Body
The name of the team
The ID of the church this team belongs to
Alternative parameter for church_id
The ID of the area this team belongs to (optional)
Alternative parameter for area_id
Description of the team’s purpose
Member ID to assign as team leader
Request
Response
Error Responses
Missing Required Fields (400)Update Team
PUT /api/teams/{id}
Update team details and/or leader
team.update
Request Parameters
The ID of the team to update
Updated team name
Updated description
Updated area ID
New leader member ID
Request
Response
Assign Member to Team
POST /api/teams/{id}/members
Add a member to a team with a specific role
team.create
Request Parameters
The ID of the team
The ID of the member to assign
The role for this member (default: “member”)
Request
Response
Error Responses
Missing Member ID (400)Bulk Assign Members
POST /api/teams/{id}/members/bulk
Assign multiple members to a team at once
team.create
Request Parameters
The ID of the team
Array of member IDs to assign
Request
Response
Join Team (Self-Service)
POST /api/teams/{id}/join
Allow authenticated user to join a team
team.create
Request Parameters
The ID of the team to join
Request
Response
Delete Team
DELETE /api/teams/{id}
Delete a team
team.update
Request Parameters
The ID of the team to delete
Request
Response
Church Context Resolution
The API resolves the church context in the following order:- Query parameter:
church_idorchurchId - Request body: For POST/PUT requests
- User’s church: For non-super admins without explicit church_id
- Required: Returns 400 error if church context cannot be determined
Activity Logging
Team operations automatically log activities: Team Creation:Error Codes
| Code | Description |
|---|---|
| 400 | Bad Request - Missing church_id, invalid parameters |
| 401 | Unauthorized - Invalid or missing token |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Team doesn’t exist |
| 500 | Internal Server Error |
Related APIs
Areas
Manage areas that contain teams
People
Manage church members
Calendar
Schedule team meetings and events