---
title: "Create article"
method: POST
path: "/kb-articles"
tags: ["Articles"]
---

# Create article

`POST /kb-articles`

## Request

- Base URL: `https://api.weav.com/v1`
- URL: `https://api.weav.com/v1/kb-articles`
- Auth: HTTP bearer

Lazily creates the organization's knowledge base if this is its first write. Accepts one or more locale translations.

## Request body

- object
  - `category_id` string, uuid, nullable
  - `status` 'draft' | 'published', nullable: Defaults to draft
  - `translations` object[], required
    - `locale` string, required
    - `title` string, required
    - `content` string, required: Markdown body
    - `excerpt` string, nullable: Also used as the meta description
    - `slug` string, nullable: Auto-generated from title when omitted
    - `seo_title` string, nullable: Search and social title; the page heading remains title
    - `noindex` boolean: Hide this translation from search engines
    - `canonical_url` string, uri, nullable: Absolute HTTP(S) URL
    - `og_image_url` string, uri, nullable: HTTPS social preview image

## Response `201`

Created

- KbArticle
  - `id` string, uuid
  - `category_id` string, uuid, nullable
  - `position` integer, nullable
  - `status` 'draft' | 'published'
  - `published_at` string, date-time, nullable
  - `source` 'manual' | 'auto_generated' | 'github' | 'mcp'
  - `translations` KbArticleTranslation[]
    - `locale` string
    - `title` string
    - `slug` string
    - `content` string: Markdown body
    - `excerpt` string, nullable: Also used as the meta description
    - `seo_title` string, nullable: Search and social title; the page heading remains title
    - `noindex` boolean: Hide this translation from search engines
    - `canonical_url` string, uri, nullable
    - `og_image_url` string, uri, nullable
    - `created_at` string, date-time, nullable
    - `updated_at` string, date-time, nullable
  - `created_at` string, date-time, nullable
  - `updated_at` string, date-time, nullable

## Other responses

- `401`: Unauthorized
- `422`: Invalid category, validation error, duplicate locale, or slug already taken

---

[API](https://skmtc.dev/weav/apis/weav-api.md) · [All operations](https://skmtc.dev/weav/apis/weav-api/llms.txt) · [OpenAPI document](https://skmtc.dev/weav/apis/weav-api/revisions/15970f126c0e?raw)
