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

# SDKs

> Typed Python and TypeScript clients for the iZap REST API.

Call the REST API from your app with a generated client. Both SDKs use a
[personal access token](/en/api-reference/authentication). Create one in the
Dashboard under **User Settings → API Keys**.

| Package | Install | Source |
| - | - | - |
| Python SDK | `pip install izap` | [versariai/izap-sdk-python](https://github.com/versariai/izap-sdk-python) |
| TypeScript SDK | `npm install @izapai/sdk` | [versariai/izap-sdk-typescript](https://github.com/versariai/izap-sdk-typescript) |

The clients wrap the same public schema as the [REST API](/en/api-reference/introduction).
They send `business-id` as a header, retry idempotent requests, and raise one error
type on 4xx/5xx. Use `webhooks.verify` in either SDK to check a delivery's
signature against the **raw** request body — see [Webhooks](/en/api-reference/webhooks)
for the delivery headers and signing scheme.

Need a scaffold in an existing app? The [setup wizard](/en/api-reference/wizard)
writes REST, MCP, webhook, or SSE code. From a terminal,
`npm install -g @izapai/cli` — the [CLI](/en/api-reference/cli). `izap init`
runs the wizard.

## Python (`izap`)

Requires Python 3.11 or newer.

```bash theme={null}
pip install izap
```

```python theme={null}
import os

import izap
from izap.api.whatsapp_templates import list_whats_app_templates

client = izap.Client(
    os.environ["IZAP_TOKEN"],
    business_id=os.environ["IZAP_BUSINESS_ID"],
)

with client:
    templates = list_whats_app_templates.sync(client=client, status="approved")
    for template in templates.templates:
        print(template.name, template.language)
```

`izap.AsyncClient` is the asyncio counterpart. Point `base_url` at
`https://api-staging.izap.ai` for staging. Every 4xx/5xx raises `izap.IzapApiError`.

[PyPI: izap](https://pypi.org/project/izap/)

## TypeScript (`@izapai/sdk`)

Requires Node.js 20 or later. ESM with type declarations, for server-side use.

```bash theme={null}
npm install @izapai/sdk
```

```ts theme={null}
import { createClient } from "@izapai/sdk";

const izap = createClient({
  token: process.env.IZAP_TOKEN!,
  businessId: process.env.IZAP_BUSINESS_ID,
});

const { data } = await izap.listWhatsAppTemplates({
  query: { status: "approved" },
});
for (const template of data.templates) {
  console.log(template.name, template.language);
}
```

Pass `baseUrl: "https://api-staging.izap.ai"` for staging. Non-2xx responses throw
`IzapApiError`.

[npm: @izapai/sdk](https://www.npmjs.com/package/@izapai/sdk)


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