Boards (post categories) organize feedback into distinct containers with their own settings.
- Delete an article
Featurebase API (2026-01-01.nova)
Welcome to the Featurebase API. This API allows you to programmatically interact with your Featurebase organization.
This documentation reflects API version 2026-01-01.nova.
This API uses date-based versioning. Each version is identified by a release date and slug, e.g., 2026-01-01.nova.
Specifying a Version
Include the version in the request header:
Featurebase-Version: 2026-01-01.novaOr set a default version for your organization in the dashboard settings.
Version Compatibility
- Newer versions may add new fields to responses (always backwards-compatible)
- Breaking changes (removed/renamed fields, changed behavior) only occur in new versions
- Your integration will continue to work as long as you pin to a specific version
All API requests require authentication via API key.
Include in headers:
Authorization: Bearer <api-key>Create and manage your API keys in the Featurebase dashboard.
The API uses conventional HTTP response codes to indicate success or failure:
2xx- Success4xx- Client errors (bad request, unauthorized, not found, etc.)5xx- Server errors (internal error)
Error Response Format
All errors follow a consistent format:
{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "Post not found",
"param": "id",
"status": 404
}
}Error Types
| Type | Description |
|---|---|
authentication_error | Authentication failed (401) |
authorization_error | Permission denied (403) |
invalid_request_error | Invalid request parameters or resource not found (400, 404, 410) |
api_error | Server-side error (500) |
rate_limit_error | Too many requests (429) |
Request
Updates an existing article. Only include the fields you wish to update.
id- The unique identifier of the article to update
All fields are optional. Only provided fields will be updated:
title- The new title of the articledescription- The new description of the articlebody- The new HTML content of the articleformatter- Content formatter: "default" or "ai"icon- Updated icon object for the articleparentId- New parent collection IDauthorId- ID of the new author (must be a member of the organization)state- "live" or "draft" - if "live", publishes immediatelytranslations- Dictionary of updated translations keyed by locale
Returns the updated article object with:
id- Unique identifiertitle- Article titledescription- Article descriptionbody- Article content (HTML)slug- URL slugicon- Article icon (emoji or custom)parentId- Parent collection IDhelpCenterId- ID of the help center this article belongs toorganization- Organization IDstate- Article state (live or draft)author- Author information (name, authorId, avatarUrl)translations- Translations for different localescreatedAt- ISO 8601 timestamp when createdupdatedAt- ISO 8601 timestamp when last updated
404- Article not found in your organization's help center
New parent collection ID
ID of the new author (must be a member of the organization)
- Mock serverhttps://docs.featurebase.app/_mock/rest-api/v2/help_center/articles/{id}
- Productionhttps://do.featurebase.app/v2/help_center/articles/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
https://docs.featurebase.app/_mock/rest-api/v2/help_center/articles/1234567 \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-H 'Featurebase-Version: 2026-01-01.nova' \
-d '{
"title": "Updated Getting Started Guide",
"description": "Updated description",
"body": "<p>Updated content.</p>",
"formatter": "default",
"icon": {
"value": "📖",
"type": "emoji"
},
"parentId": "6474684",
"authorId": "507f1f77bcf86cd799439011",
"state": "live",
"translations": {
"bn": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"bs": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"pt-BR": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"bg": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"ca": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"hr": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"cs": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"da": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"nl": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"en": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"et": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"fi": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"fr": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"de": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"el": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"hi": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"hu": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"id": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"it": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"ja": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"ko": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"lv": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"lt": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"ms": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"mn": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"nb": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"pl": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"pt": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"ro": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"ru": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"sr": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"zh-CN": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"sk": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"sl": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"es": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"sw": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"sv": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"th": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"zh-TW": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"tr": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"uk": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
},
"vi": {
"title": "Getting Started Guide",
"description": "Learn how to get started",
"body": "<p>Welcome to our guide.</p>"
}
}
}'Success
Available locales
Published locales
Featurebase URL
External URL
ISO 8601 timestamp when live version was last updated
ISO 8601 timestamp when translation was created
{ "object": "article", "id": "1234567", "title": "Getting Started Guide", "description": "Learn how to get started", "body": "<p>Welcome to our guide.</p>", "slug": "1234567-getting-started-guide", "icon": { "type": "emoji", "value": "📖" }, "parentId": "6474684", "helpCenterId": "j7c5g8ah3ewxp4lo", "organization": "6595518396205e06b897ad65", "state": "live", "defaultLocale": "en", "locale": "en", "availableLocales": [ "en", "de" ], "publishedLocales": [ "en" ], "featurebaseUrl": "https://yourorg.featurebase.app/en/help/articles/1234567-getting-started-guide", "externalUrl": "https://help.yourdomain.com/en/articles/1234567-getting-started-guide", "author": { "name": "John Doe", "authorId": "507f1f77bcf86cd799439011", "avatarUrl": null }, "order": 1, "isPublished": true, "isDraftDiffersFromLive": false, "translations": { "bn": { … }, "bs": { … }, "pt-BR": { … }, "bg": { … }, "ca": { … }, "hr": { … }, "cs": { … }, "da": { … }, "nl": { … }, "en": { … }, "et": { … }, "fi": { … }, "fr": { … }, "de": { … }, "el": { … }, "hi": { … }, "hu": { … }, "id": { … }, "it": { … }, "ja": { … }, "ko": { … }, "lv": { … }, "lt": { … }, "ms": { … }, "mn": { … }, "nb": { … }, "pl": { … }, "pt": { … }, "ro": { … }, "ru": { … }, "sr": { … }, "zh-CN": { … }, "sk": { … }, "sl": { … }, "es": { … }, "sw": { … }, "sv": { … }, "th": { … }, "zh-TW": { … }, "tr": { … }, "uk": { … }, "vi": { … } }, "createdAt": "2024-10-18T12:33:09.099Z", "updatedAt": "2024-10-18T13:03:25.921Z", "liveUpdatedAt": "2024-10-18T13:03:25.921Z", "path": "/getting-started", "surveyId": "6743752ca81ae59d25cf834b", "visibleBy": [ "everyone" ], "translationCreatedAt": "2024-10-18T12:33:09.099Z", "translationUpdatedAt": "2024-10-19T14:22:15.123Z" }
- Mock serverhttps://docs.featurebase.app/_mock/rest-api/v2/help_center/articles/{id}
- Productionhttps://do.featurebase.app/v2/help_center/articles/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
https://docs.featurebase.app/_mock/rest-api/v2/help_center/articles/1234567 \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Featurebase-Version: 2026-01-01.nova'{ "id": "1234567", "object": "article", "deleted": true }
Request
Returns a paginated list of redirect rules within your organization.
Redirect rules map old Help Center URLs to new article or collection destinations, enabling seamless migration from legacy help center systems. Only Help Centers with a custom domain configured support redirect rules.
limit- Number of items to return (1-100, default 10)cursor- Cursor for paginationhelpCenterId- Filter by help center IDlocale- Filter by locale codetargetType- Filter by target type ("article" or "collection")
Returns a list object with:
object- Always "list"data- Array of redirect rule objectsnextCursor- Cursor for next page (null if no more results)
Each redirect rule includes:
id- Unique identifier (MongoDB ObjectId)helpCenterId- Help center this rule belongs tolocale- Locale code used to resolve the target translationfromUrl- Canonical source URL (query/hash stripped, hostname lowercased)targetType- "article" or "collection"targetId- ID of the target article or collectioncreatedAt- ISO 8601 timestamp when createdupdatedAt- ISO 8601 timestamp when last updated
A limit on the number of objects to be returned, between 1 and 100.
An opaque cursor for pagination. Use the nextCursor value from a previous response to fetch the next page.
Filter redirect rules by help center ID
Filter redirect rules by locale
- Mock serverhttps://docs.featurebase.app/_mock/rest-api/v2/help_center/redirect_rules
- Productionhttps://do.featurebase.app/v2/help_center/redirect_rules
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.featurebase.app/_mock/rest-api/v2/help_center/redirect_rules?limit=10&cursor=eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9&helpCenterId=ox6qrqprmsuqaunj&locale=en&targetType=article' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Featurebase-Version: 2026-01-01.nova'Success
Array of redirect rules
Locale code for the redirect rule
Canonical source URL being redirected from (query and hash stripped)
Type of content the redirect points to
ISO 8601 timestamp when created
{ "object": "list", "data": [], "nextCursor": null }
Comments
Threaded discussions on posts and changelogs. Comments support voting, moderation, and privacy controls.