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 identifier

  • uuid: stable unique identifier

  • title, seo_title, slug, description

  • content: HTML string

  • created, last_updated: ISO 8601 timestamps

  • published: boolean

  • visibility: scope such as public

  • collections: 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 base base_url.

  • Keep your editor workflow consistent by toggling published only when ready.

  • If you reorder collections, update each article’s collections array with the desired sort.

Next steps

To list everything at once, see Fetching the knowledge base structure. To group or reorganize content, use Collections.

Was this helpful?