The widget is optional. The API isn't.
Everything the dashboard and the embeddable widget do runs on the same document-grounded chat API. If you'd rather build your own front end, the API is the whole product.
Secret API keys
For backend integrations. Hashed at rest, IP-allowlistable, and individually rotatable with immediate effect — never expose these in client-side code.
Session tokens
Short-lived tokens scoped to a single visitor session, issued by your backend so your own app or mobile client can talk to the chat API directly.
Widget embed keys
A public, per-widget key used by the embeddable bubble or iframe — scoped to a single widget's collection and branding, not your full account.
Idempotent, streaming by default
Message sends accept an Idempotency-Key
so retries on flaky connections never double-send, and responses stream token-by-token
so your UI doesn't wait on a full generation before showing anything. Illustrative example:
curl https://api.siyazen.com/v1/chat/messages \
-H "Authorization: Bearer $SIYAZEN_API_KEY" \
-H "Idempotency-Key: 8f14e45f-...-a716" \
-H "Content-Type: application/json" \
-d '{
"session_id": "sess_5a1c...",
"message": "Do refunds cover international orders?",
"stream": true
}' Full reference
The complete API guide — request/response schemas, rate limits, and webhook events — lives inside the dashboard once you have an account, under Developers → API keys.
Open the dashboard →