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 tagsPOST /api/v1/tags- Create a tagGET /api/v1/tags/{id}- Get a tagPUT /api/v1/tags/{id}- Rename a tagDELETE /api/v1/tags/{id}- Delete a tag (removes it from all contacts)POST /api/v1/contacts/{id}/tags- Add a tag to a contactDELETE /api/v1/contacts/{id}/tags/{tag_id}- Remove a tag from a contact
Lists & Segments
GET /api/v1/contacts/lists- List all contact listsPOST /api/v1/contacts/lists- Create a listGET /api/v1/contacts/lists/{id}- Get a listPUT /api/v1/contacts/lists/{id}- Update a listDELETE /api/v1/contacts/lists/{id}- Delete a listGET /api/v1/contacts/lists/{id}/members- Get list membersPOST /api/v1/contacts/{id}/lists- Add a contact to a listDELETE /api/v1/contacts/{id}/lists/{list_id}- Remove a contact from a listGET /api/v1/contacts/segments- List all segmentsPOST /api/v1/contacts/segments- Create a segmentGET /api/v1/contacts/segments/{id}/members- Get segment membersPUT /api/v1/contacts/segments/{id}- Update a segmentDELETE /api/v1/contacts/segments/{id}- Delete a segmentPOST /api/v1/contacts/{id}/segments- Add a contact to a segmentDELETE /api/v1/contacts/{id}/segments/{segment_id}- Remove a contact from a segment
AI Agents
GET /api/v1/ai-agents- List AI agent personasPOST /api/v1/ai-agents- Create an AI agentGET /api/v1/ai-agents/{id}- Get an AI agentPUT /api/v1/ai-agents/{id}- Update an AI agentDELETE /api/v1/ai-agents/{id}- Delete an AI agentPOST /api/v1/ai-agents/{id}/set-default- Set as default agentPOST /api/v1/ai-agents/{id}/assign- Bulk-assign agent to contacts
Campaigns
GET /api/v1/campaigns- List campaignsPOST /api/v1/campaigns- Create a campaignGET /api/v1/campaigns/{id}- Get a campaignPUT /api/v1/campaigns/{id}- Update a draft campaignDELETE /api/v1/campaigns/{id}- Delete a draft or cancelled campaignPOST /api/v1/campaigns/{id}/start- Start a campaignPOST /api/v1/campaigns/{id}/pause- Pause a campaignPOST /api/v1/campaigns/{id}/resume- Resume a campaignPOST /api/v1/campaigns/{id}/cancel- Cancel a campaignGET /api/v1/campaigns/{id}/contacts- List campaign contacts and delivery status
Support Tickets
GET /api/v1/tickets- List ticketsPOST /api/v1/tickets- Create a ticketGET /api/v1/tickets/{id}- Get a ticket with reply historyPOST /api/v1/tickets/{id}/reply- Reply to a ticketPOST /api/v1/tickets/{id}/close- Close a ticketGET /api/v1/tickets/departments- List available departments
Web Chat
GET /api/v1/web-chat/analytics- Get chat widget analyticsGET /api/v1/web-chat/sessions- List sessionsGET /api/v1/web-chat/sessions/{session_id}- Get session with messagesPOST /api/v1/web-chat/sessions/{session_id}/take-over- Transfer session to humanPOST /api/v1/web-chat/sessions/{session_id}/release- Return session to AIPOST /api/v1/web-chat/sessions/{session_id}/messages- Send an agent messagePOST /api/v1/web-chat/sessions/{session_id}/end- End a session
Knowledge Base
GET /api/v1/knowledge-base- List knowledge base entriesPOST /api/v1/knowledge-base- Create a text entryPOST /api/v1/knowledge-base/document- Upload documents (PDF, DOCX, XLSX, TXT, CSV) - AI extracts contentPOST /api/v1/knowledge-base/voice- Upload audio file - Whisper transcriptionPOST /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 statusPOST /api/v1/knowledge-base/{id}/products- Add products to an existing catalogDELETE /api/v1/knowledge-base/{id}/products/{product_id}- Remove a product from a catalogGET /api/v1/knowledge-base/{id}- Get an entry with all associated contentPUT /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 statusGET /api/v1/voice/status- Test API key connectivityGET /api/v1/voice/dialects- List supported language dialectsPATCH /api/v1/voice/settings- Update voice settings (dialect, language, key, on/off)POST /api/v1/voice/clone- Clone a voice from an audio samplePOST /api/v1/voice/preload- Warm up the voice for zero-latency synthesisPOST /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 WhatsAppGET /api/v1/channels/whatsapp/status- Poll connection statusPOST /api/v1/channels/whatsapp/refresh- Sync status from UnipilePOST /api/v1/channels/whatsapp/disconnect- Disconnect WhatsAppPOST /api/v1/channels/telegram/connect- Generate QR code for TelegramGET /api/v1/channels/telegram/status- Poll connection statusPOST /api/v1/channels/telegram/refresh- Sync status from UnipilePOST /api/v1/channels/telegram/disconnect- Disconnect TelegramPOST /api/v1/channels/instagram/connect- Connect with username and passwordPOST /api/v1/channels/instagram/2fa- Submit 2FA verification codePOST /api/v1/channels/instagram/2fa/resend- Resend 2FA codeGET /api/v1/channels/instagram/status- Get connection statusPOST /api/v1/channels/instagram/refresh- Sync status from UnipilePOST /api/v1/channels/instagram/disconnect- Disconnect Instagram
Webhooks - 19 new events (was 11, now 30)
channel.connected- a channel connects or reconnectschannel.disconnected- a channel goes offlinechannel.error- a channel fails to connectcampaign.started- a campaign starts sendingcampaign.completed- a campaign finishes sendingcampaign.paused- a campaign is pausedcampaign.cancelled- a campaign is cancelledcampaign.failed- a campaign encounters a critical failureknowledge_base.created- a knowledge base entry is createdknowledge_base.updated- a knowledge base entry is updatedknowledge_base.deleted- a knowledge base entry is deletedknowledge_base.processing.completed- document/voice/website processing finishesknowledge_base.processing.failed- document/voice/website processing failsticket.updated- a ticket's details changeticket.closed- a ticket is closed or resolvedai_agent.created- an AI agent persona is createdai_agent.updated- an AI agent persona is updatedai_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 filterPOST /api/v1/contacts- Create a contactGET /api/v1/contacts/{id}- Get a contactPUT /api/v1/contacts/{id}- Update a contactDELETE /api/v1/contacts/{id}- Delete a contactPOST /api/v1/contacts/{id}/blacklist- Toggle blacklistGET /api/v1/contacts/{id}/notes- List notesPOST /api/v1/contacts/{id}/notes- Add a note
Messages
GET /api/v1/conversations- List conversationsGET /api/v1/contacts/{id}/messages- List messages for a contactPOST /api/v1/messages/send- Send a message via a connected channel
Bookings
GET /api/v1/bookings- List bookingsPOST /api/v1/bookings- Create a bookingGET /api/v1/bookings/{id}- Get a bookingPUT /api/v1/bookings/{id}- Update a bookingPOST /api/v1/bookings/{id}/cancel- Cancel a bookingGET /api/v1/bookings/types- List booking typesGET /api/v1/bookings/resources- List resourcesGET /api/v1/bookings/availability- Check available slots
Webhooks
GET /api/v1/webhooks- List webhooksPOST /api/v1/webhooks- Create a webhookGET /api/v1/webhooks/{id}- Get a webhookPUT /api/v1/webhooks/{id}- Update a webhookDELETE /api/v1/webhooks/{id}- Delete a webhookPOST /api/v1/webhooks/{id}/test- Send test eventGET /api/v1/webhooks/{id}/deliveries- List delivery logsPOST /api/v1/webhooks/{id}/regenerate-secret- Rotate secretGET /api/v1/webhooks/events- List available events
Account
GET /api/v1/account- Get account profilePATCH /api/v1/account- Update account profileGET /api/v1/account/subscription- Get subscription & plan detailsGET /api/v1/account/channels- Get connected channel status
Team
GET /api/v1/team- List team membersPOST /api/v1/team- Create a team memberGET /api/v1/team/{id}- Get a team memberPUT /api/v1/team/{id}- Update a team memberDELETE /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-Keyheader alternative- Domain whitelisting per API key
- HMAC-SHA256 webhook payload signing
- Rate limiting: 120 requests per minute per key
