Skip to content

The tkana API

One organization, one key, a stable shape that does not change under you.

The public API gives an integration access to one tkana organization: the customers who talk to its agent, the conversations they have, and the tickets and bookings that come out of them.

It is deliberately separate from the console’s own API. Responses here are a published contract with a fixed field set — not the shape of our database tables, which change without warning.

Start in a minute

Create a key in the portal under Settings → API keys, tick the scopes you need, and call GET /customers. Everything is a bearer token and JSON.

Built to sync

Every list takes updatedAfter and hands back a cursor, so an integration can pull only what changed since last time without walking the whole collection. How syncing works.

Errors you can branch on

Every failure is application/problem+json carrying a stable machine code. Branch on the code, never on the prose. Errors.

Scoped keys

A key does only what its scopes say. A read key cannot write, and a missing scope is a 403 naming what was needed. Authentication.

Environment Base URL
Production https://api.tkana.sa/public/v1
Development https://api-dev.tkana.sa/public/v1

Every path in these guides and in the reference is relative to that base.

Reads for customers, conversations and their messages, tickets and their history, bookings, and the services, resources and free slots behind them. Writes and webhooks are being built; the reference always shows exactly what the API currently serves, because it is generated from the running routes.