Web Widget

Embed in under a minute

Paste this snippet into your site's <head> or just before </body>. The widget loads asynchronously and won't block your page render.

Copy
<!-- Kiedo Widget — async, non-blocking -->
<script>
  (function(w,d,k){
    var s=d.createElement('script');
    s.async=true;
    s.src='https://your-domain.com/widget/kiedo-widget.js';
    w[k]=w[k]||function(){(w[k].q=w[k].q||[]).push(arguments)};
    s.onload=function(){ KiedoWidget('init',{ apiKey:'cb_live_YOUR_KEY' }); };
    d.head.appendChild(s);
  })(window,document,'KiedoWidget');
</script>

API Keys

Keys follow the format cb_live_*. Generate them from the tenant admin panel. Each key is scoped to a single bot configuration.

i18n Ready

Pass a locale option to KiedoWidget('init', {...}) to serve the widget in the visitor's language. Widget strings are fully externalised.

Booking Mode

Pass features: ['booking'] to enable the appointment scheduling UI inside the widget. No third-party calendar integration required.

WhatsApp

Connect via Meta Cloud API

Add your WhatsApp Business credentials to Kiedo's admin panel and point Meta's webhook to your Kiedo instance. All message routing, RAG, and escalation happens automatically.

  1. 1
    Create a Meta App

    In Meta for Developers, create a Business app and add the WhatsApp product.

  2. 2
    Add credentials to Kiedo

    Paste your Phone Number ID, Business Account ID, and access token into your tenant's WhatsApp settings.

  3. 3
    Point Meta webhook to Kiedo

    Set the webhook URL to https://your-domain.com/api/v1/webhooks/whatsapp and verify with your token.

  4. Live

    Send a test message. Your bot responds from the same knowledge base as your web widget.

# WhatsApp webhook endpoint
POST /api/v1/webhooks/whatsapp

# Kiedo verifies the Meta signature and routes the
# message through the full RAG + escalation pipeline.
# Replies are sent back via Meta Cloud API.

# Health check
GET /health
# Returns: { "db": "ok", "redis": "ok" }
Telegram

Connect your Telegram bot

Register a bot with BotFather, paste the token into Kiedo's admin panel, and your Telegram bot is backed by the full RAG pipeline — in under two minutes.

# Telegram webhook endpoint
POST /api/v1/webhooks/telegram

# Set your bot webhook via Telegram Bot API:
curl -X POST https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook \
  -H "Content-Type: application/json" \
  -d '{"url": "https://your-domain.com/api/v1/webhooks/telegram"}'
REST & WebSocket API

Build on top of Kiedo

Every Kiedo capability is accessible via REST. WebSocket endpoints provide real-time streaming for chat sessions and operator consoles. Full OpenAPI docs at /api/docs.

API Surface

  • REST /api/v1/* — admin, superadmin, widget, public, auth, webhooks
  • WS /ws/chat — visitor real-time streaming
  • WS /ws/admin — operator console + escalation events
  • DOCS /api/docs — OpenAPI / Swagger UI
  • HEALTH GET /health — returns db + redis status

Authentication

  • JWT RS256 — 15-minute access tokens, 7-day refresh tokens
  • Widget API keys: cb_live_* format via X-API-Key header
  • Optional 2FA (TOTP) on all admin routes
  • Rate-limited with Redis; lockout after failed attempts
Copy
# Health check
curl https://your-domain.com/health
# → {"db":"ok","redis":"ok"}

# Start a chat session (widget auth)
curl -X POST https://your-domain.com/api/v1/widget/session \
  -H "X-API-Key: cb_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"product_id": "prod_xxx"}'
# → {"session_token":"...","ws_url":"/ws/chat"}

# List tenants (superadmin)
curl https://your-domain.com/api/v1/admin/tenants \
  -H "Authorization: Bearer <ACCESS_TOKEN>"

# Upload a document
curl -X POST https://your-domain.com/api/v1/documents \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -F "file=@knowledge-base.pdf" \
  -F "bot_id=bot_xxx"

Ready to integrate?

Book a technical demo and we'll walk you through connecting your first channel and uploading your knowledge base live.

Book a demo