curl https://zeplo.ai/api/sites \
-H "Cookie: connect.sid=s%3A7HImZ-T2BxWSbUsf9dtWdOlBW4rVuORO.5J0Do0NyvBu%2BkTvu1aHvtNs00BKhkpUKTwiokLS0cpw"
{
"success": true,
"data": [
{
"id": 1,
"name": "Main Website",
"url": "https://example.com",
"widgetColor": "#16A34A",
"welcomeMessage": "Hi! How can we help?",
"position": "bottom-right",
"isActive": true,
"createdAt": "2026-01-01T08:00:00Z"
}
]
}
Knowledge Base & Training
GET Sites & Widget
Manage chat widget sites and configuration.
GET
/
api
/
sites
curl https://zeplo.ai/api/sites \
-H "Cookie: connect.sid=s%3A7HImZ-T2BxWSbUsf9dtWdOlBW4rVuORO.5J0Do0NyvBu%2BkTvu1aHvtNs00BKhkpUKTwiokLS0cpw"
{
"success": true,
"data": [
{
"id": 1,
"name": "Main Website",
"url": "https://example.com",
"widgetColor": "#16A34A",
"welcomeMessage": "Hi! How can we help?",
"position": "bottom-right",
"isActive": true,
"createdAt": "2026-01-01T08:00:00Z"
}
]
}
List sites
GET /api/sites
Manage embeddable chat widget sites.
Headers
string
required
Session cookie (login via POST /api/auth/login)
curl https://zeplo.ai/api/sites \
-H "Cookie: connect.sid=s%3A7HImZ-T2BxWSbUsf9dtWdOlBW4rVuORO.5J0Do0NyvBu%2BkTvu1aHvtNs00BKhkpUKTwiokLS0cpw"
{
"success": true,
"data": [
{
"id": 1,
"name": "Main Website",
"url": "https://example.com",
"widgetColor": "#16A34A",
"welcomeMessage": "Hi! How can we help?",
"position": "bottom-right",
"isActive": true,
"createdAt": "2026-01-01T08:00:00Z"
}
]
}
Create site
POST /api/sites
Body parameters
string
required
Site name.
string
required
Site URL.
string
Widget accent color (hex).
string
Initial chat greeting.
string
Widget position on the page.
boolean
Whether the widget is active.
{
"name": "Main Website",
"url": "https://example.com",
"widgetColor": "#16A34A",
"welcomeMessage": "Hi! How can we help?",
"position": "bottom-right",
"isActive": true
}
curl -X POST https://zeplo.ai/api/sites \
-H "Cookie: connect.sid=s%3A7HImZ-T2BxWSbUsf9dtWdOlBW4rVuORO.5J0Do0NyvBu%2BkTvu1aHvtNs00BKhkpUKTwiokLS0cpw" \
-H "Content-Type: application/json" \
-d '{
"name": "Main Website",
"url": "https://example.com",
"widgetColor": "#16A34A",
"welcomeMessage": "Hi! How can we help?",
"position": "bottom-right",
"isActive": true
}'
Update site
PATCH /api/sites/:id
integer
required
Site ID.
curl -X PATCH https://zeplo.ai/api/sites/1 \
-H "Cookie: connect.sid=s%3A7HImZ-T2BxWSbUsf9dtWdOlBW4rVuORO.5J0Do0NyvBu%2BkTvu1aHvtNs00BKhkpUKTwiokLS0cpw" \
-H "Content-Type: application/json" \
-d '{
"widgetColor": "#FF5500",
"welcomeMessage": "Hello! How can we assist?"
}'
Create or update site
POST /api/sites/create_or_update
curl -X POST https://zeplo.ai/api/sites/create_or_update \
-H "Cookie: connect.sid=s%3A7HImZ-T2BxWSbUsf9dtWdOlBW4rVuORO.5J0Do0NyvBu%2BkTvu1aHvtNs00BKhkpUKTwiokLS0cpw" \
-H "Content-Type: application/json" \
-d '{
"name": "Main Website",
"url": "https://example.com"
}'
Upload widget logo
POST /api/widget/upload-logo
Accepts multipart/form-data.
curl -X POST https://zeplo.ai/api/widget/upload-logo \
-H "Cookie: connect.sid=s%3A7HImZ-T2BxWSbUsf9dtWdOlBW4rVuORO.5J0Do0NyvBu%2BkTvu1aHvtNs00BKhkpUKTwiokLS0cpw" \
-F "file=@logo.png"
Widget public endpoints
| Endpoint | Method | Description |
|---|---|---|
/api/widget/config/:siteId | GET | Get widget configuration |
/api/widget/kb/:siteId | GET | Get knowledge base |
/api/widget/qa/:siteId | GET | Get Q&A pairs |
/api/widget/article/:articleId | GET | Get single article |
/api/widget/contacts | POST | Save widget contact |
/api/widget/chat | POST | Send chat message |
/api/widget/conversation/:conversationId | GET | Get conversation |
/api/widget/request-agent | POST | Request human agent |
Widget embed code
<script src="https://zeplo.ai/widget.js" data-site-id="1" defer></script>
