Tags
Organize and categorize reports using tags.
Overview
Tags provide a flexible way to categorize and organize reports. Multiple tags can be applied to a single report, and tags can be used for filtering and search.
GET /api/reports/{id}/tags
Get all tags associated with a report.
Authentication: Required
Path Parameters:
| Parameter | Type | Description |
|---|---|---|
id | string | Report ID |
Response:
The tag assignments for this report.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/reports/admin%3Asales-overview/tags"
}
},
"start": 0,
"count": 1,
"total": 1,
"_embedded": {
"inf:tag-entity": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/reports/00000000-0000-4000-8000-000000000001/tags/00000000-0000-4000-8000-000000000002"
}
},
"id": "00000000-0000-4000-8000-000000000003",
"tagId": "00000000-0000-4000-8000-000000000002",
"datasetId": null,
"queryId": null,
"reportId": "00000000-0000-4000-8000-000000000001",
"templateId": null,
"datasourceId": null,
"jobId": null,
"assistantId": null,
"libraryId": null,
"appId": null,
"toolkitId": null,
"integrationId": null,
"source": null,
"sourceId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"tenant": "acme",
"_embedded": {
"inf:tag": {
"_links": {
"self": {
"href": "https://informer.example.com/api/tags/00000000-0000-4000-8000-000000000002"
}
},
"permissions": {
"edit": true,
"delete": true,
"write": true,
"rename": true
},
"id": "00000000-0000-4000-8000-000000000002",
"tenant": "acme",
"name": "Quarterly",
"color": null,
"source": null,
"sourceId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z"
}
}
}
]
}
}
Response Fields:
| Field | Type | Description |
|---|---|---|
id | string | Tag entity UUID |
tagId | string | Tag identifier |
reportId | string | Report ID |
The embedded inf:tag contains full tag metadata including name and color.
GET /api/reports/{id}/tags/{tagId}
Get a specific tag association.
Authentication: Required
Path Parameters:
| Parameter | Type | Description |
|---|---|---|
id | string | Report ID |
tagId | string | Tag ID |
Response:
{
"_links": {
"self": {
"href": "https://informer.example.com/api/reports/admin%3Asales-overview/tags/00000000-0000-4000-8000-000000000001"
},
"inf:report": {
"href": "https://informer.example.com/api/reports/00000000-0000-4000-8000-000000000002"
},
"inf:tag": {
"href": "https://informer.example.com/api/tags/00000000-0000-4000-8000-000000000001"
}
},
"id": "00000000-0000-4000-8000-000000000003",
"tagId": "00000000-0000-4000-8000-000000000001",
"datasetId": null,
"queryId": null,
"reportId": "00000000-0000-4000-8000-000000000002",
"templateId": null,
"datasourceId": null,
"jobId": null,
"assistantId": null,
"libraryId": null,
"appId": null,
"toolkitId": null,
"integrationId": null,
"source": null,
"sourceId": null,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"tenant": "acme"
}
PUT /api/reports/{id}/tags/{tagId}
Add a tag to a report.
Authentication: Required
Permissions: report:assignTags
Path Parameters:
| Parameter | Type | Description |
|---|---|---|
id | string | Report ID |
tagId | string | Tag ID to add |
Request Body:
Empty body or {}
Response:
Responds 200. The tag must already exist (create tags via the Tags API).
{
"_links": {
"self": {
"href": "https://informer.example.com/api/reports/admin%3Asales-overview/tags/00000000-0000-4000-8000-000000000001"
}
},
"id": "00000000-0000-4000-8000-000000000002",
"tenant": "acme",
"tagId": "00000000-0000-4000-8000-000000000001",
"reportId": "00000000-0000-4000-8000-000000000003",
"updatedAt": "2026-01-15T16:20:00.000Z",
"createdAt": "2026-01-15T16:20:00.000Z",
"_altid": null,
"datasetId": null,
"queryId": null,
"templateId": null,
"source": null,
"sourceId": null,
"datasourceId": null,
"jobId": null,
"assistantId": null,
"libraryId": null,
"toolkitId": null,
"integrationId": null,
"appId": null
}
Behavior:
- Creates a tag association if it doesn't exist
- Idempotent - safe to call multiple times
- The tag must already exist (see Tag API for creating tags)
- Executes in a database transaction
Use Case:
Associate an existing tag with a report for categorization.
DELETE /api/reports/{id}/tags/{tagId}
Remove a tag from a report.
Authentication: Required
Permissions: report:assignTags
Path Parameters:
| Parameter | Type | Description |
|---|---|---|
id | string | Report ID |
tagId | string | Tag ID to remove |
Response:
Responds 200 on success.
Behavior:
- Removes the tag association
- Does not delete the tag itself (only removes from this report)
- Executes in a database transaction
Use Case:
Remove a tag categorization from a report.
Tag Management Workflow
1. List available tags
GET /api/tags
2. Apply tag to report
PUT /api/reports/team:sales-dashboard/tags/sales
3. View report's tags
GET /api/reports/team:sales-dashboard/tags
4. Remove tag
DELETE /api/reports/team:sales-dashboard/tags/sales
Tag Best Practices
Use tags for:
- Department/team categorization (sales, marketing, finance)
- Report type classification (dashboard, analysis, summary)
- Data domain (customer, product, revenue)
- Update frequency (daily, weekly, monthly)
- Status labels (draft, published, archived)
Tag naming:
- Use lowercase with hyphens for multi-word tags
- Keep tag IDs short and meaningful
- Use consistent naming conventions across the organization
Example tag structure:
dept:sales
dept:marketing
type:dashboard
type:analysis
freq:daily
freq:weekly
domain:customer
domain:product
Related Endpoints
- GET /api/tags - List all available tags
- POST /api/tags - Create a new tag
- GET /api/tags/{id} - Get tag details
- PUT /api/tags/{id} - Update tag properties
- DELETE /api/tags/{id} - Delete a tag
See the Tag API documentation for full tag management capabilities.