Skip to main content

Core CRUD

Basic team creation, retrieval, update, and deletion operations.

GET /api/teams

Search and filter teams.

Query Parameters:

ParameterTypeDefaultDescription
qstring-Search query
sortstring-Sort field
limitinteger30Results per page
startinteger0Pagination 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.