Returns a paginated list of canned responses resolved for the requested locale.
/api/canned-responsesReturns a paginated list of canned responses resolved for the requested locale. Filter by category, text, shortcut, active state, or locale, then paginate with either page or offset. Missing translations follow the documented locale fallback rules.
Bearer API key or X-API-Key header.canned-responses:readautomation_api)Maximum number of resources to return.
One-based page number.
Zero-based number of resources to skip.
Query parameter. BCP 47 locale or language tag used for localized content.
Query parameter. Unique identifier of the related category.
Query parameter. Search text.
Query parameter. Shortcut used to insert this content.
Query parameter. Whether to include inactive.
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
{
"data": [
{
"id": "998ea84d-22c1-43aa-bfd5-9e110cb36c01",
"orgId": "8ea0b557-d794-41ce-b86e-44f4780da2b5",
"key": "refund-approved",
"categoryId": "b8ec53aa-0ca2-49bb-b8f6-7458ab50260c",
"category": "Billing",
"locale": "en",
"title": "Refund approved",
"content": "Your refund has been approved and will be processed shortly.",
"shortcut": "/refund-approved",
"fallbackUsed": false,
"active": true,
"tags": [
"billing",
"refund"
],
"usageCount": 0,
"lastUsedAt": null,
"sortOrder": 10,
"translations": [
{
"id": "7ff62fc6-c0ac-49e9-8419-f68b6d845aa0",
"locale": "en",
"status": "published",
"sourceLocale": null,
"machineTranslatedAt": null,
"reviewedAt": null,
"reviewedBy": null,
"title": "Refund approved",
"content": "Your refund has been approved and will be processed shortly.",
"createdAt": "2026-08-03T18:00:00.000Z",
"updatedAt": "2026-08-03T18:00:00.000Z"
}
],
"shortcuts": [
{
"id": "b58be6ea-6f19-409e-a9a6-985c5c399ee0",
"locale": "en",
"shortcut": "/refund-approved",
"createdAt": "2026-08-03T18:00:00.000Z",
"updatedAt": "2026-08-03T18:00:00.000Z"
}
],
"createdAt": "2026-08-03T18:00:00.000Z",
"updatedAt": "2026-08-03T18:00:00.000Z"
}
],
"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/canned-responses' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer convor_sk_...'const response = await fetch("https://api.convor.io/api/canned-responses", {
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?