Hashtag Sets
Hashtag Sets let you save named collections of hashtags and reuse them when composing posts. Tags are normalized automatically — the # prefix is stripped, whitespace is trimmed, and all characters are lowercased before storage.
Base URL
https://api.voxburst.io/v1/hashtag-setsHashtag Set Object
{
"id": "cmp6v6bhf000369v60htcu3vc",
"name": "Tech Launch",
"tags": ["newfeature", "saas", "productlaunch", "buildinpublic"],
"createdAt": "2026-04-01T10:00:00Z",
"updatedAt": "2026-04-01T10:00:00Z"
}| Field | Type | Description |
|---|---|---|
id | string | cuid2 identifier |
name | string | Display name (1–100 chars, unique within workspace) |
tags | string[] | Normalized hashtags — stored without #, lowercase |
createdAt | string | ISO 8601 creation timestamp |
updatedAt | string | ISO 8601 last-updated timestamp |
Tags are normalized on write: the # prefix is removed, characters are lowercased, and leading/trailing whitespace is trimmed. For example, "#NewFeature " is stored as "newfeature".
List Hashtag Sets
GET /v1/hashtag-sets
Returns all hashtag sets for the workspace, ordered by most recently updated.
Query parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 50 | Items per page (1–100) |
cursor | string | — | Pagination cursor from previous response |
curl https://api.voxburst.io/v1/hashtag-sets \
-H "Authorization: Bearer vb_live_xxxxxxxxxxxxx"Response (200)
{
"data": [
{
"id": "cmp6v6bhf000369v60htcu3vc",
"name": "Tech Launch",
"tags": ["newfeature", "saas", "productlaunch"],
"createdAt": "2026-04-01T10:00:00Z",
"updatedAt": "2026-04-01T10:00:00Z"
}
],
"pagination": {
"nextCursor": null,
"hasMore": false
}
}Get Hashtag Set
GET /v1/hashtag-sets/:id
Returns a single hashtag set by ID.
curl https://api.voxburst.io/v1/hashtag-sets/cmp6v6bhf000369v60htcu3vc \
-H "Authorization: Bearer vb_live_xxxxxxxxxxxxx"Response (200)
{
"data": {
"id": "cmp6v6bhf000369v60htcu3vc",
"name": "Tech Launch",
"tags": ["newfeature", "saas", "productlaunch"],
"createdAt": "2026-04-01T10:00:00Z",
"updatedAt": "2026-04-01T10:00:00Z"
}
}Create Hashtag Set
POST /v1/hashtag-sets
Required scopes: hashtag-sets:write
Returns HTTP 201 Created.
Request Body
| Field | Type | Required | Constraints |
|---|---|---|---|
name | string | Yes | 1–100 chars. Must be unique within the workspace (case-insensitive). |
tags | string[] | Yes | 1–30 tags, each 1–50 chars. Tags are normalized (see above). |
curl -X POST https://api.voxburst.io/v1/hashtag-sets \
-H "Authorization: Bearer vb_live_xxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Tech Launch",
"tags": ["#NewFeature", "#SaaS", "ProductLaunch", "buildinpublic"]
}'Response (201)
{
"data": {
"id": "cmp6v6bhf000369v60htcu3vc",
"name": "Tech Launch",
"tags": ["newfeature", "saas", "productlaunch", "buildinpublic"],
"createdAt": "2026-04-01T10:00:00Z",
"updatedAt": "2026-04-01T10:00:00Z"
},
"message": "Hashtag set created successfully"
}Update Hashtag Set
PATCH /v1/hashtag-sets/:id
Required scopes: hashtag-sets:write
Partially updates a hashtag set. All fields are optional — omitted fields are unchanged.
Request Body
| Field | Type | Required | Constraints |
|---|---|---|---|
name | string | No | 1–100 chars. Must be unique within the workspace (case-insensitive). |
tags | string[] | No | 1–30 tags, each 1–50 chars. Replaces the full tag list. |
curl -X PATCH https://api.voxburst.io/v1/hashtag-sets/cmp6v6bhf000369v60htcu3vc \
-H "Authorization: Bearer vb_live_xxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"tags": ["newfeature", "saas", "productlaunch", "launch2026"]
}'Response (200)
{
"data": {
"id": "cmp6v6bhf000369v60htcu3vc",
"name": "Tech Launch",
"tags": ["newfeature", "saas", "productlaunch", "launch2026"],
"createdAt": "2026-04-01T10:00:00Z",
"updatedAt": "2026-04-23T15:30:00Z"
},
"message": "Hashtag set updated successfully"
}Delete Hashtag Set
DELETE /v1/hashtag-sets/:id
Required scopes: hashtag-sets:write
Permanently deletes the hashtag set. This cannot be undone.
curl -X DELETE https://api.voxburst.io/v1/hashtag-sets/cmp6v6bhf000369v60htcu3vc \
-H "Authorization: Bearer vb_live_xxxxxxxxxxxxx"Response (200)
{ "message": "Hashtag set deleted successfully" }Error Codes
| Code | HTTP | Description |
|---|---|---|
NOT_FOUND | 404 | No hashtag set with that ID in this workspace |
VALIDATION_ERROR | 400 | Request body failed schema validation — duplicate name, too many tags, etc. |
FORBIDDEN | 403 | Valid key but missing hashtag-sets:write scope |