List prompt templates
GET/ai/copilot/templates
Returns all saved prompt templates for the tenant. Templates encapsulate reusable prompt structures with variable placeholders and are referenced by template_id when executing copilot queries.
Request
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
category | string | No | Filter templates by category label (e.g. "sales", "support", "hr"). |
page | integer | No | Default: |
Responses
200 Paginated list of prompt templates
Content type application/json, object.
| Field | Type | Required | Description |
|---|---|---|---|
data | array of object · AiPromptTemplateV1 | No | |
data[].id | integer | No | Auto-incremented primary key. |
data[].name | string | No | Human-readable template name. |
data[].category | string, nullable | No | Category label for grouping (e.g. "sales", "support", "hr"). |
data[].prompt_body | string | No | The template prompt body with {{variable_name}} placeholders. |
data[].variables | array of string | No | List of variable names expected by this template. |
data[].is_active | boolean | No | Whether the template is available for use in copilot queries. |
data[].notes | string, nullable | No | |
data[].created_at | string (date-time) | No | |
data[].updated_at | string (date-time) | No | |
meta | object · PaginationMeta | No | |
meta.current_page | integer | No | |
meta.per_page | integer | No | |
meta.total | integer | No |
Example
{
"data": [
{
"id": 12,
"name": "Ticket Summary",
"category": "support",
"prompt_body": "Summarise the last {{n}} support tickets for {{customer_name}} and identify the most common issue.",
"variables": [
"n",
"customer_name"
],
"is_active": true,
"created_at": "2026-02-10T08:00:00Z"
}
],
"meta": {
"current_page": 1,
"per_page": 15,
"total": 28
}
}
Example request
curl -X GET "https://{tenant}.faciotech.net/api/v1/ai/copilot/templates" \
-H "Accept: application/json"