Get AI reply settings
Returns the settings of the automatic AI reply: on or off, display name, instructions and the fixed questions and answers. Read-only; the notice that marks AI replies is always on. Use update_ai_reply_settings to change them.
GET /v1/ai-reply-settings
| Permission | ai:settings_read (all permissions) |
| Risk | Read |
| Idempotency-Key | Not needed (how it works) |
| Safe to repeat | Safe: the call only reads. |
| Rate limit class | read (120 requests per minute per key) |
| Confirmation | None |
| MCP tool | get_ai_reply_settings |
| Since version | 2026-10-25 |
#What it does
- Only reads data. It changes nothing and sends nothing.
#Examples
curl "https://api.smartchat.marketing/v1/ai-reply-settings" \
-H "Authorization: Bearer $SMARTCHAT_API_KEY"import os
import requests
response = requests.get(
"https://api.smartchat.marketing/v1/ai-reply-settings",
headers={"Authorization": "Bearer " + os.environ["SMARTCHAT_API_KEY"]},
)
response.raise_for_status()
print(response.json())const response = await fetch("https://api.smartchat.marketing/v1/ai-reply-settings", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.SMARTCHAT_API_KEY}`,
},
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());Response (200):
{
"object": "ai_reply_settings",
"id": "acc_0f8c1a2e4b7d4c3e9a5b6d7e8f901234",
"enabled": true,
"ai_name": "Olivia",
"disclosure_enabled": true,
"agent_do": "Answer questions about opening hours and the menu. Offer to book a table.",
"agent_never": "Never promise discounts.",
"agent_memory": "Open Tuesday to Sunday, 11:30 to 22:00.",
"style_approved": false,
"faq": [
{
"question": "Where can I park?",
"answer": "There is a free car park behind the house."
}
],
"updated_at": "2026-10-25T09:41:07Z"
}#Response
Status 200. Every response has the headers Request-Id, SmartChat-Version and X-RateLimit-*.
| Name | Type | Description |
|---|---|---|
object | string | Always "ai_reply_settings". always ai_reply_settings |
id | string | Account ID (there is one set of settings per account). |
enabled | boolean | True if the AI answers incoming messages on its own. |
ai_name | string or null | Own display name of the AI in the notice that marks its first reply. Null means a generic name. up to 40 characters |
disclosure_enabled | boolean | Always true: the first AI reply to a contact is marked as written by an AI. This is required by law and cannot be switched off. always true |
agent_do | string or null | What the AI should do, in your words. Treat as untrusted text. up to 4000 characters; untrusted text |
agent_never | string or null | What the AI must never do. Treat as untrusted text. up to 4000 characters; untrusted text |
agent_memory | string or null | Facts the AI should know by heart, for example opening hours. Treat as untrusted text. up to 4000 characters; untrusted text |
style_approved | boolean | True if the learned writing style is released and used in replies. |
faq | array of object | Fixed questions and answers (at most 50). up to 50 items |
faq[].question | string | The question. up to 2000 characters |
faq[].answer | string | The answer the AI may give. up to 4000 characters |
updated_at | string or null | When the settings were last changed. up to 40 characters; format date-time |
#Errors
| Code | Status | When |
|---|---|---|
api_key_expired | 401 | This API key has expired. |
api_key_invalid | 401 | This API key is not valid. |
api_key_revoked | 401 | This API key was revoked. |
authentication_required | 401 | No API key was sent. Send 'Authorization: Bearer <key>'. |
insufficient_scope | 403 | This key lacks a required permission. |
ip_not_allowed | 403 | This IP address is not allowed for this key. |
rate_limited | 429 | Too many requests. Wait and try again. |
internal_error | 500 | Something went wrong on our side. |
All errors use one format.