Contacts
Contacts belong to a WhatsApp number (channel_id). They are created automatically when someone messages you or you send to them, and you can create or update them yourself.
List contacts
Section titled “List contacts”GET https://login.meapi.in/api/v1/contacts| Query | Description |
|---|---|
page |
Page number, from 1 |
limit |
Per page, 1–200 (default 50) |
q |
Search the name, WhatsApp profile name or phone digits (without +) |
tag |
Only contacts with this tag |
updated_since |
ISO date-time; only contacts changed since then — handy for syncing |
channel_id |
Which of your numbers (default: the key’s number or your default) |
{ "success": true, "page": 1, "limit": 50, "total": 1284, "contacts": [ { "id": 3310, "phone": "+919812345678", "name": "Asha Patel", "tags": ["vip", "lead"], "fields": { "city": "Pune", "plan": "gold" }, "opted_out": false, "opt_in_source": "inbound_message", "opt_in_at": "2026-10-01T09:12:44.000Z", "last_message_at": "2026-10-26T10:15:02.000Z", "created_at": "2026-09-30T18:02:11.000Z", "updated_at": "2026-10-26T10:15:02.000Z" } ]}name is the name you saved, or else the customer’s WhatsApp profile name. Contacts are sorted by id, oldest first.
Create or update a contact
Section titled “Create or update a contact”POST https://login.meapi.in/api/v1/contactsMatches on the phone number: creates the contact if it is new (201), otherwise updates it (200).
| Field | Type | Description |
|---|---|---|
phone |
string | Required. International format, e.g. +919812345678. Without +, 10 digits or fewer are read as an Indian number. |
name |
string | Sets the name, up to 190 characters (null or "" clears it). Leave it out to keep the current name. |
tags |
string or string[] | Tags to add. Each tag is cut to 50 characters; a contact keeps at most 100 tags. |
remove_tags |
string or string[] | Tags to remove |
fields |
object | Custom fields to merge; a null value removes that field. Names are lower-cased, and any character other than a-z, 0-9 and _ becomes _ (max 64 characters). Values are stored as text, up to 1,000 characters; objects are stored as JSON text. |
opted_in |
boolean | true: the customer gave consent (for example on your website). Clears an earlier opt-out, records the opt-in source api and starts your published Opt-in flows. false: opt the contact out, as if they had sent STOP (no message is sent). |
channel_id |
integer | Which of your numbers (body or query) |
Date fields that drive Auto reminders — payment_due, appointment_at, renewal_date, birthday… — take 2026-11-02, 02/11/2026 (day first) or either with a time (15:30, 3:30 pm). Changing the date re-plans that contact’s reminders; removing it stops them.
curl https://login.meapi.in/api/v1/contacts \ -H "Authorization: Bearer $MEAPI_KEY" -H "Content-Type: application/json" \ -d '{ "phone": "+919812345678", "name": "Asha Patel", "tags": ["vip"], "fields": { "city": "Pune", "birthday": "1992-03-14" } }'await fetch('https://login.meapi.in/api/v1/contacts', { method: 'POST', headers: { Authorization: `Bearer ${process.env.MEAPI_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ phone: '+919812345678', tags: ['customer'], remove_tags: ['lead'], fields: { plan: 'gold' } }),});<?php$payload = ['phone' => '+919812345678', 'name' => 'Asha Patel', 'tags' => ['vip'], 'fields' => ['city' => 'Pune']];$ch = curl_init('https://login.meapi.in/api/v1/contacts');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($payload)]);echo curl_exec($ch);requests.post("https://login.meapi.in/api/v1/contacts", headers={"Authorization": f"Bearer {MEAPI_KEY}"}, json={"phone": "+919812345678", "tags": ["vip"], "fields": {"city": "Pune"}}, timeout=30){ "success": true, "created": true, "contact": { "id": 3310, "phone": "+919812345678", "name": "Asha Patel", "tags": ["vip"], "fields": { "city": "Pune", "birthday": "1992-03-14" }, "opted_out": false }}Tags and fields you set here can drive campaigns (segments), automation conditions and date triggers such as birthdays. Contacts who sent STOP show opted_out: true; only the customer can opt back in, by sending START.
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