> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dialtu.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> What the Dialtu public API does, where it lives, and how it behaves

The Dialtu public API lets your own systems — a CRM, a website form, an n8n or Zapier flow,
your backend — do the things you would otherwise do by hand in the dashboard:

* **Schedule AI voice calls** to a phone number, now or at a given time.
* **Create contacts** and push leads into a **Salesflow** pipeline.
* **Book appointments** on your calendar and manage its **waiting lists**.
* **Read WhatsApp conversation history** for reporting or syncing.

Every endpoint is documented from the same source the platform runs on, so the field lists,
examples and error shapes you see here are exactly what the API accepts and returns.

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/en/api-reference/authentication">
    Create an API key in the dashboard and send it with every request.
  </Card>

  <Card title="Errors" icon="triangle-exclamation" href="/en/api-reference/errors">
    The two response shapes you will meet, and every `error_code` by endpoint.
  </Card>

  <Card title="Sync WhatsApp conversations" icon="whatsapp" href="/en/api-reference/guides/whatsapp-conversation-sync">
    Pull transcripts incrementally and attribute messages to agents and people.
  </Card>

  <Card title="Book calendar appointments" icon="calendar-check" href="/en/api-reference/guides/calendar-appointments">
    Everything a booking needs, and how to wire it into n8n.
  </Card>
</CardGroup>

## Base URL

| Environment | Base URL                     |
| ----------- | ---------------------------- |
| Production  | `https://api.dialtu.com`     |
| Staging     | `https://api.stg.dialtu.com` |

All paths in this reference are relative to the base URL and start with `/api/v2/public/`.
Use the **Try it** panel on any endpoint page to send a real request from your browser — pick
the server, paste your key, and fill in the fields.

## Conventions

* **JSON in, JSON out.** Send `Content-Type: application/json` on requests with a body.
* **Timestamps are UTC, ISO 8601** (`2026-06-30T15:39:33.482Z`) unless an endpoint says
  otherwise — the calendar endpoints take *local* times plus an IANA `timezone` and return UTC.
* **Phone numbers** are best sent in E.164 (`+525512345678`).
* **IDs are integers** and are stable: a `client_id` returned by *Create a client* is the same
  ID the Salesflow, calendar and WhatsApp endpoints use.

## Versioning and compatibility

The API is versioned in the path (`/api/v2/`). Within a version, changes are **additive**: new
fields may appear in responses and new optional fields may be accepted in requests. Ignore
fields you do not recognise rather than failing on them. Breaking changes ship under a new
version.

## Limits

* **No request rate limit is enforced today.** Please page responsibly (`limit` ≤ 50 on list
  endpoints) rather than requesting maximal payloads in a tight loop.
* **Read-only where it says so.** The WhatsApp endpoints never modify conversations, and media
  files are not downloadable through the API — only their metadata is returned.
* **No outbound webhooks yet.** Poll the list endpoints with `updated_after` for changes.

## What a key can see

A key belongs to the account it was created in. If your account is a partner account with
sub-accounts (separate locations, branches or client businesses), **one key covers exactly one
sub-account** — the one you were in when you created it. Create a key inside each sub-account
you integrate. See [Authentication](/en/api-reference/authentication) for details.

## Need something that isn't here?

Reading and cancelling appointments, outbound webhooks and rate-limit headers are not part of the API yet. If your integration needs one of them, write to [support@dialtu.com](mailto:support@dialtu.com) — it helps us order the roadmap.
