Skip to main content
GET
/
v2
/
tag-groups
/
tags
/
public
curl --request GET \
  --url 'https://api-prod.usefini.com/v2/tag-groups/tags/public?tagGroupIds=4fbcebbd-693d-4fb8-84b2-c8fd0edee4c5&tagGroupIds=f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5' \
  --header 'Authorization: Bearer fini_your_api_key'
import requests

response = requests.get(
    "https://api-prod.usefini.com/v2/tag-groups/tags/public",
    headers={"Authorization": "Bearer fini_your_api_key"},
    params=[
        ("tagGroupIds", "4fbcebbd-693d-4fb8-84b2-c8fd0edee4c5"),
        ("tagGroupIds", "f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5"),
    ],
)
tags = response.json()
const params = new URLSearchParams();
params.append("tagGroupIds", "4fbcebbd-693d-4fb8-84b2-c8fd0edee4c5");
params.append("tagGroupIds", "f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5");

const response = await fetch(
  `https://api-prod.usefini.com/v2/tag-groups/tags/public?${params.toString()}`,
  {
    headers: {
      Authorization: "Bearer fini_your_api_key",
    },
  }
);
const tags = await response.json();
[
  {
    "id": "0dc53764-a417-4a4f-b7f4-63149529f530",
    "createdAt": "2026-06-19T07:32:10.000Z",
    "tagGroupId": "f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5",
    "tagName": "resolved_by_ai",
    "tagDescription": "Use when the assistant fully resolved the request."
  },
  {
    "id": "2bd5626c-2122-478c-9c34-94fcf2d2cccb",
    "createdAt": "2026-06-12T10:17:02.000Z",
    "tagGroupId": "4fbcebbd-693d-4fb8-84b2-c8fd0edee4c5",
    "tagName": "Cancel Order",
    "tagDescription": "Use when the customer wants to cancel an existing order."
  }
]
{
  "statusCode": 400,
  "message": "Invalid tag group ID. Some groups do not exist or do not belong to your company.",
  "error": "Bad Request"
}
Lists tags across one or more tag groups as a single flat array, ordered by createdAt descending.

Headers

Authorization
string
required
Bearer token containing your Fini workspace API key. Format: Bearer fini_... The key needs read scope.

Query parameters

tagGroupIds
array
required
One or more tag group IDs. Pass repeated query params such as ?tagGroupIds=id1&tagGroupIds=id2. This route does not accept a comma-separated CSV string.
curl --request GET \
  --url 'https://api-prod.usefini.com/v2/tag-groups/tags/public?tagGroupIds=4fbcebbd-693d-4fb8-84b2-c8fd0edee4c5&tagGroupIds=f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5' \
  --header 'Authorization: Bearer fini_your_api_key'
import requests

response = requests.get(
    "https://api-prod.usefini.com/v2/tag-groups/tags/public",
    headers={"Authorization": "Bearer fini_your_api_key"},
    params=[
        ("tagGroupIds", "4fbcebbd-693d-4fb8-84b2-c8fd0edee4c5"),
        ("tagGroupIds", "f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5"),
    ],
)
tags = response.json()
const params = new URLSearchParams();
params.append("tagGroupIds", "4fbcebbd-693d-4fb8-84b2-c8fd0edee4c5");
params.append("tagGroupIds", "f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5");

const response = await fetch(
  `https://api-prod.usefini.com/v2/tag-groups/tags/public?${params.toString()}`,
  {
    headers: {
      Authorization: "Bearer fini_your_api_key",
    },
  }
);
const tags = await response.json();

Response

The response is a top-level array of Tag objects. The response is not grouped by tagGroupId; if you need grouped data, regroup the flat array client-side.
[
  {
    "id": "0dc53764-a417-4a4f-b7f4-63149529f530",
    "createdAt": "2026-06-19T07:32:10.000Z",
    "tagGroupId": "f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5",
    "tagName": "resolved_by_ai",
    "tagDescription": "Use when the assistant fully resolved the request."
  },
  {
    "id": "2bd5626c-2122-478c-9c34-94fcf2d2cccb",
    "createdAt": "2026-06-12T10:17:02.000Z",
    "tagGroupId": "4fbcebbd-693d-4fb8-84b2-c8fd0edee4c5",
    "tagName": "Cancel Order",
    "tagDescription": "Use when the customer wants to cancel an existing order."
  }
]
{
  "statusCode": 400,
  "message": "Invalid tag group ID. Some groups do not exist or do not belong to your company.",
  "error": "Bad Request"
}

Errors

tagGroupIds is missing, malformed, or includes one or more IDs the controller rejects.
The API key is missing, malformed, revoked, or invalid.
The API key does not include the read scope required for this route.
Fini failed while loading tags from storage.