Getting Started

This page will help you get started with the Leexi public API.

Authentication

This is an HTTPS-only API. Authentication is based on API Key ID and Key Secret. The API Key ID and Key Secret is passed via HTTP Basic Authentication. This means Leexi expects to find an Authorization header with "Basic " and then KEY_ID:KEY_SECRET encoded in base 64.

# Key ID: KEY_ID
# Key Secret: KEY_SECRET
# KEY_ID:KEY_SECRET base64 encoded: S0VZX0lEOktFWV9TRUNSRVQ=

curl --header "Authorization: Basic S0VZX0lEOktFWV9TRUNSRVQ="
     --location "https://public-api.leexi.ai/v1/users"

You can generate an API key/secret pair by going to Leexi → Settings → Company Settings → API Keys, and clicking on add (requires a Leexi admin account).

Call access scope

Each API key has a call access scope that controls which calls it can read through the call endpoints (/calls, /calls/{uuid} and /call_notes). A key only ever returns calls that are within its scope; calls outside its scope are not listed and respond with 404 when requested directly.

A key can be configured to:

  • access every call in the company — the default, and the behaviour of every key created before this feature, so existing integrations are unaffected;
  • inherit the access of a specific user — the key then sees exactly the calls that user can access; or
  • be restricted through access rules — the key only sees calls covered by the access rules it belongs to. The key has access to those calls even if their access was personalized.

The access scope is configured by an admin in Leexi → Settings → Company Settings → API Keys; it cannot be changed through the public API.

Pagination

All list routes have optional query parameters:

  • page : page number
  • items : number of items per page (1-100, default to 10)

Rate Limiting

The rate limit for this API is 50 requests/minute. For call creation, the rate limit is 10 requests/minute.

Error Codes

  • 400 : Invalid request (invalid parameter values)
  • 401 : Unauthorized (API key is missing or invalid)
  • 402 : Payment required (the related subscription is inactive)
  • 403 : Forbidden (API key doesn't have the permission scope required by this endpoint)
  • 404 : Resource not found
  • 405 : Method not allowed for this meeting event action
  • 409 : Conflict (for example an existing meeting event or a bot already running)
  • 429 : Rate limited