ZenTalksAI (A Brand of Almighty Creation) API
Send WhatsApp utility messages and capture leads from any website, app, or platform — in any programming language.
Overview
The ZenTalksAI (A Brand of Almighty Creation) API lets any external system — an e-commerce store, CRM, ERP, custom web app, or internal tool — send WhatsApp utility messages and capture leads directly, without using the ZenTalksAI (A Brand of Almighty Creation) dashboard. It's a plain REST API that works over standard HTTPS with JSON, so it works with every programming language: PHP, Python, Node.js, Java, Ruby, Go, and more.
https://tirupatikitchen.in/api/v1All requests must use HTTPS and include your API key in the
X-API-Key header.
Authentication
Every request must include your API key in the X-API-Key header.
Generate a key from your dashboard under API Portal after signing up.
Quick Start
Get your first message sent in under 5 minutes.
1. Get an API key
Sign up, log in to your dashboard, and generate a key from the API Portal.
2. Create an approved template
Build a UTILITY or AUTHENTICATION template and submit it for Meta approval — usually approved within minutes to a few hours.
3. Make your first request
Send Message
Send a WhatsApp utility or authentication template message to any phone number.
Request Body
| Field | Type | Description | |
|---|---|---|---|
to |
string | required | Phone number with country code, digits only, no + sign. E.g. 919876543210 |
type |
string | required | Must be template |
template.name |
string | required | The exact name of an approved template |
template.language |
string | optional | Defaults to en |
variables |
object | optional | Named key-value pairs matching your template's variable map |
phone_number_id |
string | optional | Target a specific WhatsApp number if your account has multiple |
Example Request
Success Response 200 OK
Error Response 4xx / 5xx
Capture Contact
Capture a lead from a website form, e-commerce checkout, or any external system. Works with any field structure — unrecognized fields are stored automatically without requiring schema changes on our end.
Request Body
| Field | Type | Description | |
|---|---|---|---|
phone |
string | required | Phone number with country code |
name |
string | optional | Full name |
email |
string | optional | Email address |
company |
string | optional | Company name |
city / state / country |
string | optional | Location fields |
tags |
array or string | optional | Tag names — created automatically if they don't exist |
source |
string | optional | Label for where the lead came from, e.g. website_form |
send_welcome |
boolean | optional | Send a WhatsApp message immediately after capture |
| any other field | any | optional | Stored automatically — no schema changes needed |
Example — Website Lead Form
Response
action is either created or updated — sending the same phone number again updates the existing contact instead of creating a duplicate.
List Contacts
Query Parameters
| Param | Type | Description |
|---|---|---|
limit |
integer | Max results, default 25, max 100 |
offset |
integer | Pagination offset |
phone |
string | Filter by exact phone number |
source |
string | Filter by source label |
status |
string | Filter by contact status |
Templates & Variables
Only UTILITY and AUTHENTICATION category templates can be sent through the API. Marketing templates are restricted to campaign sending inside the dashboard, in line with WhatsApp's commerce policy.
Each template can have a variable map — a friendly name for each placeholder
(e.g. {{'{{1}}'}}
= customer_name).
Find your template's variable names in your dashboard's API Portal under the Templates tab.
Example template
Rate Limits
Each API key can have an optional daily message limit set by your account administrator.
By default, keys are unlimited. If a limit is reached, requests return a
429 status until the counter resets at midnight.
Error Codes
| HTTP | Error | Meaning |
|---|---|---|
| 401 | UNAUTHORIZED |
Missing or invalid API key |
| 403 | ROLE_FORBIDDEN |
Account type not permitted to use the API |
| 403 | CATEGORY_NOT_ALLOWED |
Template is not UTILITY or AUTHENTICATION |
| 422 | MISSING_FIELD |
A required field is missing from the request |
| 422 | INVALID_PHONE |
Phone number format is invalid |
| 422 | TEMPLATE_NOT_FOUND |
Template not found or not approved |
| 422 | NO_WHATSAPP_NUMBER |
No active WhatsApp number connected |
| 422 | META_ERROR |
WhatsApp rejected the request — see meta_code for details |
| 429 | DAILY_LIMIT_REACHED |
Daily message limit reached for this key |
| 500 | SEND_FAILED |
Unexpected server error — retry after a few seconds |
Webhooks (Real-Time Events)
In addition to calling our API, you can subscribe to real-time outbound webhooks so your system gets notified instantly when something happens — a message is delivered, read, or a new contact is captured. Configure these in your dashboard under Settings → Webhooks.
| Event | Fires When |
|---|---|
message.sent |
An outbound message is sent (including via API) |
message.delivered |
WhatsApp confirms delivery |
message.read |
Recipient reads the message |
message.failed |
Message delivery fails |
contact.created |
A new contact is captured |
Verifying webhook authenticity
Frequently Asked Questions
Can I use this with any programming language?
Yes. The API is plain HTTPS + JSON. Any language capable of making an HTTP request can use it — Python, Node.js, PHP, Java, Ruby, Go, C#, and more.
Can I send marketing/promotional messages via API?
No. Only UTILITY and AUTHENTICATION templates are permitted via API, in line with WhatsApp's commerce policy. Marketing campaigns must be sent through the dashboard's campaign tool.
What happens if I send to the same phone number twice via Capture Contact?
The existing contact is updated instead of creating a duplicate. You can safely call this endpoint every time a customer interacts with your form.
Is there a sandbox or test mode?
Use your own WhatsApp test number connected to your account. All API calls go through the same production pipeline as dashboard-sent messages.
Ready to integrate?
Create an account and generate your first API key in under 2 minutes.
Get Started Free →