Base URL
Authentication
All M2M requests require:Endpoint groups
Tenant
GET /m2m/tenants/{id}GET /m2m/tenants/{id}/limitsGET /m2m/tenants/{id}/usageGET /m2m/tenants/{id}/usage/historyGET /m2m/tenants/{id}/statistics
Site
GET /m2m/sites/{id}GET /m2m/sites/{id}/statisticsGET /m2m/sites/{id}/sessionsGET /m2m/sites/{id}/users/{email}/statisticsGET /m2m/sites/{id}/widget-configPATCH /m2m/sites/{id}/widget-config
Documents
GET /m2m/sites/{id}/documentsPOST /m2m/sites/{id}/documentsPOST /m2m/sites/{id}/documents/textPOST /m2m/sites/{id}/documents/qaPATCH /m2m/sites/{id}/documents/{docId}PATCH /m2m/sites/{id}/documents/bulk-statusPOST /m2m/sites/{id}/documents/bulk-delete
Chat
POST /m2m/sites/{id}/chatPOST /m2m/sites/{id}/chat/asyncGET /m2m/sites/{id}/chat/requests/{requestId}POST /m2m/sites/{id}/chat/feedbackPOST /m2m/sites/{id}/chat/session/close
Recommended integration flow
- Validate connectivity with
limits - Lock tenant/site IDs in app config
- Upload and activate core documents
- Start with sync chat, then add async if needed
- Track quality with feedback + analytics endpoints
Chat payload contract
Typical response shapes
Sync response
Async initial response
Async status response
Document payload contracts
Text
QA
Error code guidance
400: invalid payload401: missing/invalid API key403: plan/role requirement not met404: tenant/site/document not found429: rate limit reached5xx: transient service issue