Tags
Update a tag
Partial update (rename) of a tag. **Requires `Idempotency-Key`.** Returns `{ data: { tag: {...} } }`. Renaming to an existing tag name returns 400 (tags are unique per user+name).
PATCH /v2/tags/{tagId}
Parameters
Path parameters
tagId
string (uuid) required
Header parameters
Idempotency-Key
string required
Required. UUID per logical operation, reused on every retry. See
apps/rest-api/src/shared/idempotency.ts for the full contract. Missing → 400 BadRequest; same key + different body → 409 Conflict.Request body
Content-Type: application/json
tag
object required
tag.name
string
Example
{
"tag": {
"name": "string"
}
}
Responses
200 — Successful response
Content-Type: application/json
data
object required
data.tag
object required
data.tag.id
string (uuid) required
data.tag.user_id
string
data.tag.name
string
data.tag._count
object
data.tag._count.tags_contacts
integer
Example
{
"data": {
"tag": {
"id": "00000000-0000-0000-0000-000000000000"
}
}
}
400
No response body.
401
No response body.
403
No response body.
404
No response body.
409
No response body.
429
No response body.
500
No response body.
Code samples
curl https://api.prod.getdex.com/v2/tags/00000000-0000-0000-0000-000000000000 \
--request PATCH \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"tag": {
"name": "string"
}
}'
fetch('https://api.prod.getdex.com/v2/tags/00000000-0000-0000-0000-000000000000', {
method: 'PATCH',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
tag: {
name: 'string'
}
})
})
requests.patch(
"https://api.prod.getdex.com/v2/tags/00000000-0000-0000-0000-000000000000",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"tag": {
"name": "string"
}
}
)
Get a tag
Retrieve a single tag by its ID. Pass `?include[contacts_count]=true` to attach `_count.tags_contacts`. Returns `{ data: { tag: {...} } }`, or 404 if the tag doesn't exist or belongs to another user.
Delete a tag
Permanently delete a tag (its contact assignments cascade). Returns the canonical bulk envelope: `{ data: { affected: 1, ids: [tagId] } }`. `Idempotency-Key` is optional.

