SkyLight Chat
Changelog

Changelog

A record of changes to the SkyLight Chat API.

April 2026

  • GET /api/v1/contacts/segments/{id}/members - Paginated contacts in a segment (same fields as list members). Optional query: per_page (max 100).

v1.5.0 - March 2026

Major expansion of the REST API - 10 new resources and 85+ new endpoints. Webhook coverage expanded to 30 events across 9 resource types.

New endpoints

Tags

  • GET /api/v1/tags - List all tags
  • POST /api/v1/tags - Create a tag
  • GET /api/v1/tags/{id} - Get a tag
  • PUT /api/v1/tags/{id} - Rename a tag
  • DELETE /api/v1/tags/{id} - Delete a tag (removes it from all contacts)
  • POST /api/v1/contacts/{id}/tags - Add a tag to a contact
  • DELETE /api/v1/contacts/{id}/tags/{tag_id} - Remove a tag from a contact

Lists & Segments

  • GET /api/v1/contacts/lists - List all contact lists
  • POST /api/v1/contacts/lists - Create a list
  • GET /api/v1/contacts/lists/{id} - Get a list
  • PUT /api/v1/contacts/lists/{id} - Update a list
  • DELETE /api/v1/contacts/lists/{id} - Delete a list
  • GET /api/v1/contacts/lists/{id}/members - Get list members
  • POST /api/v1/contacts/{id}/lists - Add a contact to a list
  • DELETE /api/v1/contacts/{id}/lists/{list_id} - Remove a contact from a list
  • GET /api/v1/contacts/segments - List all segments
  • POST /api/v1/contacts/segments - Create a segment
  • GET /api/v1/contacts/segments/{id}/members - Get segment members
  • PUT /api/v1/contacts/segments/{id} - Update a segment
  • DELETE /api/v1/contacts/segments/{id} - Delete a segment
  • POST /api/v1/contacts/{id}/segments - Add a contact to a segment
  • DELETE /api/v1/contacts/{id}/segments/{segment_id} - Remove a contact from a segment

AI Agents

  • GET /api/v1/ai-agents - List AI agent personas
  • POST /api/v1/ai-agents - Create an AI agent
  • GET /api/v1/ai-agents/{id} - Get an AI agent
  • PUT /api/v1/ai-agents/{id} - Update an AI agent
  • DELETE /api/v1/ai-agents/{id} - Delete an AI agent
  • POST /api/v1/ai-agents/{id}/set-default - Set as default agent
  • POST /api/v1/ai-agents/{id}/assign - Bulk-assign agent to contacts

Campaigns

  • GET /api/v1/campaigns - List campaigns
  • POST /api/v1/campaigns - Create a campaign
  • GET /api/v1/campaigns/{id} - Get a campaign
  • PUT /api/v1/campaigns/{id} - Update a draft campaign
  • DELETE /api/v1/campaigns/{id} - Delete a draft or cancelled campaign
  • POST /api/v1/campaigns/{id}/start - Start a campaign
  • POST /api/v1/campaigns/{id}/pause - Pause a campaign
  • POST /api/v1/campaigns/{id}/resume - Resume a campaign
  • POST /api/v1/campaigns/{id}/cancel - Cancel a campaign
  • GET /api/v1/campaigns/{id}/contacts - List campaign contacts and delivery status

Support Tickets

  • GET /api/v1/tickets - List tickets
  • POST /api/v1/tickets - Create a ticket
  • GET /api/v1/tickets/{id} - Get a ticket with reply history
  • POST /api/v1/tickets/{id}/reply - Reply to a ticket
  • POST /api/v1/tickets/{id}/close - Close a ticket
  • GET /api/v1/tickets/departments - List available departments

Web Chat

  • GET /api/v1/web-chat/analytics - Get chat widget analytics
  • GET /api/v1/web-chat/sessions - List sessions
  • GET /api/v1/web-chat/sessions/{session_id} - Get session with messages
  • POST /api/v1/web-chat/sessions/{session_id}/take-over - Transfer session to human
  • POST /api/v1/web-chat/sessions/{session_id}/release - Return session to AI
  • POST /api/v1/web-chat/sessions/{session_id}/messages - Send an agent message
  • POST /api/v1/web-chat/sessions/{session_id}/end - End a session

Knowledge Base

  • GET /api/v1/knowledge-base - List knowledge base entries
  • POST /api/v1/knowledge-base - Create a text entry
  • POST /api/v1/knowledge-base/document - Upload documents (PDF, DOCX, XLSX, TXT, CSV) - AI extracts content
  • POST /api/v1/knowledge-base/voice - Upload audio file - Whisper transcription
  • POST /api/v1/knowledge-base/product-catalog - Create product catalog (JSON array or CSV upload)
  • POST /api/v1/knowledge-base/website - Submit website URL for crawling (async)
  • GET /api/v1/knowledge-base/{id}/status - Poll processing/crawl status
  • POST /api/v1/knowledge-base/{id}/products - Add products to an existing catalog
  • DELETE /api/v1/knowledge-base/{id}/products/{product_id} - Remove a product from a catalog
  • GET /api/v1/knowledge-base/{id} - Get an entry with all associated content
  • PUT /api/v1/knowledge-base/{id} - Update an entry (content changes clear cached embeddings)
  • DELETE /api/v1/knowledge-base/{id} - Delete an entry and all associated files

Voice

  • GET /api/v1/voice - Get voice settings and status
  • GET /api/v1/voice/status - Test API key connectivity
  • GET /api/v1/voice/dialects - List supported language dialects
  • PATCH /api/v1/voice/settings - Update voice settings (dialect, language, key, on/off)
  • POST /api/v1/voice/clone - Clone a voice from an audio sample
  • POST /api/v1/voice/preload - Warm up the voice for zero-latency synthesis
  • POST /api/v1/voice/tts - Convert text to speech (returns a public audio URL)
  • DELETE /api/v1/voice - Delete the cloned voice

Channels

  • POST /api/v1/channels/whatsapp/connect - Generate QR code for WhatsApp
  • GET /api/v1/channels/whatsapp/status - Poll connection status
  • POST /api/v1/channels/whatsapp/refresh - Sync status from Unipile
  • POST /api/v1/channels/whatsapp/disconnect - Disconnect WhatsApp
  • POST /api/v1/channels/telegram/connect - Generate QR code for Telegram
  • GET /api/v1/channels/telegram/status - Poll connection status
  • POST /api/v1/channels/telegram/refresh - Sync status from Unipile
  • POST /api/v1/channels/telegram/disconnect - Disconnect Telegram
  • POST /api/v1/channels/instagram/connect - Connect with username and password
  • POST /api/v1/channels/instagram/2fa - Submit 2FA verification code
  • POST /api/v1/channels/instagram/2fa/resend - Resend 2FA code
  • GET /api/v1/channels/instagram/status - Get connection status
  • POST /api/v1/channels/instagram/refresh - Sync status from Unipile
  • POST /api/v1/channels/instagram/disconnect - Disconnect Instagram

Webhooks - 19 new events (was 11, now 30)

  • channel.connected - a channel connects or reconnects
  • channel.disconnected - a channel goes offline
  • channel.error - a channel fails to connect
  • campaign.started - a campaign starts sending
  • campaign.completed - a campaign finishes sending
  • campaign.paused - a campaign is paused
  • campaign.cancelled - a campaign is cancelled
  • campaign.failed - a campaign encounters a critical failure
  • knowledge_base.created - a knowledge base entry is created
  • knowledge_base.updated - a knowledge base entry is updated
  • knowledge_base.deleted - a knowledge base entry is deleted
  • knowledge_base.processing.completed - document/voice/website processing finishes
  • knowledge_base.processing.failed - document/voice/website processing fails
  • ticket.updated - a ticket's details change
  • ticket.closed - a ticket is closed or resolved
  • ai_agent.created - an AI agent persona is created
  • ai_agent.updated - an AI agent persona is updated
  • ai_agent.deleted - an AI agent persona is deleted

Improvements

  • Knowledge Base API now supports all five content types - documents, voice transcriptions, product catalogs, and website scraping are now fully manageable via API (not just text)
  • Channel Management API - connect, refresh, and disconnect WhatsApp, Telegram, and Instagram via API (QR for WhatsApp/Telegram, credentials for Instagram with 2FA support)
  • Webhook coverage expanded from 11 to 30 events - channel status, campaign lifecycle, knowledge base, tickets, and AI agent events all now fire webhooks
  • Contact endpoints now support filtering and listing tags, lists, and segments
  • Global API key fallback supported for voice synthesis - clients can provide their own key or rely on the system key
  • Campaigns support mixed audience targeting: explicit contact IDs, lists, segments, or any combination
  • Ticket creation auto-assigns to the first available department when none is specified

v1.0.0 - March 2026

Initial release of the SkyLight Chat REST API v1 and Webhooks system.

New endpoints

Contacts

  • GET /api/v1/contacts - List contacts with search and filter
  • POST /api/v1/contacts - Create a contact
  • GET /api/v1/contacts/{id} - Get a contact
  • PUT /api/v1/contacts/{id} - Update a contact
  • DELETE /api/v1/contacts/{id} - Delete a contact
  • POST /api/v1/contacts/{id}/blacklist - Toggle blacklist
  • GET /api/v1/contacts/{id}/notes - List notes
  • POST /api/v1/contacts/{id}/notes - Add a note

Messages

  • GET /api/v1/conversations - List conversations
  • GET /api/v1/contacts/{id}/messages - List messages for a contact
  • POST /api/v1/messages/send - Send a message via a connected channel

Bookings

  • GET /api/v1/bookings - List bookings
  • POST /api/v1/bookings - Create a booking
  • GET /api/v1/bookings/{id} - Get a booking
  • PUT /api/v1/bookings/{id} - Update a booking
  • POST /api/v1/bookings/{id}/cancel - Cancel a booking
  • GET /api/v1/bookings/types - List booking types
  • GET /api/v1/bookings/resources - List resources
  • GET /api/v1/bookings/availability - Check available slots

Webhooks

  • GET /api/v1/webhooks - List webhooks
  • POST /api/v1/webhooks - Create a webhook
  • GET /api/v1/webhooks/{id} - Get a webhook
  • PUT /api/v1/webhooks/{id} - Update a webhook
  • DELETE /api/v1/webhooks/{id} - Delete a webhook
  • POST /api/v1/webhooks/{id}/test - Send test event
  • GET /api/v1/webhooks/{id}/deliveries - List delivery logs
  • POST /api/v1/webhooks/{id}/regenerate-secret - Rotate secret
  • GET /api/v1/webhooks/events - List available events

Account

  • GET /api/v1/account - Get account profile
  • PATCH /api/v1/account - Update account profile
  • GET /api/v1/account/subscription - Get subscription & plan details
  • GET /api/v1/account/channels - Get connected channel status

Team

  • GET /api/v1/team - List team members
  • POST /api/v1/team - Create a team member
  • GET /api/v1/team/{id} - Get a team member
  • PUT /api/v1/team/{id} - Update a team member
  • DELETE /api/v1/team/{id} - Delete a team member

Webhook events

11 event types available on launch: contact.created · contact.updated · contact.deleted · message.received · message.sent · booking.created · booking.updated · booking.cancelled · booking.completed · ticket.created · ticket.replied

Security

  • Bearer token authentication (Authorization: Bearer <key>)
  • X-Api-Key header alternative
  • Domain whitelisting per API key
  • HMAC-SHA256 webhook payload signing
  • Rate limiting: 120 requests per minute per key