COUNTCOUNT
Sign Up
TagsCreate tag group

Create tag group

POST/partners/tags/groups

Creates a tag group and optionally assigns tags.

Body requires `name` (unique per workspace). Optional `color` and `tagUuids` (tag UUIDs from list tags). Each tag may belong to at most one group.

HMAC signature + Bearer access token
Try this request

Request body

namestringrequired

Group name. Unique per workspace.

colorstring

Display color (for example a hex value).

tagUuidsarray

Tag UUIDs to include in the group on create.

Responses

201Tag group created successfully.
400Duplicate group name or tag already assigned to another group.
401Missing or invalid HMAC signature, expired timestamp, or invalid Bearer token. Troubleshoot
403The credential does not have access to this workspace or resource. Troubleshoot
429Rate limit exceeded (100 requests per minute per clientId). Retry after the Retry-After header. Troubleshoot
POSThttps://api.getcount.com/partners/tags/groups
Request
import crypto from 'node:crypto';

const BASE_URL = 'https://api.getcount.com';
const CLIENT_ID = process.env.COUNT_CLIENT_ID;
const CLIENT_SECRET = process.env.COUNT_CLIENT_SECRET;
const ACCESS_TOKEN = process.env.COUNT_ACCESS_TOKEN;

const method = 'POST';
const signingPath = '/tags/groups';
const timestamp = Math.floor(Date.now() / 1000).toString();
const body = {
  "name": "Department",
  "color": "#4A90D9",
  "tagUuids": [
    "e5f6a7b8-c9d0-1234-efab-345678901234"
  ]
};
const bodyString = JSON.stringify(body);

const bodyHash = crypto.createHash('sha256').update(bodyString).digest('hex');
const baseString = `${method}:${signingPath}:${timestamp}:${bodyHash}`;
const signature = crypto.createHmac('sha256', CLIENT_SECRET).update(baseString).digest('hex');

const response = await fetch(`${BASE_URL}/partners/tags/groups`, {
  method,
  headers: {
    'x-client-id': CLIENT_ID,
    'x-timestamp': timestamp,
    'x-signature': signature,
    'Content-Type': 'application/json',
    Authorization: `Bearer ${ACCESS_TOKEN}`,
  },
  body: bodyString,
});

console.log(await response.json());
Response · 201
{
  "id": "f6a7b8c9-d0e1-2345-fabc-456789012346",
  "name": "Department",
  "color": "#4A90D9",
  "tags": [
    {
      "id": "e5f6a7b8-c9d0-1234-efab-345678901234",
      "name": "Office"
    },
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567891",
      "name": "Marketing"
    }
  ],
  "createdAt": "2026-01-15T10:30:00.000Z",
  "updatedAt": "2026-01-28T14:22:30.000Z"
}