[{"data":1,"prerenderedAt":187},["ShallowReactive",2],{"pseo:features:group-participants":3,"highlight:pillar:group-participants":180},{"availability":4,"ban_risk":5,"ban_risk_note":6,"category":7,"cloud_api_status":11,"contrast":12,"endpoints":19,"faqs":46,"gotchas":59,"name":63,"published":64,"related":65,"search_terms":127,"seo":132,"slug":147,"step_summary":148,"steps":149,"summary":164,"tier":165,"updated":13,"url":142,"use_cases":166,"webhook_events":176},"ga","high","Adding people who never asked to be in a group is the behaviour WhatsApp punishes hardest, because it is what bulk marketing looks like from the inside. Prefer invite links; when you must add directly, add small batches of people who expect it, spread over time, and stop immediately if the API starts reporting that participants are being invited rather than added.",{"name":8,"slug":9,"url":10},"Groups","groups","\u002Fwhatsapp-api\u002Fgroups\u002F","forbidden",{"demand":5,"meta_checked":13,"meta_doc_url":14,"meta_quote":15,"official_workaround":16,"short_verdict":17,"verdict":18},"2026-09-15","https:\u002F\u002Fdevelopers.facebook.com\u002Fdocs\u002Fwhatsapp\u002Fcloud-api\u002Freference","Paraphrase (not a verbatim quote), checked against the Cloud API reference index: no node or edge for listing, adding or removing group participants appears in the reference.","None. Teams on the official platform maintain the group by hand on a phone and use the API only for the individual messages around it, which means the membership in WhatsApp and the membership in their own system are reconciled by a person.","No. The official API cannot add or remove group members.","Because Meta's Cloud API documents no group endpoints at all, there is nothing to add a participant to. Membership management is a client capability, which is why every team that needs it either does it by hand on a phone or uses an API that speaks the protocol directly.",[20,30,37],{"availability":4,"ban_risk":21,"curl":22,"method":25,"operationId":26,"path":27,"summary":28,"tag":9,"url":29},"low",{"code":23,"lang":24},"curl --request GET \\\n  --url https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fgroups\u002F120363041234567890@g.us\u002Fparticipants \\\n  --header 'Authorization: Bearer wpt_YOUR_TOKEN'","bash","GET","listGroupParticipants","\u002Fgroups\u002F{id}\u002Fparticipants","List group participants","\u002Fdocs\u002Fapi\u002Fgroups\u002Flist-group-participants\u002F",{"availability":4,"ban_risk":5,"curl":31,"method":33,"operationId":34,"path":27,"summary":35,"tag":9,"url":36},{"code":32,"lang":24},"curl --request POST \\\n  --url https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fgroups\u002F120363041234567890@g.us\u002Fparticipants \\\n  --header 'Authorization: Bearer wpt_YOUR_TOKEN' \\\n  --header 'Content-Type: application\u002Fjson' \\\n  --data '{\"participants\":[\"+15551234567\",\"+15559876543\"]}'","POST","addGroupParticipants","Add participants to a group","\u002Fdocs\u002Fapi\u002Fgroups\u002Fadd-group-participants\u002F",{"availability":4,"ban_risk":38,"curl":39,"method":41,"operationId":42,"path":43,"summary":44,"tag":9,"url":45},"medium",{"code":40,"lang":24},"curl --request DELETE \\\n  --url 'https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fgroups\u002F120363041234567890@g.us\u002Fparticipants\u002F+15551234567' \\\n  --header 'Authorization: Bearer wpt_YOUR_TOKEN'","DELETE","removeGroupParticipant","\u002Fgroups\u002F{id}\u002Fparticipants\u002F{pid}","Remove a participant from a group","\u002Fdocs\u002Fapi\u002Fgroups\u002Fremove-group-participant\u002F",[47,50,53,56],{"a":48,"q":49},"WhatsApp lets everyone choose who may add them to groups. If a person has restricted that to their contacts, an add from an unknown number becomes an invitation they have to accept. The API reports this per participant, so your code can tell the difference between someone who is in the group and someone who has merely been asked.","Why are some people invited instead of added?",{"a":51,"q":52},"The group itself has a member ceiling set by WhatsApp, and practical experience says that adding many people in quick succession draws attention regardless of the ceiling. Add in small batches with a pause between them, and if the group is large, publish an invite link and let people join at their own pace.","Is there a limit to how many I can add at once?",{"a":54,"q":55},"Yes, technically, but think about whether you should. Someone who left a group and is immediately put back in is very likely to report the number, and repeated re-adds of the same person are a strong abuse signal. Send them the invite link instead and let them decide.","Can I re-add someone who left?",{"a":57,"q":58},"The participants webhook carries every membership change, including ones made by other admins from their phones, with the action and the participant. Subscribing to that event is the only reliable way to keep your own records accurate, because nothing about a change made on someone else's phone reaches you otherwise.","How do I know if someone was removed by another admin?",[60,61,62],"A successful call does not mean everyone was added. Read the per-participant status: people whose privacy settings block direct adds are sent an invite instead, and they are not in the group until they accept.","Participants can arrive as linked identities rather than phone numbers, so match on the linked identity first and treat the phone number as an enrichment that may be absent.","The linked number must be an admin. Another admin can demote it from their phone at any moment with no notification, so check the role before a batch rather than halfway through it.","Group Participants",true,{"endpoints":66,"errors":73,"glossary":80,"hub":10,"integrations":90,"siblings":97,"tutorials":116,"vs_cloud_api":126},[67,69,71],{"title":68,"url":29},"GET \u002Fgroups\u002F{id}\u002Fparticipants",{"title":70,"url":36},"POST \u002Fgroups\u002F{id}\u002Fparticipants",{"title":72,"url":45},"DELETE \u002Fgroups\u002F{id}\u002Fparticipants\u002F{pid}",[74,77],{"title":75,"url":76},"invalid_request (400)","\u002Fdocs\u002Ferrors\u002Finvalid-request\u002F",{"title":78,"url":79},"forbidden (403)","\u002Fdocs\u002Ferrors\u002Fforbidden\u002F",[81,84,87],{"title":82,"url":83},"Group admin","\u002Fglossary\u002Fgroup-admin\u002F",{"title":85,"url":86},"LID","\u002Fglossary\u002Flid\u002F",{"title":88,"url":89},"JID","\u002Fglossary\u002Fjid\u002F",[91,94],{"title":92,"url":93},"Make","\u002Fintegrations\u002Fmake\u002F",{"title":95,"url":96},"Google Sheets","\u002Fintegrations\u002Fgoogle-sheets\u002F",[98,101,104,107,110,113],{"title":99,"url":100},"Create Group","\u002Fwhatsapp-api\u002Fcreate-group\u002F",{"title":102,"url":103},"Group Admins","\u002Fwhatsapp-api\u002Fgroup-admins\u002F",{"title":105,"url":106},"Group Invite Link","\u002Fwhatsapp-api\u002Fgroup-invite-link\u002F",{"title":108,"url":109},"Group Join Requests","\u002Fwhatsapp-api\u002Fgroup-join-requests\u002F",{"title":111,"url":112},"Group Settings","\u002Fwhatsapp-api\u002Fgroup-settings\u002F",{"title":114,"url":115},"Group Info","\u002Fwhatsapp-api\u002Fgroup-info\u002F",[117,120,123],{"title":118,"url":119},"Python","\u002Fwhatsapp-api\u002Fgroup-participants\u002Fpython\u002F",{"title":121,"url":122},"Node.js","\u002Fwhatsapp-api\u002Fgroup-participants\u002Fnodejs\u002F",{"title":124,"url":125},"PHP","\u002Fwhatsapp-api\u002Fgroup-participants\u002Fphp\u002F","\u002Fvs-cloud-api\u002Fgroup-participants\u002F",[128,129,130,131],"add participant to group api","whatsapp remove group member api","whatsapp group members api","bulk add whatsapp group",{"breadcrumb":133,"canonical":143,"description":144,"h1":145,"lastmod":13,"title":146},[134,137,140,141],{"name":135,"url":136},"Home","\u002F",{"name":138,"url":139},"WhatsApp API","\u002Fwhatsapp-api\u002F",{"name":8,"url":10},{"name":63,"url":142},"\u002Fwhatsapp-api\u002Fgroup-participants\u002F","https:\u002F\u002Fwapito.com\u002Fwhatsapp-api\u002Fgroup-participants\u002F","Add, remove and list members of a WhatsApp group. No templates, no Meta approval, any number. 3 endpoints, code in Python, Node.js and PHP.","Add and Remove WhatsApp Group Members","WhatsApp Group Participants API | Wapito","group-participants","List who is actually in the group, add the missing people, remove the ones who left, and reconcile from the participants webhook.",[150,154,157,160],{"body":151,"operationId":26,"operation_url":29,"title":152,"webhook":153},"Always start from the real list rather than from your own copy. Members join by link, leave on their own, and are removed by other admins, so a database that has not seen a participants event in a while is usually out of date.","Read the current membership",null,{"body":155,"operationId":34,"operation_url":36,"title":156,"webhook":153},"Send the numbers in a single call and read the per-participant result. Some will be added, some will be invited instead because their privacy settings forbid direct adds, and some will fail outright - the response says which is which.","Add the people who are missing",{"body":158,"operationId":42,"operation_url":45,"title":159,"webhook":153},"Removal is immediate and the person sees that they were removed. Do it from a scheduled job that reads your own source of truth, so nobody is removed because of a transient CRM sync failure.","Remove someone who has left the team",{"body":161,"operationId":153,"operation_url":153,"title":162,"webhook":163},"Every join, leave, add and remove arrives as an event carrying the action and the participant, who may be a linked identity rather than a phone number. Apply it to your own records so the two never drift apart.","Reconcile from the webhook","groups.participants","Add, remove and list members of a WhatsApp group.","t1b",[167,170,173],{"body":168,"title":169},"A logistics firm syncs its shift group with the rota every morning: whoever is on today is added, whoever finished yesterday is removed. The job reads the live participant list first, so a driver who joined by link is never removed for being unexpected.","Keep a team group in step with the rota",{"body":171,"title":172},"When HR marks someone as leaving, an automation removes them from every internal WhatsApp group the company runs, in the same pass that revokes their other access. The group ids come from the company's own registry rather than from a search.","Offboard an employee everywhere at once",{"body":174,"title":175},"A membership site invites new subscribers to the members-only group when payment clears, and removes them when a subscription lapses after the grace period. Invites go out as links so nobody is pulled into a group without acting.","Move paying members into the subscriber group",[177],{"event":163,"receiver":178,"summary":179},"onGroupsParticipants","Group membership or role changed",[181,183,185],{"label":68,"id":26,"lang":24,"code":23,"html":182},"\u003Cpre class=\"shiki shiki-themes github-light-default github-dark-default\" style=\"background-color:#ffffff;--shiki-dark-bg:#0d1117;color:#1f2328;--shiki-dark:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#953800;--shiki-dark:#FFA657\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\"> --request\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> GET\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --url\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fgroups\u002F120363041234567890@g.us\u002Fparticipants\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --header\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> 'Authorization: Bearer wpt_YOUR_TOKEN'\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"label":70,"id":34,"lang":24,"code":32,"html":184},"\u003Cpre class=\"shiki shiki-themes github-light-default github-dark-default\" style=\"background-color:#ffffff;--shiki-dark-bg:#0d1117;color:#1f2328;--shiki-dark:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#953800;--shiki-dark:#FFA657\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\"> --request\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> POST\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --url\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fgroups\u002F120363041234567890@g.us\u002Fparticipants\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --header\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> 'Authorization: Bearer wpt_YOUR_TOKEN'\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --header\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> 'Content-Type: application\u002Fjson'\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --data\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> '{\"participants\":[\"+15551234567\",\"+15559876543\"]}'\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"label":72,"id":42,"lang":24,"code":40,"html":186},"\u003Cpre class=\"shiki shiki-themes github-light-default github-dark-default\" style=\"background-color:#ffffff;--shiki-dark-bg:#0d1117;color:#1f2328;--shiki-dark:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#953800;--shiki-dark:#FFA657\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\"> --request\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> DELETE\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --url\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> 'https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fgroups\u002F120363041234567890@g.us\u002Fparticipants\u002F+15551234567'\u003C\u002Fspan>\u003Cspan style=\"color:#CF222E;--shiki-dark:#FF7B72\"> \\\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#0550AE;--shiki-dark:#79C0FF\">  --header\u003C\u002Fspan>\u003Cspan style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> 'Authorization: Bearer wpt_YOUR_TOKEN'\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",1790464898944]