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

# Quickstart

> Connect your account, create an API key, and send your first message with WazzAPI

# Getting Started

This guide walks through the standard SaaS onboarding flow so you can send your first message as quickly as possible.

1. sign in to the dashboard
2. connect a WhatsApp account
3. create an API key
4. inspect your connected devices
5. send a test message through the API
6. track delivery status

<Steps>
  <Step title="Sign in to the dashboard">
    Open the WazzAPI dashboard at `https://app.wazzapi.com` and sign in with your account.

    If you are joining an existing workspace, make sure you have access to the correct organization before creating keys or connecting devices.
  </Step>

  <Step title="Connect a WhatsApp account">
    In the dashboard, connect at least one WhatsApp account so you have an active sender.

    You will need the `whatsapp_account_id` for API sends.

    Optional: enable an HTTP or SOCKS5 proxy while linking if you need a fixed egress IP. See [Proxy Support](/features/proxy).
  </Step>

  <Step title="Create an API key">
    In the dashboard, open **Developers** and create a new API key.

    Pick scopes based on the workflow you want to enable:

    * `admin:read` to inspect devices and other read-only operational data
    * `messages:send` to send messages and interactive messages
    * `contacts:write` to import or manage contacts
    * `campaigns:write` to manage templates and WhatsApp groups

    <Warning>
      Keep the key server-side only. The full secret is shown once.
    </Warning>
  </Step>

  <Step title="Inspect your connected devices">
    Use the device list endpoint to confirm which WhatsApp accounts are available to your API key. This call requires `admin:read` or higher.

    ```bash theme={null}
    curl -X GET https://api.wazzapi.com/api/v1/devices \
      -H "Authorization: Bearer YOUR_API_KEY"
    ```
  </Step>

  <Step title="Send Your First Message">
    Use the API endpoint below. Replace the API key, destination number, and WhatsApp account ID with real values from your environment. This call requires `messages:send` or higher.

    ```bash theme={null}
    curl -X POST https://api.wazzapi.com/api/v1/messages/send \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "phone_number": "6281234567890",
        "content": "Hello from WazzAPI!",
        "message_type": "text",
        "whatsapp_account_id": "00000000-0000-0000-0000-000000000000",
        "validate_phone": true
      }'
    ```
  </Step>

  <Step title="Track the result">
    Use the returned `message_id` to check delivery status, or watch updates in the dashboard and webhook deliveries.

    ```bash theme={null}
    curl -X GET https://api.wazzapi.com/api/v1/messages/YOUR_MESSAGE_ID \
      -H "Authorization: Bearer YOUR_API_KEY"
    ```
  </Step>
</Steps>

## Base URLs

Use these hosted URLs for the WazzAPI SaaS platform:

| Environment   | URL                        |
| :------------ | :------------------------- |
| **Dashboard** | `https://app.wazzapi.com`  |
| **API**       | `https://api.wazzapi.com`  |
| **Docs**      | `https://docs.wazzapi.com` |

## What the public API covers

The public API is strongest around:

* contacts and groups
* devices and connection state
* direct messaging and message status
* templates and preview
* webhook delivery events

Bulk campaign orchestration and some advanced workflows are still managed mainly in the dashboard.

## Next Steps

Once your first message is flowing, continue with:

<CardGroup cols={3}>
  <Card title="Authentication" icon="key" href="/authentication">
    Learn when to use dashboard sign-in and when to use API keys.
  </Card>

  <Card title="WazzAPI MCP" icon="sparkles" href="/wazzapi-mcp">
    Connect WazzAPI to an MCP-compatible coding agent for natural-language workflows.
  </Card>

  <Card title="Python SDK" icon="python" href="/sdks/python">
    Install `wazzapi` from PyPI and start sending messages with a typed client.
  </Card>

  <Card title="Node.js SDK" icon="node-js" href="/sdks/node">
    Install `@wazzapi/wazzapi` for Node.js and TypeScript projects.
  </Card>

  <Card title="Webhooks" icon="webhook" href="/webhooks">
    Subscribe to signed delivery and device lifecycle events.
  </Card>
</CardGroup>
