# Plans and API access Part of the InboxWA API reference: https://inboxwa.online/docs/api . Full reference as one document: https://inboxwa.online/docs/api.md . OpenAPI: https://inboxwa.online/openapi.json What the API includes depends on the plan. A call outside the plan is refused with a clear error, whatever scopes the key has. | | Starter | Growth | Scale | | --- | --- | --- | --- | | API keys | No | Yes | Yes | | What a key can call | Nothing | The core API | Every call, including reading contacts and chats and the Reporting API | | Outbound webhooks | No | 5 core events | All 11 events | | Zapier and Make | No | Yes | Yes | ## The core API (Growth and Scale) The calls an integration needs: send messages, keep contacts up to date, list templates, and connect Zapier or Make. - `POST /api/send-message`: Send a message - `POST /api/bulk-send`: Send a broadcast - `GET /api/templates`: List message templates - `POST /api/contacts`: Create or update a contact - `PUT /api/contacts/:phone/name`: Set a contact’s name - `PUT /api/contacts/:phone/status`: Set a contact’s status - `PUT /api/contacts/:phone/email`: Set a contact’s email - `PUT /api/contacts/:phone/company`: Set a contact’s company - `PUT /api/contacts/:phone/tags`: Set a contact’s tags - `PUT /api/contacts/:phone/notes`: Set a contact’s notes - `PUT /api/contacts/:phone/attributes`: Merge custom attributes - `DELETE /api/contacts/:phone/attributes/:key`: Delete a custom attribute - `POST /api/contacts/:phone/opt-out`: Mark a contact opted out - `POST /api/contacts/:phone/opt-in`: Re-subscribe a contact - `/api/zapier/*` (any method): Zapier triggers and actions - `GET /api/reporting/v1/whoami`: Check a key ## The full API (Scale) Every other call a key can make: reading contacts and chats, the Reporting API, deleting contacts, marking a chat read, team, SLA and credits, key and webhook management with a key, and the rest of the app’s routes. Only the calls documented in this reference are supported; see the Overview. ## Webhook events by plan - **Growth and Scale:** `message_received`, `message_sent`, `contact_created`, `handoff`, `tag_added`. - **Scale adds:** `message_status`, `conversation_seen`, `conversation_assigned`, `conversation_resolved`, `sla_breached`, `credits_threshold`. - **Starter:** none. A webhook set up while on a higher plan stops receiving events when the plan drops. ## When a call is outside the plan | Status | error | When | | --- | --- | --- | | 403 | `api_not_in_plan` | A Starter workspace used a key, or tried to create one. | | 403 | `api_access_not_enabled` | A Growth key made a call that is part of the full API. | | 403 | `webhooks_not_in_plan` | A Starter workspace tried to set up webhooks. | | 403 | `event_requires_scale` | A Growth workspace subscribed to an event that is part of Scale. | `GET /api/reporting/v1/whoami` shows what your plan includes: `api_tier` is `core` on Growth and `full` on Scale.