curl --request POST \
--url 'https://api-prod.usefini.com/v2/tag-groups/f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5/tags/public' \
--header 'Authorization: Bearer fini_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"tagName": "resolved_by_ai",
"tagDescription": "Use when the assistant fully resolved the request."
}'
import requests
tag_group_id = "f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5"
response = requests.post(
f"https://api-prod.usefini.com/v2/tag-groups/{tag_group_id}/tags/public",
headers={
"Authorization": "Bearer fini_your_api_key",
"Content-Type": "application/json",
},
json={
"tagName": "resolved_by_ai",
"tagDescription": "Use when the assistant fully resolved the request.",
},
)
tag = response.json()
const tagGroupId = "f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5";
const response = await fetch(
`https://api-prod.usefini.com/v2/tag-groups/${tagGroupId}/tags/public`,
{
method: "POST",
headers: {
Authorization: "Bearer fini_your_api_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
tagName: "resolved_by_ai",
tagDescription: "Use when the assistant fully resolved the request.",
}),
}
);
const tag = 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."
}
{
"statusCode": 400,
"message": [
"tagName should not be empty"
],
"error": "Bad Request"
}
Tags
Create tag
Create a tag inside one tag group.
POST
/
v2
/
tag-groups
/
{id}
/
tags
/
public
curl --request POST \
--url 'https://api-prod.usefini.com/v2/tag-groups/f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5/tags/public' \
--header 'Authorization: Bearer fini_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"tagName": "resolved_by_ai",
"tagDescription": "Use when the assistant fully resolved the request."
}'
import requests
tag_group_id = "f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5"
response = requests.post(
f"https://api-prod.usefini.com/v2/tag-groups/{tag_group_id}/tags/public",
headers={
"Authorization": "Bearer fini_your_api_key",
"Content-Type": "application/json",
},
json={
"tagName": "resolved_by_ai",
"tagDescription": "Use when the assistant fully resolved the request.",
},
)
tag = response.json()
const tagGroupId = "f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5";
const response = await fetch(
`https://api-prod.usefini.com/v2/tag-groups/${tagGroupId}/tags/public`,
{
method: "POST",
headers: {
Authorization: "Bearer fini_your_api_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
tagName: "resolved_by_ai",
tagDescription: "Use when the assistant fully resolved the request.",
}),
}
);
const tag = 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."
}
{
"statusCode": 400,
"message": [
"tagName should not be empty"
],
"error": "Bad Request"
}
Creates a
Tag inside one tag group.
Supported contract: create tags inside workspace-owned custom groups. For group-level routes, see Tag groups.
Headers
string
required
Bearer token containing your Fini workspace API key. Format:
Bearer fini_... The key needs write scope.string
required
application/jsonPath parameters
string
required
Tag group ID that should own the new tag.
Body parameters
string
required
Tag label.
string
Optional tag description or instruction text.
curl --request POST \
--url 'https://api-prod.usefini.com/v2/tag-groups/f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5/tags/public' \
--header 'Authorization: Bearer fini_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"tagName": "resolved_by_ai",
"tagDescription": "Use when the assistant fully resolved the request."
}'
import requests
tag_group_id = "f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5"
response = requests.post(
f"https://api-prod.usefini.com/v2/tag-groups/{tag_group_id}/tags/public",
headers={
"Authorization": "Bearer fini_your_api_key",
"Content-Type": "application/json",
},
json={
"tagName": "resolved_by_ai",
"tagDescription": "Use when the assistant fully resolved the request.",
},
)
tag = response.json()
const tagGroupId = "f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5";
const response = await fetch(
`https://api-prod.usefini.com/v2/tag-groups/${tagGroupId}/tags/public`,
{
method: "POST",
headers: {
Authorization: "Bearer fini_your_api_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
tagName: "resolved_by_ai",
tagDescription: "Use when the assistant fully resolved the request.",
}),
}
);
const tag = await response.json();
Response
Returns the createdTag.
{
"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."
}
{
"statusCode": 400,
"message": [
"tagName should not be empty"
],
"error": "Bad Request"
}
Errors
400 Bad Request
400 Bad Request
The body is malformed, the required
tagName is missing, the tag group does not exist, the group belongs to another workspace, or the group is a Fini default or mandatory group.401 Unauthorized
401 Unauthorized
The API key is missing, malformed, revoked, or invalid.
403 Forbidden
403 Forbidden
The API key does not include the
write scope required for this route.500 Internal Server Error
500 Internal Server Error
Fini failed while creating the tag.
Was this page helpful?

