[{"data":1,"prerenderedAt":197},["ShallowReactive",2],{"pseo:features:group-events":3,"highlight:pillar:group-events":190},{"availability":4,"ban_risk":5,"ban_risk_note":6,"category":7,"cloud_api_status":11,"contrast":12,"endpoints":19,"faqs":46,"gotchas":59,"name":62,"published":63,"related":64,"search_terms":132,"seo":137,"slug":153,"step_summary":154,"steps":155,"summary":170,"tier":171,"updated":151,"url":147,"use_cases":172,"webhook_events":182},"ga","low","Announcing an event inside a group the number already belongs to is ordinary use. The risk is the reminder loop: an automation that posts a countdown every few hours into a large group will be muted at best and reported at worst, so send one announcement, one reminder, and let the poll do the rest.",{"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: the reference documents no group node and no event message type.","None. A business sends each invitee an individual message and reconciles the replies by hand or with its own calendar tooling.","No. The official API has no group events.","Event messages live inside groups, and groups are absent from Meta's Cloud API, so there is no event object to create and nobody to invite. This is one of the few pillars where the unofficial route is also incomplete today, and we say so rather than implying otherwise.",[20,31,38],{"availability":4,"ban_risk":21,"curl":22,"method":25,"operationId":26,"path":27,"summary":28,"tag":29,"url":30},"medium",{"code":23,"lang":24},"curl --request POST \\\n  --url https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fmessages\u002Ftext \\\n  --header 'Authorization: Bearer wpt_YOUR_TOKEN' \\\n  --header 'Content-Type: application\u002Fjson' \\\n  --data '{\"to\":\"+15551234567\",\"body\":\"Your order #4182 has shipped. Track it here: https:\u002F\u002Facme.example\u002Ft\u002F4182\",\"typing_time\":3}'","bash","POST","sendText","\u002Fmessages\u002Ftext","Send a text message","messages","\u002Fdocs\u002Fapi\u002Fmessages\u002Fsend-text\u002F",{"availability":4,"ban_risk":21,"curl":32,"method":25,"operationId":34,"path":35,"summary":36,"tag":29,"url":37},{"code":33,"lang":24},"curl --request POST \\\n  --url https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fmessages\u002Fpoll \\\n  --header 'Authorization: Bearer wpt_YOUR_TOKEN' \\\n  --header 'Content-Type: application\u002Fjson' \\\n  --data '{\"to\":\"120363041234567890@g.us\",\"title\":\"When should we run the launch standup?\",\"options\":[\"Monday 09:00\",\"Tuesday 10:00\",\"Wednesday 16:00\"],\"multiple\":false}'","sendPoll","\u002Fmessages\u002Fpoll","Send a poll","\u002Fdocs\u002Fapi\u002Fmessages\u002Fsend-poll\u002F",{"availability":4,"ban_risk":5,"curl":39,"method":41,"operationId":42,"path":43,"summary":44,"tag":9,"url":45},{"code":40,"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'","GET","listGroupParticipants","\u002Fgroups\u002F{id}\u002Fparticipants","List group participants","\u002Fdocs\u002Fapi\u002Fgroups\u002Flist-group-participants\u002F",[47,50,53,56],{"a":48,"q":49},"Not yet. The native event message is a client feature that neither engine behind Wapito supports, and the endpoint says so with a not-implemented error instead of failing quietly. What works today is an announcement message plus a poll for responses, which covers the same need with two calls.","Can I create a real WhatsApp event from the API today?",{"a":51,"q":52},"Because free-text replies in a group of forty are unusable: people answer with words, emoji, or by replying to the wrong message. A poll returns a structured vote tied to a specific participant, so your code knows exactly who said yes without guessing at anybody's phrasing.","Why use a poll instead of asking people to reply?",{"a":54,"q":55},"Compare the vote events against the participant list and message the gap directly, one person at a time, rather than posting another reminder into the group. It is more effective and it avoids the pattern that gets automated numbers muted by the people you are trying to reach.","How do I remind people who have not responded?",{"a":57,"q":58},"Yes. The endpoint already exists in the API contract and carries an availability badge, so when either engine gains support the badge changes and the steps here move from the poll workaround to the native event object. The date at the top of the page tells you when it was last reviewed.","Will this page change when engine support arrives?",[60,61],"The native event message type is not supported by either engine Wapito runs today, so the dedicated endpoint returns an explicit not-implemented error. Build the announcement-plus-poll pattern now and treat the native object as a future upgrade.","Poll votes can be changed after the fact, so a countdown of yes votes must be recomputed per voter rather than incremented, or your headcount will drift upward all week.","Group Events",true,{"endpoints":65,"errors":72,"glossary":88,"hub":10,"integrations":98,"siblings":111,"tutorials":130,"vs_cloud_api":131},[66,68,70],{"title":67,"url":30},"POST \u002Fmessages\u002Ftext",{"title":69,"url":37},"POST \u002Fmessages\u002Fpoll",{"title":71,"url":45},"GET \u002Fgroups\u002F{id}\u002Fparticipants",[73,76,79,82,85],{"title":74,"url":75},"invalid_request (400)","\u002Fdocs\u002Ferrors\u002Finvalid-request\u002F",{"title":77,"url":78},"invalid_recipient (400)","\u002Fdocs\u002Ferrors\u002Finvalid-recipient\u002F",{"title":80,"url":81},"unauthorized (401)","\u002Fdocs\u002Ferrors\u002Funauthorized\u002F",{"title":83,"url":84},"token_revoked (401)","\u002Fdocs\u002Ferrors\u002Ftoken-revoked\u002F",{"title":86,"url":87},"channel_locked (403)","\u002Fdocs\u002Ferrors\u002Fchannel-locked\u002F",[89,92,95],{"title":90,"url":91},"Poll","\u002Fglossary\u002Fpoll\u002F",{"title":93,"url":94},"Group admin","\u002Fglossary\u002Fgroup-admin\u002F",{"title":96,"url":97},"JID","\u002Fglossary\u002Fjid\u002F",[99,102,105,108],{"title":100,"url":101},"n8n","\u002Fintegrations\u002Fn8n\u002F",{"title":103,"url":104},"Zapier","\u002Fintegrations\u002Fzapier\u002F",{"title":106,"url":107},"Google Sheets","\u002Fintegrations\u002Fgoogle-sheets\u002F",{"title":109,"url":110},"Airtable","\u002Fintegrations\u002Fairtable\u002F",[112,115,118,121,124,127],{"title":113,"url":114},"Send Group Message","\u002Fwhatsapp-api\u002Fsend-group-message\u002F",{"title":116,"url":117},"Group Participants","\u002Fwhatsapp-api\u002Fgroup-participants\u002F",{"title":119,"url":120},"Create Group","\u002Fwhatsapp-api\u002Fcreate-group\u002F",{"title":122,"url":123},"Group Info","\u002Fwhatsapp-api\u002Fgroup-info\u002F",{"title":125,"url":126},"Group Admins","\u002Fwhatsapp-api\u002Fgroup-admins\u002F",{"title":128,"url":129},"Group Invite Link","\u002Fwhatsapp-api\u002Fgroup-invite-link\u002F",[],"\u002Fvs-cloud-api\u002Fgroup-events\u002F",[133,134,135,136],"whatsapp group event api","whatsapp event message api","whatsapp rsvp automation","whatsapp group poll rsvp",{"breadcrumb":138,"canonical":148,"description":149,"h1":150,"lastmod":151,"title":152},[139,142,145,146],{"name":140,"url":141},"Home","\u002F",{"name":143,"url":144},"WhatsApp API","\u002Fwhatsapp-api\u002F",{"name":8,"url":10},{"name":62,"url":147},"\u002Fwhatsapp-api\u002Fgroup-events\u002F","https:\u002F\u002Fwapito.com\u002Fwhatsapp-api\u002Fgroup-events\u002F","Announce and track events inside a group. No templates, no Meta approval, any number. 3 endpoints, code in Python, Node.js and PHP.","WhatsApp Group Events via API","2026-09-17","WhatsApp Group Events API | Wapito","group-events","Read the membership, announce the event as a message, collect RSVPs with a poll, and move to the native event object when engine support lands.",[156,160,163,166],{"body":157,"operationId":42,"operation_url":45,"title":158,"webhook":159},"Read the membership before you announce anything, so the count you quote in the invitation matches reality and so you know who to chase when the responses come back short.","Check who is in the group",null,{"body":161,"operationId":26,"operation_url":30,"title":162,"webhook":159},"Post the date, place and a single clear question. A well-formed announcement is the part of the flow that actually works today on both engines, and it costs one message.","Announce the event",{"body":164,"operationId":34,"operation_url":37,"title":165,"webhook":159},"A poll gives you structured RSVPs keyed to each participant, instead of forty replies you would have to parse. Vote events arrive as they happen, so a dashboard updates live.","Collect responses as a poll",{"body":167,"operationId":168,"operation_url":159,"title":169,"webhook":159},"WhatsApp's own event message - with its own date, location and RSVP buttons - is the eventual home for this flow. It is not supported by either engine Wapito runs today, so the endpoint answers with an explicit not-implemented error rather than pretending; the announcement and poll pattern above is what works now.","sendEvent","Post a native event object","Announce and track events inside a group.","t1b",[173,176,179],{"body":174,"title":175},"A sports club posts the fixture into the squad group each Monday with a poll for availability. The coach sees the team sheet fill in live, and anyone who has not voted by Thursday gets a single direct message rather than another group post.","Weekly training session RSVP",{"body":177,"title":178},"A residents' association announces the monthly meeting in the building group and collects attendance through a poll, so the organiser knows how many chairs to put out without anyone having to reply in a thread of eighty people.","Community meeting with a headcount",{"body":180,"title":181},"When a shift needs covering, an automation posts the details into the staff group with a poll listing who can take it. The first vote closes the request and the rota is updated from the vote event.","Shift cover request",[183,186],{"event":29,"receiver":184,"summary":185},"onMessages","Message sent or received",{"event":187,"receiver":188,"summary":189},"polls","onPolls","Poll vote cast or changed",[191,193,195],{"label":67,"id":26,"lang":24,"code":23,"html":192},"\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\u002Fmessages\u002Ftext\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\"> '{\"to\":\"+15551234567\",\"body\":\"Your order #4182 has shipped. Track it here: https:\u002F\u002Facme.example\u002Ft\u002F4182\",\"typing_time\":3}'\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"label":69,"id":34,"lang":24,"code":33,"html":194},"\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\u002Fmessages\u002Fpoll\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\"> '{\"to\":\"120363041234567890@g.us\",\"title\":\"When should we run the launch standup?\",\"options\":[\"Monday 09:00\",\"Tuesday 10:00\",\"Wednesday 16:00\"],\"multiple\":false}'\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"label":71,"id":42,"lang":24,"code":40,"html":196},"\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>",1790464899155]