Community integrations
Integrations built by the community on top of OpenWA's REST API, plus the supported paths for building and listing your own.
The projects in Available integrations are built and maintained by their respective authors. They are not affiliated with, endorsed by, or supported by OpenWA, and may lag behind OpenWA API changes. Verify version compatibility and review the source before relying on one in production.
Available integrations
| Integration | Platform | Source | Status | What it does |
|---|---|---|---|---|
| ioBroker.openwa | ioBroker home / IoT automation | GitHub · npm | Early stage | Sends text, image, video, audio, and document messages to chats and groups through OpenWA's REST API. Includes Blockly blocks for visual automation. |
For first-party integrations, see n8n nodes and the MCP server.
Build your own
Every integration above is a client of the same REST API you call directly. To bridge OpenWA to any platform, pick the path that matches what you're building:
| Path | Use when | Start here |
|---|---|---|
| Official SDK | You write JavaScript, Python, or PHP and want typed methods instead of raw HTTP | SDK overview |
| REST API | You're in another language, or want full control over the wire | API reference |
| Webhooks | Your integration must react to incoming messages or status changes | Webhooks guide |
| Plugins | The logic should run inside the gateway, with access to sessions and engine events | Plugins |
Every request authenticates with the X-API-Key header and targets the /api prefix. Local development runs at http://localhost:2785/api; in production the gateway sits behind your own domain and TLS. See authentication for how to obtain a key.
Send a message over REST
The smallest useful integration sends a message from an active session. Replace default with your session id and YOUR_API_KEY with a real key.
curl -X POST http://localhost:2785/api/sessions/default/messages/send-text \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chatId": "6281234567890@c.us",
"text": "Hello from my integration"
}'
A successful send returns 201 Created with the message id:
{
"messageId": "true_6281234567890@c.us_3EB0ABCD",
"timestamp": 1719312000
}
Endpoint paths, request fields, enums, and status codes are defined in the API reference, which is generated from the OpenAPI spec. The spec is the ground truth — check it before coding against any field shown here.
React to events with webhooks
To receive events instead of polling, register a webhook on a session. The gateway then POSTs each subscribed event to your URL.
curl -X POST http://localhost:2785/api/sessions/default/webhooks \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-app.example.com/openwa/webhook",
"events": ["message.received"]
}'
Registering a webhook returns 201 Created with the created subscription:
{
"id": "wh_3EB0ABCD",
"sessionId": "default",
"url": "https://your-app.example.com/openwa/webhook",
"events": ["message.received"],
"active": true,
"retryCount": 3,
"createdAt": "2024-06-25T12:00:00.000Z",
"updatedAt": "2024-06-25T12:00:00.000Z"
}
See the webhooks guide for the full event list, payload shapes, and signature verification.
Use the SDK instead of raw HTTP
If you work in JavaScript or TypeScript, the official SDK wraps these calls with typed methods. Install it:
npm install @rmyndharis/openwa
Then point it at your gateway and key. See SDK usage for the full client surface and method signatures; Python and PHP clients are listed in the SDK overview.
Get your project listed
Built an integration on OpenWA and want it in the table above? Open a pull request that adds a row, or open an issue with the same details. Include:
- The repository URL (and package link, if published).
- A one-line description of what the integration does.
- The target platform and current maturity (for example, "early stage" or "stable").
See the contributing guide for how to submit changes, and the community guidelines for what we expect from listed projects.
Next steps
- SDK overview — typed clients for JavaScript, Python, and PHP.
- API reference — the full endpoint surface, generated from the spec.
- Webhooks guide — receive events instead of polling.
- Plugins — run integration logic inside the gateway.