Wow! Build your WhatsApp integration. Start free. Register Now
Automate WhatsApp Groups Without Meta’s Limits

WhatsApp Groups API

Create groups, add members directly, manage admins, and sync events through a simple API. Link your WhatsApp number once — the same way as WhatsApp Web — and start automating in about 2 minutes.

Skip Meta approvals Free Sandbox
our powerful WhatsApp Cloud API for Groups
Decorartive bubble
You don't need to migrate your number. Work with any number you are already using

How to use?

Icon

Pair your number via QR

Connect your standard personal or business WhatsApp number via QR code (like WhatsApp Web) in 30 seconds, with no Meta reviews or approvals.

Icon

Test group API methods

Create test groups, add participants programmatically, and send text or rich media messages instantly.

Icon

Configure group webhooks

Configure live-stream webhooks for group events (new messages, additions, removals, admin status) to trigger backend actions.

REST API Hub

Integrate WhatsApp Groups API, it's easy!

curl --request POST \
     --url https://gate.whapi.cloud/groups \
     --header 'accept: application/json' \
     --header 'authorization: Bearer YOUR_API_TOKEN' \
     --header 'content-type: application/json' \
     --data '
{
  "subject": "New Project Team",
  "participants": [
    "15056482143",
    "15056482144"
  ]
}
'
// composer require guzzlehttp/guzzle
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://gate.whapi.cloud/groups', [
  'body' => '{"subject":"New Project Team","participants":["15056482143","15056482144"]}',
  'headers' => [
    'accept' => 'application/json',
    'authorization' => 'Bearer YOUR_API_TOKEN',
    'content-type' => 'application/json',
  ],
]);
echo $response->getBody();
# python -m pip install requests
import requests

url = "https://gate.whapi.cloud/groups"
payload = {
    "subject": "New Project Team",
    "participants": ["15056482143", "15056482144"]
}
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
// npm install axios --save
import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://gate.whapi.cloud/groups',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    authorization: 'Bearer YOUR_API_TOKEN'
  },
  data: {
    subject: 'New Project Team',
    participants: ['15056482143', '15056482144']
  }
};
axios.request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"subject\":\"New Project Team\",\"participants\":[\"15056482143\",\"15056482144\"]}");
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/groups")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("content-type", "application/json")
  .addHeader("authorization", "Bearer YOUR_API_TOKEN")
  .build();
Response response = client.newCall(request).execute();
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/groups");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer YOUR_API_TOKEN");
request.AddJsonBody("{\"subject\":\"New Project Team\",\"participants\":[\"15056482143\",\"15056482144\"]}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
curl --request POST \
     --url https://gate.whapi.cloud/messages/text \
     --header 'accept: application/json' \
     --header 'authorization: Bearer YOUR_API_TOKEN' \
     --header 'content-type: application/json' \
     --data '
{
  "to": "[email protected]",
  "body": "Hello Group! This is an automated update."
}
'
// composer require guzzlehttp/guzzle
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://gate.whapi.cloud/messages/text', [
  'body' => '{"to":"[email protected]","body":"Hello Group! This is an automated update."}',
  'headers' => [
    'accept' => 'application/json',
    'authorization' => 'Bearer YOUR_API_TOKEN',
    'content-type' => 'application/json',
  ],
]);
echo $response->getBody();
# python -m pip install requests
import requests

url = "https://gate.whapi.cloud/messages/text"
payload = {
    "to": "[email protected]",
    "body": "Hello Group! This is an automated update."
}
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
// npm install axios --save
import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://gate.whapi.cloud/messages/text',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    authorization: 'Bearer YOUR_API_TOKEN'
  },
  data: {
    to: '[email protected]',
    body: 'Hello Group! This is an automated update.'
  }
};
axios.request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"to\":\"[email protected]\",\"body\":\"Hello Group! This is an automated update.\"}");
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/messages/text")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("content-type", "application/json")
  .addHeader("authorization", "Bearer YOUR_API_TOKEN")
  .build();
Response response = client.newCall(request).execute();
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/messages/text");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer YOUR_API_TOKEN");
request.AddJsonBody("{\"to\":\"[email protected]\",\"body\":\"Hello Group! This is an automated update.\"}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
curl --request GET \
     --url https://gate.whapi.cloud/groups/[email protected]/participants \
     --header 'accept: application/json' \
     --header 'authorization: Bearer YOUR_API_TOKEN'
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://gate.whapi.cloud/groups/[email protected]/participants', [
  'headers' => [
    'accept' => 'application/json',
    'authorization' => 'Bearer YOUR_API_TOKEN',
  ],
]);
echo $response->getBody();
import requests

url = "https://gate.whapi.cloud/groups/[email protected]/participants"
headers = {
    "accept": "application/json",
    "authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.get(url, headers=headers)
print(response.text)
import axios from 'axios';

const options = {
  method: 'GET',
  url: 'https://gate.whapi.cloud/groups/[email protected]/participants',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer YOUR_API_TOKEN'
  }
};
axios.request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/groups/[email protected]/participants")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer YOUR_API_TOKEN")
  .build();
Response response = client.newCall(request).execute();
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/groups/[email protected]/participants");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer YOUR_API_TOKEN");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
curl --request POST \
     --url https://gate.whapi.cloud/groups/[email protected]/participants/add \
     --header 'accept: application/json' \
     --header 'authorization: Bearer YOUR_API_TOKEN' \
     --header 'content-type: application/json' \
     --data '
{
  "participants": [
    "15056482145"
  ]
}
'
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://gate.whapi.cloud/groups/[email protected]/participants/add', [
  'body' => '{"participants":["15056482145"]}',
  'headers' => [
    'accept' => 'application/json',
    'authorization' => 'Bearer YOUR_API_TOKEN',
    'content-type' => 'application/json',
  ],
]);
echo $response->getBody();
import requests

url = "https://gate.whapi.cloud/groups/[email protected]/participants/add"
payload = {
    "participants": ["15056482145"]
}
headers = {
    "accept": "application/json",
    "content-type": "application/json",
    "authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://gate.whapi.cloud/groups/[email protected]/participants/add',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    authorization: 'Bearer YOUR_API_TOKEN'
  },
  data: {
    participants: ['15056482145']
  }
};
axios.request(options)
  .then(res => console.log(res.data))
  .catch(err => console.error(err));
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"participants\":[\"15056482145\"]}");
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/groups/[email protected]/participants/add")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("content-type", "application/json")
  .addHeader("authorization", "Bearer YOUR_API_TOKEN")
  .build();
Response response = client.newCall(request).execute();
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/groups/[email protected]/participants/add");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer YOUR_API_TOKEN");
request.AddJsonBody("{\"participants\":[\"15056482145\"]}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
{
  "event": "group_participant_add",
  "channel_id": "YOUR_CHANNEL_ID",
  "timestamp": 1785981240,
  "data": {
    "group_id": "[email protected]",
    "actor": "[email protected]",
    "participants": [
      "[email protected]"
    ],
    "action": "add"
  }
}

Group Messaging via API

Easily send any message type to WhatsApp groups — with no Meta template approvals and no per-message fees. If your number can post in the group, the API can send it.

Push ops updates, onboarding nudges, and support replies to any group your number can access. Send rich media for announcements, run polls for quick feedback, and use reply buttons or list messages to drive the next step — all from one API call.

Meta's Business API routes every outbound message through pre-approved templates and category checks. With Whapi.Cloud you message groups freely on a flat subscription — no template library and no per-message billing.

Receiving Group data & Parsing

Parse groups your number has joined — members, posts, polls, and message history. Join groups via API, get live changes over webhooks, and resolve anonymized @lid IDs to real phone numbers when WhatsApp hides them.

Pull member lists and phone numbers for CRM sync. When WhatsApp returns anonymized @lid IDs, Whapi.Cloud resolves them to real numbers — even when a user hid their number.

Receive messages as they are posted, or pull history for analysis — including polls and other group activity your channel can see.
WhatsApp API for GROUPS

Participant Management

Onboard members programmatically: add people by phone — up to 1,024 per group versus Meta Cloud API's 8. Always promote a secondary admin via API so a bot disconnect never leaves you without group control.

Create a group with subject and participants, then promote a secondary admin via API — so a bot disconnect does not leave the business without control.

Add members by phone with the direct-add endpoint. When WhatsApp privacy blocks it, your code can fetch a group invite link and send it with the dedicated API methods — you control when to switch.

Automation and Monitoring

Trigger WhatsApp group workflows from your stack — a payment, CRM stage change, or new signup can create a group, add the customer and your manager, and send a welcome message. Monitor it all through live webhooks.

Run bots and automations in groups: welcome new members, answer common requests, and schedule updates without manual posting.

Subscribe to group webhooks for joins, leaves, messages, and admin changes — then route events into your CRM, helpdesk, or n8n/Make flows.
line
WhatsApp API Usage
line

See What Our Clients Built
with Whapi.Cloud

“Every morning ops gets today’s Guesty check-ins as one WhatsApp message — VIP tags, late arrivals, room notes. Nobody opens the PMS dashboard first.”

Guesty-to-WhatsApp room alerts

Muhammad Hisham Akram
“We watch RSS feeds, summarize each article, generate a vertical image, and post it as a WhatsApp Story. Open rates beat email because the story is already in the app.”

RSS feed to daily WhatsApp Stories

Hamza Irshad
“Patients book, look up, and reschedule on WhatsApp 24/7. Pricing and sensitive questions never stay with the agent — they escalate to a human.”

Clinic bookings with human handoff

Thelma Ekeli Ekomboni Ekema
“Field staff log a visit in under a minute. Twice a day the WhatsApp group shows who visited, who is active, and who didn’t — problems surface in hours, not at week’s end.”

Twice-daily field-team summaries

Kenny Kwanto
“The bot answers routine WhatsApp messages, then stops the moment an emergency intent appears and routes to a person. It does not pretend to handle life-critical cases.”

Emergency detection and human escalation

Akhil Devarapu
“Exam reminders go out to thousands of students because sends are paced and content varies. A raw blast would trip WhatsApp spam limits.”

Rate-limited student reminders

Gurkirat Singh
“Gmail, WhatsApp, and web forms land in one CRM agent. Escalation stays under 25%, and WhatsApp cost stays a flat per-number fee.”

Multi-channel AI customer-success agent

Ahsen Adil
“Managing multiple WhatsApp groups is simple with Whapi.Cloud. I can oversee group activity, manage admins, and post updates effortlessly. It’s a perfect way to generate leads directly from WhatsApp groups.”

Group Management and Lead Generation from WhatsApp Groups

Carlos da Silva
“Our hotel uses WhatsApp to send guests essential check-in details like door codes. This ensures they always have the info they need. We can even process photos guests send, such as proof of checkout.”

Smart Hotel Communication for Check-In and Guest Support

Ana-Maria Ionescu
“We manage a WhatsApp Channel and use Whapi.Cloud to monitor similar channels and competitors, scraping the best deals and posting them for our audience.”

Automated Discount Channel Management

Katrin Schneider
“We use Whapi.Cloud to verify which numbers in our database are on WhatsApp by sending cascading broadcasts. This way, we filter our contacts, reduce marketing costs, and know our messages reach active users-maximizing campaign efficiency.”

WhatsApp Number Verification and Audience Filtering

Sergio Navarro
“Our hospital’s bot, powered by Whapi.Cloud, lets patients see available appointment slots for specific doctors and notifies them when test results are ready. It keeps everyone informed and reduces the time our team spends on manual updates.”

Hospital Bot for Appointment Scheduling and Notifications

Fernanda Oliveira
“We use personalized promotional offers to engage customers weeks after their purchase, sending out exclusive discount vouchers via WhatsApp. We also send a special offer for each customer’s birthday, which boosts loyalty and keeps them coming back.”

Customer Loyalty and Retention

Lukas Wagner
“As soon as an order ships, our customers get tracking details and delivery updates directly on WhatsApp. This real-time communication builds trust and reduces the number of inquiries we receive after purchase.”

Order Tracking and Delivery Updates

Matei Popescu
“If a customer leaves items in their cart on our site, WhatsApp Bot automatically sends a friendly reminder. This gentle nudge has significantly increased our checkout rate, helping us convert more sales.”

Abandoned Cart Reminders

Hans Müller
Inhouse Developed & Managed

What is Whapi.Cloud?

Straightforward and powerful! Whapi.Cloud is an intuitive API that enables you to seamlessly connect your business with WhatsApp.
With Whapi.Cloud, you can focus on what really matters – growing your business.
Enjoy endless integration possibilities, such as building support bots, scheduling appointments, sending WhatsApp notifications, and so much more.
Plus, monitor everything effortlessly with webhooks. Getting started has never been easier!

Our service provides full control and management of WhatsApp groups, communities and channels.

Add dynamics and new features: media, buttons, reactions, stories, orders and products. All of these are available to you for customer interaction.

Our care team will respond quickly and help you with any questions you may have!
Account screenshot
Account screenshot
Decorartive bubble
Supported WhatsApp Features

Everything you need to build WhatsApp automation

Whapi.Cloud gives you access to a complete set of WhatsApp features — messaging, media, groups, channels, webhooks and more. Build bots, automations and integrations without feature limitations.

How to use WhatsApp Groups via API?

WhatsApp Groups are perfect for bringing people together for discussions, collaboration, or sharing updates in a dedicated space. With the API, you can automate group functionalities, making communication efficient and seamless. For example, our clients often:
Programmatically creating groups: Create groups with customers and agents after confirming a service in a chatbot or joining closed payment groups.
Autoposting and fetching information from groups: Use polls within groups to gather insights and feedback quickly, get all the information and communication in the group.
Parsing groups and members' personal contacts: Extract participant lists to identify potential leads and build targeted campaigns.
With the API, managing group members, sending messages, or customizing settings becomes effortless, helping businesses save time and optimize engagement.
Whapi.Cloud - Get started for free!

WhatsApp API Pricing

Billed monthly

Billed annually

Developer Sandbox

Free for Development

Full API functionality for testing and development, with usage limits applied

  • Up to 5 active conversations per month

  • Up to 150 messages per day

  • Up to 30 WhatsApp number checks per day

  • Up to 1,000 API requests per month

  • Periodic activity required

  • Standard support (non-priority)

Start Free Trial
Developer Premium

$29 / month

$40
33% off

A stable and reliable service for production workloads with priority support

  • Unlimited messaging & media

  • Full access to Groups, Channels & Webhooks

  • No per-message charges

  • Priority live support & faster incident handling

  • Automatic number warming module

  • Built-in tools and automation integrations

  • Suitable for long-term, stable production workflows

Price per WhatsApp number. Discounts for multiple numbers.

Selected: 1

1

Price For Number

Start Free Trial
5-day
trial
Flat-Rate WhatsApp Groups API vs Metered WABA Pricing

Meta's Cloud API charges per 24-hour conversation and imposes strict limits on group creations and automated participants. With Whapi.Cloud, you pay a flat monthly subscription with no per-message fees or limits on creating groups. Integrate in minutes with any phone number.

Detailed WABA vs Whapi.Cloud Comparison
Groups API, answered clearly

Frequently asked Groups API questions

No. With Whapi.Cloud you link a regular WhatsApp number — personal or Business app — and start calling the Groups API. There is no Official Business Account (OBA) requirement, no template pre-approval, and no Meta review gate before you can create groups or manage participants.
On Meta’s official Groups API, each group is capped at 8 participants, and the feature is available only to Official Business Accounts (OBA) — regular Business numbers cannot use it. You also cannot add people by phone the way WhatsApp Web does; joining is invite-based. With Whapi.Cloud there is no OBA gate and no 8-person Cloud API cap: link any personal or Business WhatsApp number and use normal WhatsApp group automation via API.
Yes. Use POST https://gate.whapi.cloud/groups/{GroupID}/participants to add members by phone number. Get your API token at whapi.cloud and call the method right away.
Register for a Free Sandbox account, link your WhatsApp number (personal or Business) the same way as WhatsApp Web, copy your API token, and call group methods right away. No Meta approvals, no Official Business Account, and no template review are required to get started.
WhatsApp sometimes shows anonymized participant IDs (@lid) instead of phone numbers. Whapi.Cloud can resolve a LID to the real phone number — use GET https://gate.whapi.cloud/contacts/ids/{ContactLID}.
Not if you follow the Secondary Admin pattern. Always promote a backup admin via API when you create a group. If your primary bot number temporarily disconnects or needs review, the secondary admin keeps business control of the group and members.
Simply reading group data through the API does not get your number banned. Bans usually come from user complaints — for example adding people who did not agree to join, or sending unexpected messages they report. That risk comes from how you use WhatsApp with recipients, not from the API itself.
Yes. On payment (or a CRM stage change), call the Groups API to create a support group, add the customer and your manager, then send a welcome message. You can run this from your backend or from tools like n8n and Make.
Yes. Register for the Free Sandbox — no credit card required — connect your number, and try create, add, message, and webhook flows with our docs and code samples before you upgrade.