curl --request PUT \
--url 'https://api-prod.usefini.com/v2/tag-groups/tags/0dc53764-a417-4a4f-b7f4-63149529f530/public' \
--header 'Authorization: Bearer fini_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"tagName": "resolved_without_escalation",
"tagDescription": "Use when the assistant fully resolved the request without handing off."
}'
import requests
tag_id = "0dc53764-a417-4a4f-b7f4-63149529f530"
response = requests.put(
f"https://api-prod.usefini.com/v2/tag-groups/tags/{tag_id}/public",
headers={
"Authorization": "Bearer fini_your_api_key",
"Content-Type": "application/json",
},
json={
"tagName": "resolved_without_escalation",
"tagDescription": "Use when the assistant fully resolved the request without handing off.",
},
)
tag = response.json()
const tagId = "0dc53764-a417-4a4f-b7f4-63149529f530";
const response = await fetch(
`https://api-prod.usefini.com/v2/tag-groups/tags/${tagId}/public`,
{
method: "PUT",
headers: {
Authorization: "Bearer fini_your_api_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
tagName: "resolved_without_escalation",
tagDescription:
"Use when the assistant fully resolved the request without handing off.",
}),
}
);
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_without_escalation",
"tagDescription": "Use when the assistant fully resolved the request without handing off."
}
Tags
Update tag
Update one tag by tag ID.
PUT
/
v2
/
tag-groups
/
tags
/
{id}
/
public
curl --request PUT \
--url 'https://api-prod.usefini.com/v2/tag-groups/tags/0dc53764-a417-4a4f-b7f4-63149529f530/public' \
--header 'Authorization: Bearer fini_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"tagName": "resolved_without_escalation",
"tagDescription": "Use when the assistant fully resolved the request without handing off."
}'
import requests
tag_id = "0dc53764-a417-4a4f-b7f4-63149529f530"
response = requests.put(
f"https://api-prod.usefini.com/v2/tag-groups/tags/{tag_id}/public",
headers={
"Authorization": "Bearer fini_your_api_key",
"Content-Type": "application/json",
},
json={
"tagName": "resolved_without_escalation",
"tagDescription": "Use when the assistant fully resolved the request without handing off.",
},
)
tag = response.json()
const tagId = "0dc53764-a417-4a4f-b7f4-63149529f530";
const response = await fetch(
`https://api-prod.usefini.com/v2/tag-groups/tags/${tagId}/public`,
{
method: "PUT",
headers: {
Authorization: "Bearer fini_your_api_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
tagName: "resolved_without_escalation",
tagDescription:
"Use when the assistant fully resolved the request without handing off.",
}),
}
);
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_without_escalation",
"tagDescription": "Use when the assistant fully resolved the request without handing off."
}
Updates one
Tag.
The
{id} path segment is the tag ID on this route, not the tag group ID.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 ID to update.
Body parameters
string
Updated tag label.
string
Updated tag description or instruction text.
curl --request PUT \
--url 'https://api-prod.usefini.com/v2/tag-groups/tags/0dc53764-a417-4a4f-b7f4-63149529f530/public' \
--header 'Authorization: Bearer fini_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"tagName": "resolved_without_escalation",
"tagDescription": "Use when the assistant fully resolved the request without handing off."
}'
import requests
tag_id = "0dc53764-a417-4a4f-b7f4-63149529f530"
response = requests.put(
f"https://api-prod.usefini.com/v2/tag-groups/tags/{tag_id}/public",
headers={
"Authorization": "Bearer fini_your_api_key",
"Content-Type": "application/json",
},
json={
"tagName": "resolved_without_escalation",
"tagDescription": "Use when the assistant fully resolved the request without handing off.",
},
)
tag = response.json()
const tagId = "0dc53764-a417-4a4f-b7f4-63149529f530";
const response = await fetch(
`https://api-prod.usefini.com/v2/tag-groups/tags/${tagId}/public`,
{
method: "PUT",
headers: {
Authorization: "Bearer fini_your_api_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
tagName: "resolved_without_escalation",
tagDescription:
"Use when the assistant fully resolved the request without handing off.",
}),
}
);
const tag = await response.json();
Response
Returns the updatedTag.
{
"id": "0dc53764-a417-4a4f-b7f4-63149529f530",
"createdAt": "2026-06-19T07:32:10.000Z",
"tagGroupId": "f770d0bb-d5ea-44e7-a92a-fcfa2d5a32d5",
"tagName": "resolved_without_escalation",
"tagDescription": "Use when the assistant fully resolved the request without handing off."
}
Current controller behavior: unknown tag IDs currently surface as
500 Internal Server Error on this route. Tags in Fini-managed groups are also not part of the supported write contract.Errors
400 Bad Request
400 Bad Request
The body is malformed.
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 resolving the tag or updating it in storage.
Was this page helpful?

