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
-
objectstring - Always
tag. -
idstring - Unique id.
-
namestring - Unique per workspace (case-insensitive), up to 60 characters.
-
colorenum | null gray,orange,amber,green,teal,sky,indigo,violet,pink,red.-
archivedboolean - Archived tags are hidden from pickers but keep their history.
-
createdAttimestamp - Created.
{ "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
-
includeArchivedboolean - 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() { "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
-
idstring 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() { "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
-
namestring required - Up to 60 characters.
-
colorenum | 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() { "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
-
idstring required - The tag id.
Body
-
namestring - New name.
-
colorenum | null - New color.
-
archivedboolean - 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() { "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
-
idstring 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() { "object": "tag", "id": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c", "deleted": true}