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
| Task | Example | Guide |
|---|---|---|
| Read your help centers | List every help center in your workspace and its languages | Read your help centers |
| Read content | Export every article as markdown, or list your changelog entries | Read articles, collections, and changelog entries |
| Publish Notion changes | Sync your help center from a CI pipeline after you edit Notion | Trigger Notion syncs |
| Manage redirects | Import hundreds of redirects after migrating from another help center | Manage page redirects |
| Change languages | Add a language or turn on automatic translation | Manage languages and automatic translation |
| Change settings | Update SEO titles, llms.txt, the contact form or the changelog | Update help center settings |
| Change branding | Apply your brand colors and theme to several help centers | Customize branding and themes |
| Manage integrations | Configure Google Analytics, Plausible, Intercom or Crisp | Manage integrations |
| Pull analytics | Send visitors, searches and top articles to your BI tool | Get help center analytics |
| Read feedback | Send negative article reactions to Slack every morning | Export 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.
- Permissions: A key or an app can never do more than the person behind it can do in your workspace. See Authenticate with the Notiondesk API using API keys.
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
| Topic | What to know |
|---|---|
| Base URL | https://api.notiondesk.so |
| Authentication | Authorization: Bearer <key or access token>. See API keys and OAuth |
| Scopes | read, write, sync and admin. Each route requires one |
| Versioning | Optional nd-version header |
| Format | JSON request and response bodies with snake_case field names |
| Pagination | Cursor based: page_size (1 to 100, default 20) and cursor. See Paginate and version requests |
| Errors | One 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 API | Workspace MCP | |
|---|---|---|
| Who calls it | Your code: scripts, CI pipelines, internal tools, partner apps | An AI assistant such as Claude, ChatGPT, Cursor or VS Code |
| How it signs in | A workspace API key, or an OAuth access token | OAuth, through your AI client |
| Best for | Repeatable, deterministic automation | Conversational work: "find the articles readers dislike and suggest fixes" |
Notiondesk API endpoint
| Method | Path | Scope | Guide |
|---|---|---|---|
GET | /sites | read | Help centers |
GET | /sites/{site_id} | read | Help centers |
GET | /sites/{site_id}/sync-status | read | Help centers |
GET | /sites/{site_id}/articles | read | Content |
GET | /sites/{site_id}/articles/{article_id} | read | Content |
GET | /sites/{site_id}/categories | read | Content |
GET | /sites/{site_id}/categories/{category_id} | read | Content |
GET | /sites/{site_id}/changelog | read | Content |
POST | /sites/{site_id}/sync | sync | Syncs |
POST | /sites/{site_id}/articles/{article_id}/sync | sync | Syncs |
POST | /sites/{site_id}/categories/{category_id}/sync | sync | Syncs |
PATCH | /sites/{site_id}/settings/auto-sync | sync | Syncs |
GET | /sites/{site_id}/page-redirects | read | Redirects |
POST | /sites/{site_id}/page-redirects | write | Redirects |
PATCH | /sites/{site_id}/page-redirects/{redirect_id} | write | Redirects |
DELETE | /sites/{site_id}/page-redirects/{redirect_id} | admin | Redirects |
PATCH | /sites/{site_id}/settings/supported-languages | write | Languages |
PATCH | /sites/{site_id}/settings/auto-translate | write | Languages |
PATCH | /sites/{site_id}/settings/content | write | Settings |
PATCH | /sites/{site_id}/settings/ai-optimization | write | Settings |
PATCH | /sites/{site_id}/settings/contact-form | write | Settings |
PATCH | /sites/{site_id}/settings/changelog | write | Settings |
GET | /sites/{site_id}/settings/customize | read | Branding |
PATCH | /sites/{site_id}/settings/customize | admin | Branding |
GET | /sites/{site_id}/themes | read | Branding |
GET | /sites/{site_id}/integrations | read | Integrations |
PATCH | /sites/{site_id}/integrations/{type} | admin | Integrations |
POST | /sites/{site_id}/integrations/{type}/disable | admin | Integrations |
GET | /sites/{site_id}/analytics/{report} | read | Analytics |
GET | /sites/{site_id}/feedback | read | Feedback |
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?
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.