Skip to content

Knowledge articles

PUT/api/v1/kb/articles

Writes knowledge content such as FAQs, returns and shipping. HTML is converted to plain text; content longer than 1500 characters is split into id-1, id-2… chunks. Ids starting with ek- are reserved for entries added by hand in the console: the API cannot write them and a full sync keeps them.

  • Authentication: Authorization: Bearer rz_live_…
  • Scope: ingest:kb
  • Plan feature: none (available on every plan)
  • Idempotency-Key: optional (recommended for retries)
NameInTypeLimitsMeaning
fullquerybooleandefault falsetrue: records missing from the list are deactivated (ek- hand-added knowledge rows are kept). Send the full list in one request (≤1000).

Fields marked * are required. Unknown fields are rejected with 422.

ArticleBatch

FieldTypeLimitsMeaning
items *ApiArticle[]min items 1, max items 10001–1000 records.

ApiArticle

FieldTypeLimitsMeaning
id *stringmin 1, max 200Permanent id (ek- prefix is reserved).
baslik *stringmin 1, max 500Title or question.
icerik *stringmin 1, max 100000Content (may be HTML).
bolumstring | nullmax 2000Section.
urlstring | nullmax 2000Source page.
Terminal window
curl -s -X PUT "$RZ_API/api/v1/kb/articles?full=true" \
-H "Authorization: Bearer $RZ_KEY" -H "Content-Type: application/json" \
-d '{"items": [{"id": "iade-kosullari", "baslik": "İade koşulları", "bolum": "Yardım",
"icerik": "Ürünü teslim aldıktan sonra 14 gün içinde iade edebilirsiniz.",
"url": "https://magaza.example.com/iade"}]}'

Schema: IngestResult

FieldTypeLimitsMeaning
dataset *string
inserted *integer
updated *integer
unchanged *integer
deactivated *integer
skipped *integer
{
"dataset": "bilgi",
"inserted": 1,
"updated": 0,
"unchanged": 0,
"deactivated": 0,
"skipped": 0
}

Error statuses: 401, 403, 404, 413, 422, 429 — see Errors and limits.