REST API reference

Tags

The workspace’s tags. Apply them with the contact, company and conversation endpoints.

One set of tags covers conversations, people and companies. Reads need tags:read; changes need tags:write. To tag something, use POST /contacts/{id}/tags, POST /companies/{id}/tags or POST /conversations/{id}/tags.

The tag object

Returned by every tag endpoint.

Fields

object string
Always tag.
id string
Unique id.
name string
Unique per workspace (case-insensitive), up to 60 characters.
color enum | null
gray, orange, amber, green, teal, sky, indigo, violet, pink, red.
archived boolean
Archived tags are hidden from pickers but keep their history.
createdAt timestamp
Created.
Example tag
{  "object": "tag",  "id": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",  "name": "VIP",  "color": "orange",  "archived": false,  "createdAt": "2025-05-20T08:00:00.000Z"}

List tags

GET /v1 /tags tags:read

Every active tag, A→Z. Not paginated.

Query parameters

includeArchived boolean
Include archived tags.
curl https://api.rabbitblaze.com/v1/tags \  -H "Authorization: Bearer $RABBITBLAZE_API_KEY"
const res = await fetch("https://api.rabbitblaze.com/v1/tags", {  headers: {    Authorization: `Bearer ${process.env.RABBITBLAZE_API_KEY}`,  },})const data = await res.json()
import osimport requests res = requests.get(    "https://api.rabbitblaze.com/v1/tags",    headers={"Authorization": f"Bearer {os.environ['RABBITBLAZE_API_KEY']}"},)res.raise_for_status()data = res.json()
Response · 200 OK
{  "items": [    {      "object": "tag",      "id": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",      "name": "VIP",      "color": "orange",      "archived": false,      "createdAt": "2025-05-20T08:00:00.000Z"    }  ],  "nextCursor": null}

Retrieve a tag

GET /v1 /tags/{id} tags:read

One tag by id.

Path parameters

id string required
The tag id.
curl https://api.rabbitblaze.com/v1/tags/0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c \  -H "Authorization: Bearer $RABBITBLAZE_API_KEY"
const res = await fetch("https://api.rabbitblaze.com/v1/tags/0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c", {  headers: {    Authorization: `Bearer ${process.env.RABBITBLAZE_API_KEY}`,  },})const data = await res.json()
import osimport requests res = requests.get(    "https://api.rabbitblaze.com/v1/tags/0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",    headers={"Authorization": f"Bearer {os.environ['RABBITBLAZE_API_KEY']}"},)res.raise_for_status()data = res.json()
Response · 200 OK
{  "object": "tag",  "id": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",  "name": "VIP",  "color": "orange",  "archived": false,  "createdAt": "2025-05-20T08:00:00.000Z"}

Create a tag

POST /v1 /tags tags:write

Creates a tag. If an archived tag has the same name it’s restored instead (200); an active one answers 409 conflict.

Body

name string required
Up to 60 characters.
color enum | null
gray, orange, amber, green, teal, sky, indigo, violet, pink, red
curl -X POST https://api.rabbitblaze.com/v1/tags \  -H "Authorization: Bearer $RABBITBLAZE_API_KEY" \  -H "Content-Type: application/json" \  -d '{  "name": "VIP",  "color": "orange"}'
const res = await fetch("https://api.rabbitblaze.com/v1/tags", {  method: "POST",  headers: {    Authorization: `Bearer ${process.env.RABBITBLAZE_API_KEY}`,    "Content-Type": "application/json",  },  body: JSON.stringify({    name: "VIP",    color: "orange",  }),})const data = await res.json()
import osimport requests res = requests.post(    "https://api.rabbitblaze.com/v1/tags",    headers={"Authorization": f"Bearer {os.environ['RABBITBLAZE_API_KEY']}"},    json={        "name": "VIP",        "color": "orange",    },)res.raise_for_status()data = res.json()
Response · 201 Created
{  "object": "tag",  "id": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",  "name": "VIP",  "color": "orange",  "archived": false,  "createdAt": "2025-05-20T08:00:00.000Z"}

Update a tag

PATCH /v1 /tags/{id} tags:write

Rename, recolor, archive or restore a tag.

Path parameters

id string required
The tag id.

Body

name string
New name.
color enum | null
New color.
archived boolean
Archive (true) or restore (false).
curl -X PATCH https://api.rabbitblaze.com/v1/tags/0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c \  -H "Authorization: Bearer $RABBITBLAZE_API_KEY" \  -H "Content-Type: application/json" \  -d '{  "name": "Key account"}'
const res = await fetch("https://api.rabbitblaze.com/v1/tags/0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c", {  method: "PATCH",  headers: {    Authorization: `Bearer ${process.env.RABBITBLAZE_API_KEY}`,    "Content-Type": "application/json",  },  body: JSON.stringify({    name: "Key account",  }),})const data = await res.json()
import osimport requests res = requests.patch(    "https://api.rabbitblaze.com/v1/tags/0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",    headers={"Authorization": f"Bearer {os.environ['RABBITBLAZE_API_KEY']}"},    json={        "name": "Key account",    },)res.raise_for_status()data = res.json()
Response · 200 OK
{  "object": "tag",  "id": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",  "name": "Key account",  "color": "orange",  "archived": false,  "createdAt": "2025-05-20T08:00:00.000Z"}

Delete a tag

DELETE /v1 /tags/{id} tags:write

Removes the tag from every conversation, person and company. Archive it instead to keep the history.

Path parameters

id string required
The tag id.
curl -X DELETE https://api.rabbitblaze.com/v1/tags/0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c \  -H "Authorization: Bearer $RABBITBLAZE_API_KEY"
const res = await fetch("https://api.rabbitblaze.com/v1/tags/0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c", {  method: "DELETE",  headers: {    Authorization: `Bearer ${process.env.RABBITBLAZE_API_KEY}`,  },})const data = await res.json()
import osimport requests res = requests.delete(    "https://api.rabbitblaze.com/v1/tags/0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",    headers={"Authorization": f"Bearer {os.environ['RABBITBLAZE_API_KEY']}"},)res.raise_for_status()data = res.json()
Response · 200 OK
{  "object": "tag",  "id": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",  "deleted": true}