Articles
Articles are the core content of your knowledge base. With the API you can fetch a single article, create new ones, update existing ones, and delete them when no longer needed. This page shows each operation with minimal, production-ready examples.
Article object
Articles include metadata and an HTML body. Common fields are:
id
: numeric identifieruuid
: stable unique identifiertitle
,seo_title
,slug
,description
content
: HTML stringcreated
,last_updated
: ISO 8601 timestampspublished
: booleanvisibility
: scope such as publiccollections
: array of objects like{ "collection_id": <number>, "sort": <number> }
Authentication
Include your API key in the X-Api-Key
header for every request.
curl -H "X-Api-Key: sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ https://api.getfernand.com/knowledge/articles/123
Fetch an article
GET /knowledge/articles/{article_id}
curl -H "X-Api-Key: sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ https://api.getfernand.com/knowledge/articles/<ARTICLE_ID>
Example trimmed response with placeholders:
{ "id": 101, "uuid": "123e4567-e89b-12d3-a456-426614174000", "title": "Sample article", "seo_title": "Sample article", "slug": "sample-article", "description": null, "content": "<p>This is the HTML body of the article</p>", "created": "2023-01-01T10:00:00Z", "last_updated": "2023-01-10T12:00:00Z", "published": true, "visibility": "public", "collections": [{ "collection_id": 10, "sort": 1 }] }
Create an article
Create articles with an POST
request to the collection endpoint root. Send only the fields you want to set. HTML must be escaped in JSON strings.
POST /knowledge/articles
curl -X POST \ -H "X-Api-Key: sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "title": "New article", "seo_title": "New article", "slug": "new-article", "description": "Short summary", "content": "<p>Hello world from the knowledge base</p>", "published": false, "visibility": "public", "collections": [ { "collection_id": 10, "sort": 1 } ] }' \ https://api.getfernand.com/knowledge/articles
Update an article
Update any field via PATCH
on the resource URL. Partial updates are supported. Slug changes may affect links, so update your consumers accordingly.
PATCH /knowledge/articles/{article_id}
curl -X PATCH \ -H "X-Api-Key: sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "title": "Sample article updated", "content": "<p>Updated HTML body</p>", "published": true, "collections": [ { "collection_id": 10, "sort": 1 }, { "collection_id": 12, "sort": 2 } ] }' \ https://api.getfernand.com/knowledge/articles/<ARTICLE_ID>
Delete an article
Deletion is performed via a DELETE
call. You don't need to pass an extra body.
DELETE /knowledge/articles/{article_id}
curl -X DELETE \ -H "X-Api-Key: sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ https://api.getfernand.com/knowledge/articles/<ARTICLE_ID>
Status codes and common errors
200 on successful reads and updates
201 may be returned on creation
204 may be returned on deletion without a body
400 invalid payload or HTML not accepted
401 missing or invalid API key
404 article not found
409 slug conflict or duplicate constraint
Tips
Escape HTML in JSON strings for
content
.Use
slug
as your stable link in conjunction with the knowledge basebase_url
.Keep your editor workflow consistent by toggling
published
only when ready.If you reorder collections, update each article’s
collections
array with the desiredsort
.
Next steps
To list everything at once, see Fetching the knowledge base structure. To group or reorganize content, use Collections.