Read published Help Center content through the API

Use the read-only public API to find a live Help Center, list and search published articles, and retrieve a full article safely.

Updated

The public Help Center API lets a website or server read customer-facing content without a workspace API key. It is read-only and returns published content from a live Help Center. It does not expose drafts, review proposals, AI Knowledge records, or an authoring workflow.

Use https://api.protodesk.io/v1. These endpoints are separate from the authenticated Platform API's customer and conversation routes and from the Help Center authoring API.

Identify one Help Center

Every request must supply exactly one locator:

  • workspace: the Help Center's stable public workspace slug, such as rico for rico.protodesk.io. This is not a wsp_… workspace ID.
  • host: the exact active Help Center hostname, such as help.protodesk.io or a verified custom hostname. Pass the hostname alone, without https:// or a path.

Do not pass both. A missing locator or both locators returns 400 with help_center.locator_invalid. A hostname that is not active for a published site does not make private content available. For a server-side proxy, configure the intended locator yourself rather than letting a visitor choose another workspace's public Help Center.

Start with the site manifest:

GET /v1/help-center?host=help.protodesk.io&locale=en

The response includes publicSlug, publicUrl, defaultLocale, activeLocale, availableLocales, collections, and up to six featuredArticles. Each collection includes id, parentId, slug, name, position, and articleCount, so you can build nested navigation. The count includes published articles in descendant collections; an article-list filter on a collection slug selects articles directly in that collection, not automatically in every descendant. Follow parentId and request child collections separately when building a full section view. Empty collections may be omitted from the public navigation.

Choose a locale deliberately

Pass locale on the manifest, list, and detail requests. If omitted, the site chooses its default published locale. A valid but unavailable locale can fall back to another published locale; check the manifest's activeLocale and each returned article's locale before displaying language-specific links. For example, a request for Indonesian may return English when English is the only published locale. An invalid locale returns 400.

An article must be published in the resolved locale to appear in that locale's list or detail view. Do not assume that every article has a translation just because the Help Center supports several languages. Article slugs and collection slugs can differ between locales; use the values returned for the active locale.

Search and page through articles

Use GET /v1/help-center/articles with the same locator and locale. Optional query searches published article text and must contain 2–120 characters when provided. Optional collection takes a public collection slug. limit defaults to 20 and accepts 1–50.

GET /v1/help-center/articles?host=help.protodesk.io&locale=en&query=API&limit=20

Each page has data, hasMore, and nextCursor. List entries contain summary metadata, not bodyMarkdown. When hasMore is true, pass the returned opaque nextCursor as cursor on the next request. Keep the locator, locale, query, and collection filter unchanged while paging; do not decode or reuse the cursor for a different search. Collection-only lists use collection position order, while other lists use update order, so do not invent a single global ordering rule.

These are live results rather than a frozen export. If content changes during a long crawl, reconcile by article ID or slug instead of assuming pages form a perfect snapshot. Respect rate-limit responses and back off; do not hard-code a single permanent request allowance.

Fetch a published article

Use the locale-specific slug returned by a list or featured item:

GET /v1/help-center/articles/create-and-manage-api-keys?host=help.protodesk.io&locale=en

A successful detail response includes bodyMarkdown and relatedArticles in addition to article metadata. Render Markdown safely in your own application. Do not treat links or embedded media as permission to expose private workspace data. Missing and unpublished content share a 404 response; do not reveal whether an unpublished article exists based on the error.

The API sends Cache-Control: public, max-age=60, stale-while-revalidate=300 on successful responses. Use that guidance for ordinary caching, but allow for recently published, edited, or unpublished content to appear stale briefly. Do not promise immediate global invalidation or cache draft content as if it were public.

To make content public in the first place, an administrator must publish the article and put the Help Center live. See Customize your public Help Center. This API is for reading that public result, not for creating or approving articles.

Related articles