API by router
Public
Track Analytics
Record a page view event from a published website.
Rate-limited to 100 events per minute per IP. site_id is the public tracking_token (resolved to hosted_website_id server-side).
device_type?Device Type
page_pathPage Path
Length
length <= 2048referrer?Referrer
screen_width?Screen Width
session_id?Session Id
site_idSite Id
Format
uuidResponse Body
curl -X POST "https://loading/v1/public/analytics/track" \ -H "Content-Type: application/json" \ -d '{ "page_path": "string", "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811" }'Empty
{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Submit Form
Accept a form submission from a published website.
Rate-limited to 5 submissions per minute per IP. site_id is the website_config_id (canonical external identity).
email?Email
form_dataForm Data
Properties
properties <= 50Empty Object
page_slug?Page Slug
site_idSite Id
Format
uuidResponse Body
curl -X POST "https://loading/v1/public/forms/submit" \ -H "Content-Type: application/json" \ -d '{ "form_data": {}, "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811" }'{
"status": "received",
"submission_id": "945dfedc-ad7f-4af7-b20c-06082ffa3cb3"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}Widget Chat
Public widget chat — authenticates via X-Widget-Token header.
Widget tokens are instance-scoped, chat-only. NOT tenant JWTs. The control plane validates the token, then streams SSE from the agent.
Path Parameters
instance_idInstance Id
Format
uuidconversation_id?Conversation Id
messageMessage
Length
length <= 8000Response Body
curl -X POST "https://loading/v1/public/widget/497f6eca-6276-4993-bfeb-53cbbbba6f08/chat" \ -H "Content-Type: application/json" \ -d '{ "message": "string" }'null{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}