> ## 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 tags through Fini's public API.

Tags are the individual values inside a tag group. There is no top-level public `list all tags` route. Instead, the API lets you fetch one tag by ID, list the tags inside one group, or list tags across a specific set of group IDs.

<Info>
  If you need every tag in the workspace, first call [Tag groups](/en/api-reference/tag-groups) to collect the group IDs you care about, then call `GET /v2/tag-groups/tags/public` with those `tagGroupIds`.
</Info>

<Warning>
  Path semantics are asymmetric in the current controller:

  * `POST /v2/tag-groups/{id}/tags/public` uses `{id}` as the **tag group ID**
  * `PUT /v2/tag-groups/tags/{id}/public` uses `{id}` as the **tag ID**
  * `DELETE /v2/tag-groups/tags/{id}/public` uses `{id}` as the **tag ID**
</Warning>

## Reference pages

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

  <Card title="List tags in group" icon="list" href="/en/api-reference/list-tags-in-group">
    `GET /v2/tag-groups/{id}/tags/public` - list the tags in one tag group.
  </Card>

  <Card title="List tags across groups" icon="layer-group" href="/en/api-reference/list-tags-across-groups">
    `GET /v2/tag-groups/tags/public` - list tags across one or more tag groups.
  </Card>

  <Card title="Create tag" icon="plus" href="/en/api-reference/create-tag">
    `POST /v2/tag-groups/{id}/tags/public` - create a tag inside one tag group.
  </Card>

  <Card title="Update tag" icon="pen" href="/en/api-reference/update-tag">
    `PUT /v2/tag-groups/tags/{id}/public` - update one tag by tag ID.
  </Card>

  <Card title="Delete tag" icon="trash" href="/en/api-reference/delete-tag">
    `DELETE /v2/tag-groups/tags/{id}/public` - delete one tag by tag ID.
  </Card>
</CardGroup>

## Endpoint map

| Method   | Path                             | Scope   | Purpose                                                                  |
| -------- | -------------------------------- | ------- | ------------------------------------------------------------------------ |
| `GET`    | `/v2/tags/:id/public`            | `read`  | Fetch one tag by ID.                                                     |
| `GET`    | `/v2/tag-groups/:id/tags/public` | `read`  | List the tags inside one tag group.                                      |
| `GET`    | `/v2/tag-groups/tags/public`     | `read`  | List tags across one or more tag groups as a flat array.                 |
| `POST`   | `/v2/tag-groups/:id/tags/public` | `write` | Create a tag inside a tag group. The path parameter is the tag group ID. |
| `PUT`    | `/v2/tag-groups/tags/:id/public` | `write` | Update one tag. The path parameter is the tag ID.                        |
| `DELETE` | `/v2/tag-groups/tags/:id/public` | `write` | Delete one tag. The path parameter is the tag ID.                        |

## Tag object

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

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

<ResponseField name="tagGroupId" type="string">
  ID of the tag group that owns this tag.
</ResponseField>

<ResponseField name="tagName" type="string">
  Tag label.
</ResponseField>

<ResponseField name="tagDescription" type="string">
  Optional tag description or instruction text.
</ResponseField>

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