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 (name, description) |
show | string | all | all or mine (teams the caller belongs to) |
sort | string | - | Sort field |
limit | integer | 30 | Results per page |
start | integer | 0 | Pagination offset |
Response:
A paginated HAL collection. Team items are returned under _embedded["inf:team"], each embedding its members. aggs reports the all and mine counts.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/teams?limit=10&start=0&q=order%2A&show=all"
}
},
"start": 0,
"count": 1,
"total": 1,
"aggs": {
"all": 13,
"mine": 0
},
"_embedded": {
"inf:team": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/teams/order-desk"
},
"inf:members": {
"href": "https://informer.example.com/api/teams/order-desk/members{?sort,limit,start,q}",
"templated": true
},
"inf:member": {
"href": "https://informer.example.com/api/teams/order-desk/members/{username}",
"templated": true
}
},
"permissions": {
"addComment": true,
"addMember": true,
"delete": true,
"removeMember": true,
"editMemberRole": true,
"write": true,
"reassign": true,
"assignOwnership": true
},
"id": "order-desk",
"name": "Order Desk",
"description": "Order fulfillment, returns, and customer support",
"domain": "local",
"data": null,
"icon": null,
"materialIcon": null,
"color": "teal",
"defaultRole": null,
"source": null,
"sourceId": null,
"lastViewedFeed": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"_changes": null,
"tenant": "acme",
"_embedded": {
"inf:member": []
}
}
]
}
}
GET /api/teams-list
Get the complete team list with members, permissions, and a mine flag per team.
[
{
"id": "order-desk",
"name": "Order Desk",
"description": "Order fulfillment, returns, and customer support",
"materialIcon": null,
"icon": null,
"color": "teal",
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"members": [],
"permissions": {
"addComment": true,
"addMember": true,
"delete": true,
"removeMember": true,
"editMemberRole": true,
"write": true,
"reassign": true,
"assignOwnership": true
},
"mine": false
},
{
"id": "it",
"name": "IT",
"description": null,
"materialIcon": null,
"icon": "fa-wifi",
"color": "lightBlue",
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"members": [
{
"userId": "everett",
"accessLevel": 6
}
],
"permissions": {
"addComment": true,
"addMember": true,
"delete": true,
"removeMember": true,
"editMemberRole": true,
"write": true,
"reassign": true,
"assignOwnership": true
},
"mine": false
},
{
"id": "enrole-development",
"name": "Enrole Development",
"description": null,
"materialIcon": null,
"icon": "fa-coffee",
"color": "blueGrey",
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"members": [
{
"userId": "priya",
"accessLevel": 1
},
{
"userId": "matt",
"accessLevel": 1
},
{
"userId": "brian",
"accessLevel": 6
}
],
"permissions": {
"addComment": true,
"addMember": true,
"delete": true,
"removeMember": true,
"editMemberRole": true,
"write": true,
"reassign": true,
"assignOwnership": true
},
"mine": false
},
"… 10 more items (13 total) — omitted from docs"
]
GET /api/teams-content
Get per-team content counts (datasets, reports, datasources, queries owned by each team), keyed by team id.
[
{
"id": "enrole-development",
"datasetCount": 0,
"reportCount": 0,
"datasourceCount": 0,
"queryCount": 0
},
{
"id": "enrole-sales",
"datasetCount": 0,
"reportCount": 0,
"datasourceCount": 0,
"queryCount": 0
},
{
"id": "enrole-support",
"datasetCount": 0,
"reportCount": 0,
"datasourceCount": 0,
"queryCount": 0
},
"… 10 more items (13 total) — omitted from docs"
]
POST /api/teams
Create a new team.
Permissions: teams:create
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique team id |
name | string | Yes | Display name |
color | string | No | A Material preset name (blue, teal, …) or a 6-digit hex string |
icon | string | No | Icon url |
materialIcon | string | No | Material icon name |
description | string | No | Team description |
{
"id": "order-desk",
"name": "Order Desk",
"color": "blue",
"description": "Order fulfillment and customer support"
}
{
"_links": {
"self": {
"href": "https://informer.example.com/api/teams/order-desk"
}
},
"permissions": {
"addComment": true,
"addMember": true,
"delete": true,
"removeMember": true,
"editMemberRole": true,
"write": true,
"reassign": true,
"assignOwnership": true
},
"domain": "local",
"tenant": "acme",
"id": "order-desk",
"name": "Order Desk",
"color": "blue",
"description": "Order fulfillment and customer support",
"updatedAt": "2026-01-15T16:20:00.000Z",
"createdAt": "2026-01-15T16:20:00.000Z",
"icon": null,
"materialIcon": null,
"defaultRole": null,
"source": null,
"sourceId": null,
"lastViewedFeed": null,
"data": null,
"_changes": null
}
GET /api/teams/{id}
Get a specific team. Embeds the members (each with their user) and an aggs.userCount.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/teams/order-desk"
},
"inf:members": {
"href": "https://informer.example.com/api/teams/order-desk/members{?sort,limit,start,q}",
"templated": true
},
"inf:member": {
"href": "https://informer.example.com/api/teams/order-desk/members/{username}",
"templated": true
},
"inf:feed": {
"href": "https://informer.example.com/api/teams/order-desk/feed"
},
"inf:viewed-feed": {
"href": "https://informer.example.com/api/teams/order-desk/_markFeedViewed"
},
"inf:comments": {
"href": "https://informer.example.com/api/teams/order-desk/comments"
},
"inf:team-ai-profile": {
"href": "https://informer.example.com/api/teams/order-desk/ai/profile"
}
},
"permissions": {
"addComment": true,
"addMember": true,
"delete": true,
"removeMember": true,
"editMemberRole": true,
"write": true,
"reassign": true,
"assignOwnership": true
},
"id": "order-desk",
"name": "Order Desk",
"description": "Order fulfillment and customer support",
"domain": "local",
"data": null,
"icon": null,
"materialIcon": null,
"color": "blue",
"defaultRole": null,
"source": null,
"sourceId": null,
"lastViewedFeed": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"_changes": null,
"tenant": "acme",
"aggs": {
"userCount": 0
},
"_embedded": {
"inf:member": []
}
}
PUT /api/teams/{id}
Update a team.
Permissions: Team write (Data Wizard+)
Request Body:
Any of name, description, color, icon, materialIcon.
{
"description": "Order fulfillment, returns, and customer support",
"color": "teal"
}
{
"_links": {
"self": {
"href": "https://informer.example.com/api/teams/order-desk"
}
},
"permissions": {
"addComment": true,
"addMember": true,
"delete": true,
"removeMember": true,
"editMemberRole": true,
"write": true,
"reassign": true,
"assignOwnership": true
},
"id": "order-desk",
"name": "Order Desk",
"description": "Order fulfillment, returns, and customer support",
"domain": "local",
"data": null,
"icon": null,
"materialIcon": null,
"color": "teal",
"defaultRole": null,
"source": null,
"sourceId": null,
"lastViewedFeed": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"_changes": null,
"tenant": "acme"
}
DELETE /api/teams/{id}
Delete a team.
Permissions: Team delete (Admin or superuser)
Response:
Responds 200 on success. Removes the team and its memberships.