Core CRUD
Basic team creation, retrieval, update, and deletion operations.
GET /api/teams
Search and filter teams.
Query Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
q | string | - | Search query |
sort | string | - | Sort field |
limit | integer | 30 | Results per page |
start | integer | 0 | Pagination offset |
Response:
The response is a paginated HAL collection. Team items are returned under _embedded["inf:team"].
{
"_links": {
"self": { "href": "/api/teams{?sort,limit,start,q}", "templated": true }
},
"_embedded": {
"inf:team": [
{
"_links": {
"self": { "href": "/api/teams/analytics" }
},
"id": "analytics",
"name": "Analytics Team",
"description": "Data analytics group",
"icon": null,
"materialIcon": "analytics",
"color": "#4CAF50"
}
]
},
"start": 0,
"count": 1,
"total": 12
}
GET /api/teams-list
Get complete team list with metadata.
POST /api/teams
Create a new team.
Permissions: teams:create
Request Body:
{
"name": "Marketing Team",
"description": "Marketing department",
"color": "#2196F3",
"materialIcon": "campaign"
}
Response:
201 Created with team object and Location header.
GET /api/teams/{id}
Get a specific team.
Response:
{
"id": "team:analytics",
"name": "Analytics Team",
"description": "Data analytics group",
"color": "#4CAF50",
"settings": {},
"createdAt": "2024-01-15T10:00:00Z",
"_links": {
"self": { "href": "/api/teams/team:analytics" },
"inf:members": { "href": "/api/teams/team:analytics/members" },
"inf:feed": { "href": "/api/teams/team:analytics/feed" }
}
}
PUT /api/teams/{id}
Update a team.
Permissions: Team admin
Request Body:
{
"name": "Updated Team Name",
"description": "New description",
"color": "#FF5722"
}
DELETE /api/teams/{id}
Delete a team.
Permissions: Team admin or superuser
Response:
204 No Content on success.