Getting started
-
Connect a WhatsApp number. In the panel open Connection and follow Connect your number. The API sends from your connected numbers.
-
Create an API key. Open Developer → API keys → Create a key. Give it a name (for example “Website”) and, if you like, limit it to one WhatsApp number. Copy the key — it starts with
mk_live_and is shown only once. -
Find an approved template. Business-initiated messages must use a template approved by Meta. List yours:
Terminal window curl https://login.meapi.in/api/v1/templates \-H "Authorization: Bearer mk_live_your_key" -
Send it. Replace the phone number with yours (international format) and the template name with one from the list.
Terminal window curl https://login.meapi.in/api/v1/messages \-H "Authorization: Bearer mk_live_your_key" \-H "Content-Type: application/json" \-d '{"to": "+919812345678","type": "template","template": { "name": "hello_world", "language": "en_US" }}'const res = await fetch('https://login.meapi.in/api/v1/messages', {method: 'POST',headers: { Authorization: `Bearer ${process.env.MEAPI_KEY}`, 'Content-Type': 'application/json' },body: JSON.stringify({ to: '+919812345678', type: 'template', template: { name: 'hello_world', language: 'en_US' } }),});console.log(res.status, await res.json());<?php$ch = curl_init('https://login.meapi.in/api/v1/messages');curl_setopt_array($ch, [CURLOPT_POST => true,CURLOPT_RETURNTRANSFER => true,CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('MEAPI_KEY'), 'Content-Type: application/json'],CURLOPT_POSTFIELDS => json_encode(['to' => '+919812345678', 'type' => 'template', 'template' => ['name' => 'hello_world', 'language' => 'en_US']]),]);$body = curl_exec($ch);echo curl_getinfo($ch, CURLINFO_HTTP_CODE), ' ', $body;import os, requestsr = requests.post("https://login.meapi.in/api/v1/messages",headers={"Authorization": f"Bearer {os.environ['MEAPI_KEY']}"},json={"to": "+919812345678", "type": "template", "template": {"name": "hello_world", "language": "en_US"}},timeout=30,)print(r.status_code, r.json())A
202 Acceptedresponse means MeAPI queued the message for WhatsApp:{"success": true,"message": { "id": 81234, "wamid": null, "status": "pending", "type": "template", "to": "+919812345678", "error": null, "created_at": "2026-10-26T10:15:02.000Z" },"conversation_id": 5521,"contact_id": 3310} -
Check delivery. Poll
GET /messages/{id}or, better, add a webhook formessage.statusevents.
Next steps
Section titled “Next steps”- When the customer replies, the 24-hour window opens and you can send free-form text, media and buttons.
- Keep your CRM in sync with contacts.
- Read about errors and rate limits before going live.
Was this page helpful?
Thank you — we read every comment.
Could not send right now. Please try again later.
© 2026 MeAPI by TheWebStore028 · RADHAMADHAV WEBSTORE LLP · GSTIN 27ABJFR6148J1ZO · Contact us ·Cookie settings