Get started with the Notiondesk REST API

Use the Notiondesk REST API to read help center content, manage redirects and settings, pull analytics, and trigger Notion syncs from code.

5 min read

The Notiondesk REST API lets your own code operate your help centers. You can list your help centers, read their articles, collections and changelog, manage page redirects, change settings and branding, pull analytics and reader feedback, and trigger syncs from Notion.

This article explains what the Notiondesk API can do, who can use it, and how to make your first request in a few minutes.

What you can do with the Notiondesk API

TaskExampleGuide
Read your help centersList every help center in your workspace and its languagesRead your help centers
Read contentExport every article as markdown, or list your changelog entriesRead articles, collections, and changelog entries
Publish Notion changesSync your help center from a CI pipeline after you edit NotionTrigger Notion syncs
Manage redirectsImport hundreds of redirects after migrating from another help centerManage page redirects
Change languagesAdd a language or turn on automatic translationManage languages and automatic translation
Change settingsUpdate SEO titles, llms.txt, the contact form or the changelogUpdate help center settings
Change brandingApply your brand colors and theme to several help centersCustomize branding and themes
Manage integrationsConfigure Google Analytics, Plausible, Intercom or CrispManage integrations
Pull analyticsSend visitors, searches and top articles to your BI toolGet help center analytics
Read feedbackSend negative article reactions to Slack every morningExport reader feedback

For ready-to-use scripts, see Automate common help center tasks with the Notiondesk API.

Who can use the Notiondesk API

  • Plan: API access is included in the Enterprise plans.
  • Creating keys: Workspace owners and Admins create API keys in the dashboard.

Make your first Notiondesk API request

1. Create an API key

In your Notiondesk dashboard, open Settings, then Developers > API keys, and click Create key. Give it a label, select the read scope, and copy the key when it is shown. The key starts with nd_wsk_ and is shown only once.

Store it in an environment variable:

export NOTIONDESK_API_KEY="nd_wsk_..."

2. List your help centers

curl "<https://api.notiondesk.so/sites>" \
  -H "Authorization: Bearer $NOTIONDESK_API_KEY" \
  -H "nd-version: 2026-10-16"

The response lists every help center in your workspace:

{
  "object": "list",
  "data": [
    {
      "id": "c74781f6-1aea-4e17-ab23-bbb8b4d174b6",
      "full_domain": "help.example.com",
      "enabled": true,
      "default_locale": "en",
      "locales": ["en", "fr"]
    }
  ],
  "has_more": false,
  "next_cursor": null
}

3. List the articles of a help center

curl "<https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/articles?page_size=10>" \
  -H "Authorization: Bearer $NOTIONDESK_API_KEY" \
  -H "nd-version: 2026-10-16"

That's it! You are reading your help center from code.

Notiondesk API basics

TopicWhat to know
Base URLhttps://api.notiondesk.so
AuthenticationAuthorization: Bearer <key or access token>. See API keys and OAuth
Scopesread, write, sync and admin. Each route requires one
VersioningOptional nd-version header
FormatJSON request and response bodies with snake_case field names
PaginationCursor based: page_size (1 to 100, default 20) and cursor. See Paginate and version requests
ErrorsOne JSON envelope with a machine-readable code. See Handle errors, rate limits, and retries

Notiondesk API or Workspace MCP?

Notiondesk offers two ways to operate your help centers outside the dashboard. They reach the same features through different doors.

Notiondesk REST APIWorkspace MCP
Who calls itYour code: scripts, CI pipelines, internal tools, partner appsAn AI assistant such as Claude, ChatGPT, Cursor or VS Code
How it signs inA workspace API key, or an OAuth access tokenOAuth, through your AI client
Best forRepeatable, deterministic automationConversational work: "find the articles readers dislike and suggest fixes"

Notiondesk API endpoint

MethodPathScopeGuide
GET/sitesreadHelp centers
GET/sites/{site_id}readHelp centers
GET/sites/{site_id}/sync-statusreadHelp centers
GET/sites/{site_id}/articlesreadContent
GET/sites/{site_id}/articles/{article_id}readContent
GET/sites/{site_id}/categoriesreadContent
GET/sites/{site_id}/categories/{category_id}readContent
GET/sites/{site_id}/changelogreadContent
POST/sites/{site_id}/syncsyncSyncs
POST/sites/{site_id}/articles/{article_id}/syncsyncSyncs
POST/sites/{site_id}/categories/{category_id}/syncsyncSyncs
PATCH/sites/{site_id}/settings/auto-syncsyncSyncs
GET/sites/{site_id}/page-redirectsreadRedirects
POST/sites/{site_id}/page-redirectswriteRedirects
PATCH/sites/{site_id}/page-redirects/{redirect_id}writeRedirects
DELETE/sites/{site_id}/page-redirects/{redirect_id}adminRedirects
PATCH/sites/{site_id}/settings/supported-languageswriteLanguages
PATCH/sites/{site_id}/settings/auto-translatewriteLanguages
PATCH/sites/{site_id}/settings/contentwriteSettings
PATCH/sites/{site_id}/settings/ai-optimizationwriteSettings
PATCH/sites/{site_id}/settings/contact-formwriteSettings
PATCH/sites/{site_id}/settings/changelogwriteSettings
GET/sites/{site_id}/settings/customizereadBranding
PATCH/sites/{site_id}/settings/customizeadminBranding
GET/sites/{site_id}/themesreadBranding
GET/sites/{site_id}/integrationsreadIntegrations
PATCH/sites/{site_id}/integrations/{type}adminIntegrations
POST/sites/{site_id}/integrations/{type}/disableadminIntegrations
GET/sites/{site_id}/analytics/{report}readAnalytics
GET/sites/{site_id}/feedbackreadFeedback

Common questions

Can I create or edit articles with the Notiondesk API?

No. Articles, collections and changelog entries are written in Notion, and each sync overwrites what Notiondesk stores. Edit the Notion page, with the Notion editor or the Notion API, then call the sync trigger to publish the change.

Does one API key work for all my help centers?

Yes. A workspace API key works for every help center in its workspace. Each request names the help center in its path, for example /sites/{site_id}/articles.

Where do I find a help center's site_id?

Call GET /sites to list your help centers with their id. It is also the identifier after /s/ in your dashboard's address bar.

What's next

Related articles

Was this page helpful?

Still need help? Ask us