> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sayvyai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create quick reply

> Register a new canned message shortcut and template for your organization

Create a new quick reply snippet containing a trigger shortcut (e.g. `/welcome`) and its message content. Creating a quick reply automatically busts the organization's snippet Redis cache.

***

### Authentication

This endpoint requires Bearer token authentication.

```http theme={null}
Authorization: Bearer <token>
```

| Header          | Type     | Required | Description                                     | Format           |
| :-------------- | :------- | :------- | :---------------------------------------------- | :--------------- |
| `Authorization` | `string` | **Yes**  | Scoped organization API key or Bearer JWT token | `Bearer <token>` |

***

### Request Body

<ParamField header="Authorization" type="string" required>
  Bearer token for authentication. Format: `Bearer <token>`.
</ParamField>

<ParamField body="shortcut" type="string" required>
  Keyboard trigger shortcut prefixed with a slash (1 to 100 characters). Example: `/greeting` or `/pricing`.
</ParamField>

<ParamField body="content" type="string" required>
  The expanded text content of the snippet inserted into the chat composer.
</ParamField>

***

### Response Fields

<ResponseField name="id" type="string">
  Generated UUID identifier of the created quick reply.
</ResponseField>

<ResponseField name="shortcut" type="string">
  Assigned shortcut trigger string.
</ResponseField>

<ResponseField name="content" type="string">
  Template body text.
</ResponseField>

<ResponseField name="created_at" type="string">
  ISO 8601 creation timestamp.
</ResponseField>

***

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.sayvy.ai/api/v1/quick-replies" \
    -H "Authorization: Bearer <token>" \
    -H "Content-Type: application/json" \
    -d '{
      "shortcut": "/support-hours",
      "content": "Our live support team is available Monday through Friday from 9:00 AM to 6:00 PM EST."
    }'
  ```

  ```python Python theme={null}
  import requests

  url = "https://api.sayvy.ai/api/v1/quick-replies"
  headers = {
      "Authorization": "Bearer <token>",
      "Content-Type": "application/json"
  }
  payload = {
      "shortcut": "/support-hours",
      "content": "Our live support team is available Monday through Friday from 9:00 AM to 6:00 PM EST."
  }

  response = requests.post(url, headers=headers, json=payload)
  print(response.status_code)
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.sayvy.ai/api/v1/quick-replies", {
    method: "POST",
    headers: {
      "Authorization": "Bearer <token>",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      shortcut: "/support-hours",
      content: "Our live support team is available Monday through Friday from 9:00 AM to 6:00 PM EST."
    })
  });

  const data = await response.json();
  console.log(data);
  ```
</RequestExample>

<ResponseExample>
  ```json 201 Created theme={null}
  {
    "id": "c3f81e19-5d22-48a3-bb90-098716b2ef3a",
    "shortcut": "/support-hours",
    "content": "Our live support team is available Monday through Friday from 9:00 AM to 6:00 PM EST.",
    "created_at": "2026-09-07T15:10:00Z"
  }
  ```

  ```json 422 Unprocessable Entity theme={null}
  {
    "detail": [
      {
        "loc": ["body", "shortcut"],
        "msg": "field required",
        "type": "value_error.missing"
      }
    ]
  }
  ```
</ResponseExample>
