API Functions

REST API reference for automating your XEELAA platform

API v2 — Global Standard

Full platform access with key_id:secret authentication, tiered rate limits, IP whitelisting, webhooks, and all platform resources.

# Authenticate with your key_id:secret curl -H "Authorization: Bearer xla_xxx:your_secret" https://xeelaa.com/api/v2/me # List all chatbots curl -H "Authorization: Bearer xla_xxx:your_secret" https://xeelaa.com/api/v2/chatbots

Authentication

All API requests require a valid API key sent via the Authorization header:

API v2 (Recommended):

Authorization: Bearer xla_your_key_id:your_key_secret

API v1 (Legacy):

Authorization: Bearer xeelaa_your_key

Generate keys from the API Keys page. Base URL: https://xeelaa.com/api

🚀 API v2 — Full Platform

GET
/api/v2/verify

Verify API key and get connection info

GET
/api/v2/me

Get authenticated user profile

GET
/api/v2/usage

Get API key usage and rate limit info

GET
/api/v2/api-keys

List all API keys

POST
/api/v2/api-keys

Create a new API key (tier, webhook, whitelist options)

GET
/api/v2/api-keys/{id}

Get API key details

PATCH
/api/v2/api-keys/{id}

Update API key settings

POST
/api/v2/api-keys/{id}/regenerate

Regenerate API key secret

POST
/api/v2/api-keys/{id}/revoke

Revoke an API key

DELETE
/api/v2/api-keys/{id}

Permanently delete a revoked key

GET
/api/v2/chatbots

List all chatbots (?status=&sort=&dir=&per_page=)

POST
/api/v2/chatbots

Create a new chatbot

GET
/api/v2/chatbots/{id}

Get chatbot details

PATCH
/api/v2/chatbots/{id}

Update chatbot settings

DELETE
/api/v2/chatbots/{id}

Delete a chatbot

GET
/api/v2/chatbots/{id}/settings

Get chatbot greeting, quick replies, theme — conversation starter

POST
/api/v2/chatbots/{id}/crawl

Crawl a URL and add content to knowledge base

GET
/api/v2/chatbots/{id}/conversations

List conversations (?status=&q=&sort=&dir=)

POST
/api/v2/chatbots/{id}/conversations

Create a new conversation

GET
/api/v2/chatbots/{id}/conversations/{conversation}

Get conversation details with messages

PATCH
/api/v2/chatbots/{id}/conversations/{conversation}

Update conversation (status, title, summary)

DELETE
/api/v2/chatbots/{id}/conversations/{conversation}

Delete a conversation

POST
/api/v2/chatbots/{id}/conversations/{conversation}/handoff

Request human agent handoff

GET
/api/v2/chatbots/{id}/conversations/{conversation}/messages

List messages in a conversation

POST
/api/v2/chatbots/{id}/conversations/{conversation}/messages

Send a message and get AI response

GET
/api/v2/chatbots/{id}/documents

List knowledge base documents

POST
/api/v2/chatbots/{id}/documents

Add a knowledge base document

DELETE
/api/v2/chatbots/{id}/documents/{document}

Delete a document

GET
/api/v2/conversations/search

Search across all conversations (?q=&status=)

POST
/api/v2/ai/chat

Send a message to AI chat (?search_web=&reasoning=)

GET
/api/v2/video/projects

List video projects (?status=)

GET
/api/v2/video/projects/{project}

Get video project with scenes and latest render

GET
/api/v2/whatsapp/accounts

List WhatsApp accounts

GET
/api/v2/whatsapp/accounts/{account}/conversations

List WhatsApp conversations

POST
/api/v2/whatsapp/conversations/{conversation}/send

Send a WhatsApp message

DELETE
/api/v2/whatsapp/accounts/{account}

Disconnect and delete a WhatsApp account

GET
/api/v2/skills

List all available skills

GET
/api/v2/webhooks/deliveries

View webhook delivery history

POST
/api/v2/webhooks/test

Send a test webhook to your configured URL

API Keys

GET
/api/v1/api-keys

List all API keys for your account

POST
/api/v1/api-keys

Create a new API key

Body: name permissions[] expires_in_days
DELETE
/api/v1/api-keys/{id}

Revoke an API key

Chatbots

GET
/api/v1/chatbots

List all your chatbots

POST
/api/v1/chatbots

Create a new chatbot

Body: name domain settings
GET
/api/v1/chatbots/{id}

Get chatbot details

PUT
/api/v1/chatbots/{id}

Update a chatbot

Body: name domain settings
DELETE
/api/v1/chatbots/{id}

Delete a chatbot

Conversations

GET
/api/v1/chatbots/{id}/conversations

List conversations for a chatbot

GET
/api/v1/chatbots/{id}/conversations/search?q=

Search conversations by title or summary

GET
/api/v1/chatbots/{id}/conversations/{convId}

Get conversation details

Messages

GET
/api/v1/chatbots/{id}/conversations/{convId}/messages

List messages in a conversation

POST
/api/v1/chatbots/{id}/conversations/{convId}/messages

Send a message to a conversation

Body: message

Documents

GET
/api/v1/chatbots/{id}/documents

List knowledge base documents

POST
/api/v1/chatbots/{id}/documents

Upload a document (file, content, or source_url)

Body: file content source_url
DELETE
/api/v1/chatbots/{id}/documents/{docId}

Delete a document

Task Execution (Direct API Proxy)

POST
/api/v1/execute

Execute a task on your own platform using your XEELAA API key

Body: action params

Examples

List chatbots

curl -H "Authorization: Bearer xeelaa_your_key" https://xeelaa.com/api/v1/chatbots

Send a message

curl -X POST https://xeelaa.com/api/v1/chatbots/1/conversations/1/messages \ -H "Authorization: Bearer xeelaa_your_key" \ -H "Content-Type: application/json" \ -d '{"message": "Hello, how can you help me?"}'

Create an API key

curl -X POST https://xeelaa.com/api/v1/api-keys \ -H "Authorization: Bearer xeelaa_your_key" \ -H "Content-Type: application/json" \ -d '{"name": "My App", "permissions": ["chatbots:read", "conversations:read"]}'

Execute a task on your platform (direct API proxy)

curl -X POST https://xeelaa.com/api/v1/execute \ -H "Authorization: Bearer xeelaa_your_key" \ -H "Content-Type: application/json" \ -d '{"action": "send_memo", "params": {"title": "Meeting Reminder", "body": "Don'\''t forget the meeting", "recipients": "team@example.com", "priority": "high"}}'

Use API key directly on your own platform

Your XEELAA API key works as a shared secret on your own platform. Configure your backend to accept the X-API-Key header and validate it against the stored hash.

curl -X POST https://yourplatform.com/api/v1/memos \ -H "X-API-Key: xeelaa_your_key" \ -H "Content-Type: application/json" \ -d '{"title": "Direct API Call", "body": "Called directly using XEELAA API key"}'

Rate Limiting

API requests are limited to 120 requests per minute per API key. Manage your API keys here.