Creates a knowledge-base article with localized lifecycle variants, optional category and owner assignments, and stable tags.
/api/kb/articlesCreates a knowledge-base article with localized lifecycle variants, optional category and owner assignments, and stable tags. Referenced categories and operators must belong to the authenticated organization. Published translations are queued for chunking and embedding after the article is stored.
Bearer API key or X-API-Key header.knowledge-base:writeautomation_api)application/json
TypeScript Definitions
Use the request body type in TypeScript.
Request body accepted by this operation.
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
{
"id": "b9a6e922-23ed-4dde-99e8-76d0cf2a0038",
"orgId": "8ea0b557-d794-41ce-b86e-44f4780da2b5",
"categoryId": "6ecda99e-e055-46bd-b0fb-d33ed475b00b",
"tags": [
"billing",
"refund"
],
"title": "How refunds work",
"slug": "how-refunds-work",
"content": "Refunds are reviewed and returned to the original payment method.",
"status": "published",
"locale": "en",
"fallbackUsed": false,
"translations": [
{
"id": "a5bd4fbf-3bc3-414a-87ca-dd3f96098ea3",
"locale": "en",
"status": "published",
"sourceLocale": null,
"machineTranslatedAt": null,
"reviewedAt": null,
"reviewedBy": null,
"title": "How refunds work",
"slug": "how-refunds-work",
"content": "Refunds are reviewed and returned to the original payment method.",
"createdAt": "2026-08-03T18:00:00.000Z",
"updatedAt": "2026-08-03T18:00:00.000Z"
}
],
"deletedAt": null,
"createdAt": "2026-08-03T18:00:00.000Z",
"updatedAt": "2026-08-03T18:00:00.000Z",
"ownerOperatorId": "3f042a6a-579c-4c21-9fd4-c3a8323d5caf",
"ownerName": "Alex Morgan",
"feedback": {
"helpfulCount": 1,
"notHelpfulCount": 1,
"feedbackCount": 1,
"helpfulnessPercent": 1
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"correlationId": "req_01K0MANAGEMENT401"
}
}{
"error": {
"code": "INTEGRATION_MODULE_REQUIRED",
"message": "The automation API module is required.",
"details": {
"module": "automation_api",
"feature": "public_api"
},
"correlationId": "req_01K0MANAGEMENT402"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "The caller lacks the required role or API-key scope.",
"correlationId": "req_01K0MANAGEMENT403"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "The requested resource was not found.",
"correlationId": "req_01K0MANAGEMENT404"
}
}{
"error": {
"code": "CONFLICT",
"message": "The requested change conflicts with current resource state.",
"correlationId": "req_01K0MANAGEMENT409"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "The request payload is invalid.",
"details": {
"field": "name"
},
"correlationId": "req_01K0MANAGEMENT422"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests.",
"correlationId": "req_01K0MANAGEMENT429"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}curl --request POST \
'https://api.convor.io/api/kb/articles' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer convor_sk_...' \
--header 'Content-Type: application/json' \
--data '{
"categoryId": "6ecda99e-e055-46bd-b0fb-d33ed475b00b",
"ownerOperatorId": "3f042a6a-579c-4c21-9fd4-c3a8323d5caf",
"tags": [
"billing",
"refund"
],
"translations": [
{
"locale": "en",
"status": "published",
"title": "How refunds work",
"slug": "how-refunds-work",
"content": "Refunds are reviewed and returned to the original payment method."
}
]
}'const response = await fetch("https://api.convor.io/api/kb/articles", {
method: "POST",
headers: {
"Accept": "application/json",
"Authorization": "Bearer convor_sk_...",
"Content-Type": "application/json"
},
body: JSON.stringify({
"categoryId": "6ecda99e-e055-46bd-b0fb-d33ed475b00b",
"ownerOperatorId": "3f042a6a-579c-4c21-9fd4-c3a8323d5caf",
"tags": [
"billing",
"refund"
],
"translations": [
{
"locale": "en",
"status": "published",
"title": "How refunds work",
"slug": "how-refunds-work",
"content": "Refunds are reviewed and returned to the original payment method."
}
]
}),
});
const contentType = response.headers.get("content-type") ?? "";
const data = response.status === 204
? null
: contentType.includes("json")
? await response.json()
: contentType.startsWith("text/")
? await response.text()
: await response.blob();
if (!response.ok) {
const message = typeof data === "object" && data !== null
&& "error" in data && typeof data.error === "object"
&& data.error !== null && "message" in data.error
? String(data.error.message)
: "Convor API request failed (" + response.status + ")";
throw new Error(message);
}
console.log(data);Was this page helpful?
Unique identifier of the related category.
Unique identifier of the related owner operator.
Tags assigned to this resource.
Localized variants for this resource.