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

# Quickstart

> Create a tenant, connect website chat and receive the first event.

This page takes one customer from nothing to a working website chat that reports to your server.

## Before you start

* A partner account with ImpelLabs and a partner key. See [Authentication](https://docs.impellabs.tech/partners/authentication.md).
* A key with the scopes `tenants:write`, `channels:write`, `messages:read` and `webhooks:manage`.
* A public `https` address on your server that takes webhooks.

## 1. Create a tenant

```bash theme={null}
curl -X POST https://api.impellabs.tech/api/v1/partner/tenants/ \
  -H "Authorization: Bearer implpk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "external_ref": "acme-001",
    "name": "Acme Dental",
    "owner_email": "owner@yourcompany.test",
    "monthly_credit_cap": 5000
  }'
```

The answer is 201 with the tenant. A repeat of the same call answers 200 with the tenant that exists, so you can retry
after a time-out.

```json theme={null}
{
  "external_ref": "acme-001",
  "id": "2f1c0b9e-0000-4000-8000-000000000000",
  "name": "Acme Dental",
  "plan": "free",
  "status": "active",
  "billed_to": "partner",
  "billing_mode": "payg",
  "monthly_credit_cap": 5000,
  "is_active": true,
  "created_at": "2026-01-15T09:30:00+00:00"
}
```

## 2. Connect website chat

```bash theme={null}
curl -X POST https://api.impellabs.tech/api/v1/partner/tenants/acme-001/channels/website/ \
  -H "Authorization: Bearer implpk_..." \
  -H "Content-Type: application/json" \
  -d '{ "allowed_origins": ["https://acmedental.yourcompany.test"] }'
```

The answer holds `embed_snippet`. Put it on the customer's site. See [Website chat](https://docs.impellabs.tech/partners/channels/website.md).

## 3. Register a webhook endpoint

```bash theme={null}
curl -X POST https://api.impellabs.tech/api/v1/partner/webhooks/endpoints/ \
  -H "Authorization: Bearer implpk_..." \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://hooks.yourcompany.test/impellabs", "enabled_events": ["message.*", "conversation.*"] }'
```

The answer carries the signing `secret` once. Store it. See [Webhooks and events](https://docs.impellabs.tech/partners/webhooks.md) for how to check
the signature.

## 4. Read the conversations

When a visitor writes in the chat, your endpoint receives `conversation.created` and `message.received`. Read the
conversation:

```bash theme={null}
curl "https://api.impellabs.tech/api/v1/partner/tenants/acme-001/conversations/?state=all" \
  -H "Authorization: Bearer implpk_..."
```

Without `state`, the list holds only conversations that a person has taken over. See
[Conversations](https://docs.impellabs.tech/partners/conversations.md).

## Next

Connect [WhatsApp](https://docs.impellabs.tech/partners/channels/whatsapp/setup.md) or [Messenger and Instagram](https://docs.impellabs.tech/partners/channels/meta.md) for the same
tenant.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.