Manage Bots
Every endpoint on this page requires an OAuth2 access token (chatty_oat_...), not an API key. An API key is scoped to one bot and has no concept of "your account" — creating or listing bots needs a principal that spans your whole account. GET/PATCH .../{bot_id} and the analytics/knowledge endpoints also accept an API key, but only for the one bot that key was minted for.
Create a bot
/api/v1/botsRequired scope: write (OAuth2 only)
namestringbodyrequiredwelcome_messagestringbodysystem_instructionsstringbodyselected_modelstringbodyprimary_colorstringbody"#f97316".response_languagestringbody"en".curl -X POST https://api.chatty.personaliai.com/api/v1/bots \
-H "Authorization: Bearer chatty_oat_your_token" \
-H "Content-Type: application/json" \
-d '{"name": "Support Bot", "welcome_message": "Hi! How can I help?"}'List your bots
/api/v1/botsRequired scope: read (OAuth2 only)
Returns every bot your account owns: id, name, welcome_message, primary_color, selected_model, created_at.
Get a bot
/api/v1/bots/{bot_id}Required scope: read
idstringnamestringwelcome_messagestringprimary_colorstringselected_modelstringsystem_instructionsstringwidget_stylestringresponse_languagestringstrict_modebooleanlead_capture_enabledbooleancreated_atstringupdated_atstringUpdate a bot
/api/v1/bots/{bot_id}Required scope: write
Same body fields as Create a bot, plus widget_style, strict_mode, and lead_capture_enabled. Only the fields you send are changed.
curl -X PATCH https://api.chatty.personaliai.com/api/v1/bots/BOT_ID \
-H "Authorization: Bearer chatty_oat_your_token" \
-H "Content-Type: application/json" \
-d '{"primary_color": "#6366f1"}'Add a knowledge source
/api/v1/bots/{bot_id}/knowledgeRequired scope: write
namestringbodyrequiredcontentstringbodyrequiredAnalyze a bot
/api/v1/bots/{bot_id}/analyticsRequired scope: read
total_messagesintegeruser_messagesintegerbot_messagesintegerunique_sessionsintegertotal_leadsintegerGET /api/v1/analytics supports a since filter this endpoint doesn't yet have.