REST API: Help Center
Manage a Help Center site, its collections, articles, and redirects.
A Help Center site is a public, multi-article knowledge base for an agent. An agent has at most one site: create it with POST /agents/{id}/help-center/site, then look it up by agent with GET /agents/{id}/help-center/site or by its own identifier with GET /help-center/sites/{siteId} once you have that identifier. Site-level updates split into two endpoints: PATCH /help-center/sites/{siteId} for content settings, and PATCH /help-center/sites/{siteId}/access for whether the site is published and who can reach it. Keep these two kinds of change separate in your integration, since a content edit should not silently affect visibility.
Collections group articles. Create a collection, then create articles inside it. An article always starts as a draft from POST .../articles. Publishing is a separate, explicit step: call the publish action to make a draft public, unpublish to pull a published article back to draft, archive to retire a published article without deleting it, and unarchive to restore an archived article to published. Do not treat a successful create as equivalent to a live, public article — check its status, and call the matching lifecycle action to change it.
Redirects map an old or external path to a current article, collection, or URL inside the site, so you can move content without breaking inbound links. Create and list them per site; delete a redirect once the path it covers is no longer needed.
GET /help-center/sites/{siteId}/insights returns search, feedback, and AI-cost metrics for the site. Use it for reporting; it does not accept writes.
Help Center needs a paid plan. On a Free or Sandbox organization, POST /agents/{id}/help-center/site answers 403 PLAN_REQUIRED. The site of an organization whose plan does not include Help Center is read-only: every create, update, publish, unpublish, archive, unarchive, and redirect create call answers 403 PLAN_REQUIRED. Reads, deletes, and the public site keep working.
Listing articles
GET /help-center/sites/{siteId}/articles returns { articles, nextCursor, hasMore }, ordered by position, then creation time. Without limit, articles holds every article that matches collectionId and status, hasMore is false, and nextCursor is null. With limit (1 to 100), articles holds one page: when hasMore is true, pass nextCursor back as after, with the same filters, to fetch the next page. An after whose article was deleted, or belongs to another site, returns an empty page. after is read only together with limit: without limit you always get every article. Reordering articles (changing position) while you page can skip or repeat articles, so finish a walk before you reorder, or start it again afterwards.
Every article carries its full bodyMd and bodyHtml by default, which makes a full read of a large site heavy. Pass includeBody=false to leave both keys out of every row, for example to build an index of titles and slugs, then fetch the articles you need with GET /help-center/sites/{siteId}/articles/{articleId}. Only the literal values true and false are accepted.
Deleting a site, a collection, or an article is destructive and removes public access immediately. Confirm nothing outside AgentStack still links to the content before you delete it, and prefer archiving an article over deleting it when you might need it again.
Changes
- 2026-10-17 —
GET /help-center/sites/{siteId}/articlesreturnsnextCursorandhasMorebesidearticles, and acceptslimit,after, andincludeBody. Without them the response holds the same articles as before.