Skip to main content
This documentation is intended for developers who want to integrate their systems with Timely.ai. For information on using the platform, see the Guides.

Overview

The Timely.ai API lets you programmatically manage all platform resources:
  • Agents — create, configure, and manage AI agents
  • Trainings — manage agent knowledge bases
  • Channels — configure communication channels (WhatsApp, Telegram, Email, Website)
  • Contacts — register and manage customers
  • Conversations — conversation history and messages
  • Custom Fields — define custom fields for contacts
  • Chats — operations on active chats and human handoff
  • Messages — direct access to individual messages
  • MCP Servers — manage Model Context Protocol servers
  • Webhooks — receive real-time events

Base URL

All endpoints use the /v1 prefix.

Authentication

All requests (except /v1/health) require authentication via the x-api-key header:
To obtain your API key, visit the developers page.

Scopes

Each API key has scopes that control which resources can be accessed: Use the GET /v1/me endpoint to check your API key’s scopes.

Rate Limiting

The API limits to 100 requests per minute per API key. Response headers include: When the limit is exceeded, the API returns status 429 with a Retry-After header indicating how many seconds to wait.

Pagination

Listing endpoints support pagination with the following parameters: The response includes a pagination object:

Error Format

All error responses follow the same format:

Webhooks

Webhooks let you receive real-time notifications when events occur on the platform.

Available Events

Payload

Each webhook delivery includes:

Signature

All deliveries include an HMAC-SHA256 signature for verification: To verify the signature:

Retries

If a delivery fails (timeout or status >= 300), the system retries up to 5 times with backoff:
  • Immediate
  • 1 minute
  • 5 minutes
  • 15 minutes
  • 1 hour
After 5 consecutive failures, the webhook is automatically deactivated. Use POST /v1/webhooks/{id}/test to test connectivity before activating.