Skip to main content

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:

ParameterTypeDescription
idstringReport ID

Response:

{
"_links": {
"self": { "href": "/api/reports/{id}/tags" }
},
"_embedded": {
"inf:tag-entity": [
{
"id": "uuid",
"tagId": "sales",
"reportId": "team:sales-dashboard",
"_links": {
"self": { "href": "/api/reports/team:sales-dashboard/tags/sales" },
"inf:report": { "href": "/api/reports/team:sales-dashboard" },
"inf:tag": { "href": "/api/tags/sales" }
},
"_embedded": {
"inf:tag": {
"id": "sales",
"name": "Sales",
"color": "#4CAF50",
"_links": {
"self": { "href": "/api/tags/sales" }
}
}
}
}
]
},
"start": 0,
"count": 1,
"total": 1
}

Response Fields:

FieldTypeDescription
idstringTag entity UUID
tagIdstringTag identifier
reportIdstringReport 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:

ParameterTypeDescription
idstringReport ID
tagIdstringTag ID

Response:

{
"id": "uuid",
"tagId": "sales",
"reportId": "team:sales-dashboard",
"_links": {
"self": { "href": "/api/reports/team:sales-dashboard/tags/sales" },
"inf:report": { "href": "/api/reports/team:sales-dashboard" },
"inf:tag": { "href": "/api/tags/sales" }
}
}

PUT /api/reports/{id}/tags/{tagId}

Add a tag to a report.

Authentication: Required

Permissions: report:assignTags

Path Parameters:

ParameterTypeDescription
idstringReport ID
tagIdstringTag ID to add

Request Body:

Empty body or {}

Response:

{
"id": "uuid",
"tagId": "sales",
"reportId": "team:sales-dashboard",
"_links": {
"self": { "href": "/api/reports/team:sales-dashboard/tags/sales" }
}
}

Status Code: 200 OK (if already exists) or 201 Created (new association)

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:

ParameterTypeDescription
idstringReport ID
tagIdstringTag ID to remove

Response:

204 No Content 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

  • 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.