List Chatbots
Returns a paginated list of all chatbots in the workspace.
GET /api/dev/v1/chatbots Authorization: Bearer <api-key>GET /api/dev/v1/chatbots Authorization: Bearer <api-key>
Query Parameters
Parameters
limitintegeroptionaldefault: 29Number of results per page. Min 1, max 37.
cursorstringoptionalOpaque pagination cursor returned from a previous response's next_cursor field.
curl -X GET "http://localhost:3000/api/dev/v1/chatbots?limit=20" \ -H "Authorization: Bearer <your-api-key>"curl -X GET "http://localhost:3000/api/dev/v1/chatbots?limit=20" \ -H "Authorization: Bearer <your-api-key>"
Response - 200 OK
{ "items": [ { "id": "01JMXYZ...", "name": "Support Bot", "description": "Handles customer support queries", "is_active": true, "created_at": "2026-01-10T12:00:00Z" } ], "next_cursor": "eyJpZCI6IjAxSk1YWVoifQ==", "total": 5 }{ "items": [ { "id": "01JMXYZ...", "name": "Support Bot", "description": "Handles customer support queries", "is_active": true, "created_at": "2026-01-10T12:00:00Z" } ], "next_cursor": "eyJpZCI6IjAxSk1YWVoifQ==", "total": 5 }
Create Chatbot
Creates a new chatbot in the workspace.
POST /api/dev/v1/chatbots Authorization: Bearer <api-key> Content-Type: application/jsonPOST /api/dev/v1/chatbots Authorization: Bearer <api-key> Content-Type: application/json
Request Body
Body
namestringrequiredChatbot display name. Must be unique within the workspace.
descriptionstringoptionalOptional description of the chatbot's purpose.
categorystringoptionalOptional category label (e.g. support, sales, onboarding).
curl -X POST http://localhost:3000/api/dev/v1/chatbots \ -H "Authorization: Bearer <your-api-key>" \ -H "Content-Type: application/json" \ -d '{ "name": "Support Bot", "description": "Handles tier-1 customer support", "category": "support" }'curl -X POST http://localhost:3000/api/dev/v1/chatbots \ -H "Authorization: Bearer <your-api-key>" \ -H "Content-Type: application/json" \ -d '{ "name": "Support Bot", "description": "Handles tier-1 customer support", "category": "support" }'
Response - 201 Created
{ "id": "01JMXYZ123ABC", "workspace_id": "01JMWXY456DEF", "name": "Support Bot", "description": "Handles tier-1 customer support", "category": "support", "webhook_secret": "whsec_abc123...", "is_active": true, "created_at": "2026-02-01T10:30:00Z", "updated_at": null }{ "id": "01JMXYZ123ABC", "workspace_id": "01JMWXY456DEF", "name": "Support Bot", "description": "Handles tier-1 customer support", "category": "support", "webhook_secret": "whsec_abc123...", "is_active": true, "created_at": "2026-02-01T10:30:00Z", "updated_at": null }
Get Chatbot
Retrieves a single chatbot by ID.
GET /api/dev/v1/chatbots/{chatbot_id} Authorization: Bearer <api-key>GET /api/dev/v1/chatbots/{chatbot_id} Authorization: Bearer <api-key>
curl -X GET http://localhost:3000/api/dev/v1/chatbots/<chatbot-id> \ -H "Authorization: Bearer <your-api-key>"curl -X GET http://localhost:3000/api/dev/v1/chatbots/<chatbot-id> \ -H "Authorization: Bearer <your-api-key>"
Response - 200 OK - returns a ChatbotResponse object (same shape as Create response above).
Get Chatbot With Stats
Returns the chatbot along with usage statistics.
GET /api/dev/v1/chatbots/{chatbot_id}/stats Authorization: Bearer <api-key>GET /api/dev/v1/chatbots/{chatbot_id}/stats Authorization: Bearer <api-key>
curl -X GET http://localhost:3000/api/dev/v1/chatbots/<chatbot-id>/stats \ -H "Authorization: Bearer <your-api-key>"curl -X GET http://localhost:3000/api/dev/v1/chatbots/<chatbot-id>/stats \ -H "Authorization: Bearer <your-api-key>"
Response - 200 OK
{ "id": "01JMXYZ123ABC", "name": "Support Bot", "is_active": true, "stats": { "total_conversations": 1240, "total_messages": 8765, "active_users_7d": 342 }, "created_at": "2026-02-01T10:30:00Z" }{ "id": "01JMXYZ123ABC", "name": "Support Bot", "is_active": true, "stats": { "total_conversations": 1240, "total_messages": 8765, "active_users_7d": 342 }, "created_at": "2026-02-01T10:30:00Z" }
Update Chatbot
Updates a chatbot's name, description, or category. Only include fields you want to change.
PATCH /api/dev/v1/chatbots/{chatbot_id} Authorization: Bearer <api-key> Content-Type: application/jsonPATCH /api/dev/v1/chatbots/{chatbot_id} Authorization: Bearer <api-key> Content-Type: application/json
Request Body
Body (all fields optional)
namestringoptionaldescriptionstringoptionalcategorystringoptionalcurl -X PATCH http://localhost:3000/api/dev/v1/chatbots/<chatbot-id> \ -H "Authorization: Bearer <your-api-key>" \ -H "Content-Type: application/json" \ -d '{"name": "Renamed Support Bot"}'curl -X PATCH http://localhost:3000/api/dev/v1/chatbots/<chatbot-id> \ -H "Authorization: Bearer <your-api-key>" \ -H "Content-Type: application/json" \ -d '{"name": "Renamed Support Bot"}'
Response - 200 OK - returns the updated ChatbotResponse.
Delete Chatbot
Permanently deletes a chatbot and all its associated flows, conversations, and integrations.
DELETE /api/dev/v1/chatbots/{chatbot_id} Authorization: Bearer <api-key>DELETE /api/dev/v1/chatbots/{chatbot_id} Authorization: Bearer <api-key>
curl -X DELETE http://localhost:3000/api/dev/v1/chatbots/<chatbot-id> \ -H "Authorization: Bearer <your-api-key>"curl -X DELETE http://localhost:3000/api/dev/v1/chatbots/<chatbot-id> \ -H "Authorization: Bearer <your-api-key>"
Response - 204 No Content
Irreversible action
Deleting a chatbot permanently removes all flows, conversations, integrations, and analytics data attached to it. This action cannot be undone.
Chatbot Object
ChatbotResponse fields
idstringworkspace_idstringnamestringdescriptionstringcategorystringwebhook_secretstringis_activebooleancreated_atstringupdated_atstringnull if never updated.