> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usefini.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Section hub for reading and managing tag groups through Fini's public API.

Tag groups are the top-level classification buckets behind [Configuration → Tags](/en/configuration/tags). Every tag belongs to exactly one group. Use these public routes to read both Fini-shipped default groups and workspace-owned custom groups, or to create and manage custom groups from your backend.

<Info>
  The API field `prompt` is the wire-format name for the dashboard's **AI Instructions** field.
</Info>

<Note>
  Read routes return both workspace-owned custom groups and Fini-shipped default groups. In the response, custom groups have a workspace `companyId`, while default groups return `companyId: null`. Mandatory groups, such as Conversation Status, return `mandatory: true`.
</Note>

## Reference pages

<CardGroup cols={3}>
  <Card title="List tag groups" icon="list" href="/en/api-reference/list-tag-groups">
    `GET /v2/tag-groups/public` - list the tag groups visible in the workspace.
  </Card>

  <Card title="Get tag group" icon="eye" href="/en/api-reference/get-tag-group">
    `GET /v2/tag-groups/{id}/public` - fetch one tag group by ID.
  </Card>

  <Card title="Create tag group" icon="plus" href="/en/api-reference/create-tag-group">
    `POST /v2/tag-groups/public` - create a custom tag group.
  </Card>

  <Card title="Update tag group" icon="pen" href="/en/api-reference/update-tag-group">
    `PUT /v2/tag-groups/{id}/public` - update a custom tag group.
  </Card>

  <Card title="Delete tag group" icon="trash" href="/en/api-reference/delete-tag-group">
    `DELETE /v2/tag-groups/{id}/public` - delete a custom tag group.
  </Card>
</CardGroup>

## Endpoint map

| Method   | Path                        | Scope   | Purpose                                                                                |
| -------- | --------------------------- | ------- | -------------------------------------------------------------------------------------- |
| `GET`    | `/v2/tag-groups/public`     | `read`  | List the tag groups available in the workspace, including Fini-shipped default groups. |
| `GET`    | `/v2/tag-groups/:id/public` | `read`  | Fetch one tag group by ID.                                                             |
| `POST`   | `/v2/tag-groups/public`     | `write` | Create a custom tag group.                                                             |
| `PUT`    | `/v2/tag-groups/:id/public` | `write` | Update a custom tag group.                                                             |
| `DELETE` | `/v2/tag-groups/:id/public` | `write` | Delete a custom tag group.                                                             |

## TagGroup object

<ResponseField name="id" type="string">
  Tag group ID.
</ResponseField>

<ResponseField name="createdAt" type="string">
  ISO 8601 creation timestamp.
</ResponseField>

<ResponseField name="updatedAt" type="string">
  ISO 8601 last-update timestamp.
</ResponseField>

<ResponseField name="companyId" type="string | null">
  Workspace ID that owns the tag group. `null` indicates a Fini-shipped default group.
</ResponseField>

<ResponseField name="title" type="string">
  Group title shown in the dashboard and used as the human-readable name for the classification dimension.
</ResponseField>

<ResponseField name="description" type="string">
  Human-readable description for the group.
</ResponseField>

<ResponseField name="prompt" type="string">
  AI-instruction text that teaches the model how to apply the group's tags. This is the API name for the dashboard's **AI Instructions** field.
</ResponseField>

<ResponseField name="multiselect" type="boolean">
  Whether the group allows multiple tags to be applied to the same conversation.
</ResponseField>

<ResponseField name="mandatory" type="boolean">
  Whether the group is Fini-mandatory and not intended for deletion or disabling.
</ResponseField>

<ResponseField name="isOutputTagGroup" type="boolean">
  Whether this is an output-only tag group. If `true`, the group is for post-classification/reporting use and will not be available as a Rulebook condition, including in intent-based rules.
</ResponseField>

<Note>
  Use the child pages in this section for the detailed request and response reference for each route.
</Note>
