Returns a paginated organization-owned article list resolved for the requested locale. Filter by publication status and category, then paginate with `offset` and `limit`; results include localization lifecycle metadata and are ordered by the configured service query. This read-only operation is safe to retry. Access requires an active authenticated operator session or an organization API key with the `knowledge-base:read` scope. API-key calls also require the automation API module. Data is isolated to the authenticated organization; identifiers from another organization or site are not disclosed.
/api/kb/articlesOrganization API key supplied as Authorization: Bearer convor_sk_....
In: header
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
{
"data": [
{
"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",
"title": "How refunds work",
"slug": "how-refunds-work",
"content": "Refunds are reviewed and returned to the original payment method.",
"sourceLocale": null,
"machineTranslatedAt": null,
"reviewedAt": null,
"reviewedBy": null,
"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": 0,
"feedbackCount": 1,
"helpfulnessPercent": 100
}
}
],
"pagination": {
"totalItems": 1,
"page": 1,
"pageSize": 20,
"hasNextPage": false,
"hasPrevPage": false
}
}{
"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": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"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 GET \
'https://api.convor.io/api/kb/articles' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer convor_sk_...'const response = await fetch("https://api.convor.io/api/kb/articles", {
method: "GET",
headers: {
"Accept": "application/json",
"Authorization": "Bearer convor_sk_..."
},
});
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?
List localized categories with published article counts
Returns a paginated collection view of organization-owned categories resolved for the requested locale, with the number of published articles in each category. Use `offset` and `limit` for pagination. This read-only operation is safe to retry. Access requires an active authenticated operator session or an organization API key with the `knowledge-base:read` scope. API-key calls also require the automation API module. Data is isolated to the authenticated organization; identifiers from another organization or site are not disclosed.
List localized knowledge-base categories
Returns all organization-owned knowledge-base categories resolved for the requested locale, including lifecycle metadata and stored translations. The operation does not include public article bodies and is safe to retry. Access requires an active authenticated operator session or an organization API key with the `knowledge-base:read` scope. API-key calls also require the automation API module. Data is isolated to the authenticated organization; identifiers from another organization or site are not disclosed.