Skip to main content
The Help Center API lets you manage the customer-facing knowledge base you author in OpenCX from your own systems. Anything you can do in the Help Center editor you can do here: create and edit articles and categories, publish and unpublish them, manage translations and the glossary, order the tree, upload media, and change the site’s own settings. Publishing an article’s primary language ships it to your public help site and the AI’s knowledge in the same action. There is no separate “train the AI” step. Other languages publish to the site only; the AI always follows the primary language.

Scopes

help-center:read and help-center:write also grant the matching content scope, so an existing key keeps working unchanged. Create an API key under Settings → API keys. See Authentication.

Key concepts

  • Help center id — every endpoint is scoped to one help center. Call List help centers first to find the id.
  • Categories — every article belongs to exactly one category. Categories can be nested; parent_id is null for top-level ones.
  • Source language — each article records the language it was written in. Every other language is a translation of it. Pass language_code on Create when the article is authored in something other than the help center’s primary language; it cannot be changed later.
  • Draft and published — creating or updating an article writes a new version. Nothing is visible to customers or the AI until you call Publish, which ships the newest stored version. Language states tells you, per language, what is live and what is waiting.
  • Locales — each enabled language has its own published state. Publish releases every locale at once; Publish one locale lets you ship the primary language before translations are reviewed. Only the primary language feeds the AI: publishing a translation while the primary language is still unpublished makes that translation public without adding the article to the AI’s knowledge.
  • Per-language structure — where an article or category sits, and in what order, is recorded per language. A move changes one language’s tree and leaves the others alone.
  • Unpublish, delete, restore — Unpublish takes an article offline while keeping its content and history; unpublishing the primary language also removes it from the AI’s knowledge. Delete is reversible through Restore while the article is still soft-deleted.
Articles are either unpublished or published. There is no separate internal-only visibility today: an article published in its primary language is on the public site and in the AI’s knowledge together. For content the AI should know but customers should not browse, use the AI Training API instead.

Available Endpoints

Help centers

List help centers

Find the help center id

Get

Settings, branding, and custom code

Update

Name, domain, CSS, head scripts

Languages and glossary

Get languages

Served languages and auto-translate

Update languages

Change what is served

Translation jobs

What is still translating

List terms

Terms the translator keeps

Add term

Protect a product name

Update term

Change a term or definition

Delete term

Remove a term

Import terms

Copy the organization glossary

Articles

List

All articles for a language

Get

One article with its versions

Create

New article under a category

Update

New stored version

Publish

Go live in every locale

Publish one locale

Go live in one language

Language states

What is live, what is waiting

Unpublish

Take offline, keep content

Delete

Remove from the tree

Restore

Bring a deleted article back

Versions

Version history

Retranslate

One language or all

Categories

List

All categories for a language

Get

One category with locales

Create

Top-level or nested

Update

Rename or re-icon, per language

Delete

With or without its contents

Restore

Bring a deleted category back

Retranslate

One language or all

Structure

Get tree

One language, whole tree, in order

Move article

Into a category, at a position

Move category

Nest it or lift it to the top

Reorder

Order one category’s children

Media

Upload media

Images for article HTML

List media

Library contents and URLs

Delete media

Remove a file

Best practices

  • Create, review, then publish. An unpublished article never reaches customers or the AI.
  • Article bodies are HTML fragments in content_html, on reads and writes. It replaces the former content_markdown field, which is no longer accepted.
  • Read the article before you update it and send the whole content_html back — an update replaces the body rather than patching it.
  • Read Language states before publishing so you know which locales the call will change.
  • enabled_languages and localizations replace what is stored rather than merging. Read the current value first and send it back whole.
  • Set a stable slug on create when you need permanent URLs; otherwise it is derived from the title.
  • Upload images through Upload media and reference the returned URL in content_html.
  • Embed a video with <div data-embed="youtube" data-embed-id="aqz-KE-bpKQ"></div>. data-embed is youtube, vimeo, loom or wistia; data-embed-id is the video’s id from its link — for an unlisted Vimeo video, 76979871/8272103f6e. An embed with another host or a malformed id is removed on save, and <iframe> is never kept.
  • Unpublish rather than delete when content might come back.