Create a help collection
Add a new top-level collection to your Help Center. Returns the new collection id.
Creates a help collection — the top level of your Help Center taxonomy. New collections are appended to the end of the curated order.
Endpoint
POST https://api.productbridge.io/api/external/v1/help-collections/create
Arguments
Your organization's public API key. See Authentication.
The display name shown on your help center home page. 1–512 characters.
URL-safe identifier, unique within your organization. Derived from name when omitted. If the slug is already taken, a unique suffix is appended automatically. Max 512 characters.
Supporting text shown beneath the collection name. Max 512 characters.
Icon identifier rendered next to the collection. Max 512 characters.
Hex color string used as an accent (e.g. "#4E938A"). Max 50 characters.
seq_number cannot be set here. New collections are appended to the end of the order; reorder them by drag-and-drop in the dashboard. See Ordering.
Returns
A JSON object with the new collection's id.
{ "id": "553c3ef8-b8cd-cd15-01ba-12bb12bb12bb" }
Example request
curl -X POST https://api.productbridge.io/api/external/v1/help-collections/create \
-H 'Content-Type: application/json' \
-d '{
"api_key": "pb_YOUR_PUBLIC_API_KEY",
"name": "Billing & Plans",
"description": "Invoices, upgrades, and receipts.",
"icon": "credit-card",
"color": "#F59E0B"
}'
const res = await fetch(
"https://api.productbridge.io/api/external/v1/help-collections/create",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
api_key: process.env.PRODUCTBRIDGE_API_KEY,
name: "Billing & Plans",
description: "Invoices, upgrades, and receipts.",
icon: "credit-card",
color: "#F59E0B",
}),
}
);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const { id } = await res.json();
import os, httpx
resp = httpx.post(
"https://api.productbridge.io/api/external/v1/help-collections/create",
json={
"api_key": os.environ["PRODUCTBRIDGE_API_KEY"],
"name": "Billing & Plans",
"description": "Invoices, upgrades, and receipts.",
"icon": "credit-card",
"color": "#F59E0B",
},
)
resp.raise_for_status()
new_id = resp.json()["id"]
Example response
{
"id": "773c3ef8-b8cd-cd15-01ba-99bb99bb99bb"
}
Fetch the full object — including the generated slug and created_at — via Retrieve.
Errors
| Status | Body | Cause |
|---|---|---|
401 | {"detail":{"error":"invalid api_key"}} | Missing / unknown / inactive api_key. |
403 | {"detail":{"error":"The Help Center is not enabled on your current plan..."}} | Your plan does not include the knowledgebase feature. |
422 | Validation error envelope | Missing name, name out of length bounds (1–512), or a field has the wrong type. |
See Errors for the full envelope shape and a recommended client-side handler.