# Help center & knowledge base

> Public help center, knowledge base articles, Markdown and llms.txt for AI, and read-only JSON endpoints.

Source: https://tickos.dev/docs/knowledge-base

Every workspace gets a public help center at https://{slug}.tickos.dev, where {slug} is the workspace slug. It can host a knowledge base, a changelog and the customer ticket portal. Articles are written and published in the dashboard (Help Center); this page covers the public URLs and machine-readable outputs you can rely on from other sites, crawlers and AI tools.

## Availability by plan

| Feature | Free | Starter | Pro | Enterprise |
|---|---|---|---|---|
| Help center at {slug}.tickos.dev | Yes | Yes | Yes | Yes |
| Changelog page | Yes | Yes | Yes | Yes |
| Knowledge base | No | No | Yes | Yes |
| Custom domain | No | No | Yes | Yes |
| Remove "Powered by TickOS" (white-label) | No | No | No | Yes |

> **Downgrades:** Plan gating is applied at request time. If a workspace drops below Pro, the knowledge base and its Markdown/llms.txt outputs return 404 and the custom domain stops resolving, even if they are still enabled in settings.

## Public URLs

| URL | Content |
|---|---|
| https://{slug}.tickos.dev | Help center home. |
| /kb | Knowledge base index. Supports ?q={search} and ?category={category_slug}. |
| /kb/{article_slug} | A published article (HTML). |
| /kb/{article_slug}.md | The same article as Markdown (text/markdown). |
| /llms.txt | Index of all published articles for AI tools (llmstxt.org format). |
| /llms-full.txt | Every published article in full, as Markdown, in one file. |
| /changelog | Hosted changelog (when the changelog is enabled). |
| /changelog/{entry_slug} | A single changelog entry. |

The help center must be published (Help Center settings) to be visible. An unpublished help center shows a "coming soon" page instead of its content.

## Custom domain

On Pro and Enterprise you can serve the help center from your own host (for example docs.acme.com). Add the domain in Settings > Help Center > Domains and create the DNS records shown there. Once verified, every URL on this page works on the custom domain with the same paths (/kb, /kb/{article}.md, /llms.txt, /changelog, /book, /embed.js ...). The {slug}.tickos.dev address keeps working as well.

## Markdown and llms.txt

Each article is available as Markdown by appending .md to its URL. The output starts with the title, the excerpt as a blockquote and a Source line pointing to the HTML page:

```bash
curl https://acme.tickos.dev/kb/getting-started.md
```

```markdown
# Getting started

> Set up your account in five minutes.

Source: https://acme.tickos.dev/kb/getting-started

## Create your first project
...
```

/llms.txt lists articles grouped by category, each linking to its .md version with its excerpt. When the changelog or community are enabled they are listed under an "Optional" section. /llms-full.txt concatenates every article (title, category, source URL, excerpt and body) separated by ---.

- /kb/{article}.md, /llms.txt and /llms-full.txt return 404 unless the help center is published and the knowledge base is enabled (Pro and Enterprise).
- Only published articles are included. Articles in hidden categories are excluded (their .md URL returns 404).
- URLs inside the files use the public address of the help center (custom domain when configured).

## Public JSON endpoints

The help center UI uses a small set of unauthenticated JSON endpoints. They are read-only (except for anonymous view/feedback counters) and serve published content only. Call them on the help center host or on tickos.dev:

```http
https://{slug}.tickos.dev/api/portal/{slug}/...
```

### GET /api/portal/{slug}/kb/articles

Lists published articles, 20 per page, ordered by the manual order set in the dashboard and then by publish date (newest first). Returns 404 if the help center is not published or the knowledge base is not enabled. Articles in hidden categories are never returned, even when filtering by their category id.

| Query param | Type | Default | Description |
|---|---|---|---|
| category | string | -- | Category ID (not the slug). Without it, articles in hidden categories are excluded. |
| q | string | -- | Case-insensitive search over title and excerpt. |
| offset | number | 0 | Offset pagination. Page size is fixed at 20. |

```bash
curl "https://acme.tickos.dev/api/portal/acme/kb/articles?q=billing&offset=0"
```

```json
{
  "articles": [
    {
      "id": "…",
      "category_id": "…",
      "title": "Update your billing details",
      "slug": "update-billing-details",
      "excerpt": "Change your card or invoice address.",
      "content_html": "<p>…</p>",
      "views_count": 128,
      "helpful_count": 12,
      "not_helpful_count": 1,
      "published_at": "2026-09-30T10:00:00Z"
    }
  ],
  "hasMore": false
}
```

When hasMore is true, request the next page with offset increased by 20.

### POST /api/portal/{slug}/kb/articles/{id}/view

Increments the view counter of a published article. No body. Returns { "success": true }, or 404 if the article does not exist or is not published, or the help center is unpublished or has the knowledge base disabled. The help center calls it when an article is opened.

### POST /api/portal/{slug}/kb/articles/{id}/feedback

Records a "was this helpful?" vote on a published article. Returns { "success": true }, or 404 if the article is not found or the help center is unpublished or has the knowledge base disabled.

```bash
curl -X POST https://acme.tickos.dev/api/portal/acme/kb/articles/{id}/feedback \
  -H 'Content-Type: application/json' \
  -d '{ "helpful": true }'
```

## Hosted changelog

When the changelog is enabled in Help Center settings, published entries are listed at /changelog and each entry has its own page at /changelog/{entry_slug}. Both return 404 when the changelog is disabled. To render the changelog on your own site instead, or to create and publish entries programmatically, use the Changelog API (/docs/changelog).

## Managing articles

> **Dashboard only:** There is no API-key endpoint to create, edit or delete knowledge base articles or categories. Content is managed in the dashboard (Help Center > Knowledge base). The endpoints above are public and read-only.
