ReaktlyDocs
API Reference

Articles API

Serve published knowledge base articles to help centers, portals, and third-party apps.

Overview

The Articles API exposes published, public articles from a knowledge base as JSON — for help centre widgets, customer portals, and integrations that render their own front end.

  • Base URL: https://api.reaktly.com
  • Scope: articles:read (see Authentication)
  • Only articles with publish status PUBLISHED and visibility PUBLIC are returned.
  • kbId is the knowledge base's UUID.
curl "https://api.reaktly.com/public/knowledge-bases/kb_xyz789/articles?page=1&pageSize=20" \
  -H "x-api-key: YOUR_API_KEY"

Articles

GET /public/knowledge-bases/{kbId}/articles

Paginated list of published articles.

Query parameterTypeDescription
channelstringFilter by delivery channel: ALL, HELP_CENTER, WIDGET, PARTNER_PORTAL, INTERNAL, API
categorySlug / categoryIdstringRestrict to one category
featuredbooleanOnly featured articles
searchstringKeyword search over title, excerpt and body
pagenumber1-based page number (default 1)
pageSizenumberArticles per page (default 20, max 100)
{
  "articles": [
    {
      "id": "pub_123",
      "slug": "how-to-reset-your-password",
      "title": "How to reset your password",
      "contentType": "ARTICLE",
      "excerpt": "Reset your password from the sign-in screen…",
      "body": "Full article text…",
      "imageUrl": "https://cdn.example.com/cover.png",
      "category": { "id": "cat_1", "name": "Account", "slug": "account" },
      "entryPoints": [
        { "id": "ep_1", "question": "I forgot my password", "snippet": "Use the reset link…", "isPrimary": true, "tags": ["login"] }
      ],
      "readingTimeMinutes": 3,
      "publishedAt": "2026-08-01T09:00:00.000Z",
      "updatedAt": "2026-09-10T12:30:00.000Z",
      "helpfulness": { "helpfulCount": 42, "notHelpfulCount": 3 }
    }
  ],
  "total": 128,
  "page": 1,
  "pageSize": 20,
  "totalPages": 7
}

GET /public/knowledge-bases/{kbId}/articles/by-slug/{slug}

A single article by its URL slug. Also increments the article's view count. Returns 404 when the article is not published or not public.

GET /public/knowledge-bases/{kbId}/articles/{publicationId}

A single article by its publication ID. Also increments the view count.

POST /public/knowledge-bases/{kbId}/articles/{publicationId}/feedback

Record whether a reader found the article helpful.

{ "isHelpful": true }

Response 200:

{ "helpfulCount": 43, "notHelpfulCount": 3 }

Categories

GET /public/knowledge-bases/{kbId}/articles/categories

The category tree for navigation, with published article counts and nested children.

[
  {
    "id": "cat_1",
    "name": "Account",
    "slug": "account",
    "description": null,
    "icon": null,
    "articleCount": 12,
    "children": []
  }
]

Questions

Entry-point questions are the fastest discovery path — visitors search a question and jump to the article that answers it.

GET /public/knowledge-bases/{kbId}/articles/questions/search

Query parameterTypeDescription
qstringSearch text, e.g. how do I reset my password
limitnumberMax results (default 10, max 50)
channelstringFilter by delivery channel
categorySlugstringRestrict to one category

Returns matching questions with their snippets.

GET /public/knowledge-bases/{kbId}/articles/questions/popular

Popular questions ranked by how often they are matched — useful for a help centre landing page or the widget's initial state. Takes the same limit, channel and categorySlug parameters.

Question analytics

Two endpoints feed the "popular questions" ranking. Both return 204 No Content:

EndpointCall it when
POST /public/knowledge-bases/{kbId}/articles/questions/{entryPointId}/matchedThe question appeared in your search results
POST /public/knowledge-bases/{kbId}/articles/questions/{entryPointId}/clickedA visitor clicked through to the article (also increments the article's view count)

Errors

StatusMeaning
401Missing or invalid API key
403Key lacks articles:read
404Article not found, or not published and public

On this page