[{"data":1,"prerenderedAt":192},["ShallowReactive",2],{"pseo:features:group-join-requests":3,"highlight:pillar:group-join-requests":183},{"availability":4,"ban_risk":5,"ban_risk_note":6,"category":7,"cloud_api_status":11,"contrast":12,"endpoints":20,"faqs":54,"gotchas":67,"name":70,"published":71,"related":72,"search_terms":130,"seo":135,"slug":150,"step_summary":151,"steps":152,"summary":166,"tier":167,"updated":14,"url":145,"use_cases":168,"webhook_events":178},"ga","low","Approving requests is a response to something a person chose to do, which makes it one of the safest group operations there is. The risk sits upstream: if the link was promoted in a way that attracts people who did not want the group, the reports that follow land on your number regardless of how carefully you approved them.",{"name":8,"slug":9,"url":10},"Groups","groups","\u002Fwhatsapp-api\u002Fgroups\u002F","forbidden",{"demand":13,"meta_checked":14,"meta_doc_url":15,"meta_quote":16,"official_workaround":17,"short_verdict":18,"verdict":19},"medium","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 group membership request or approval endpoint appears in the reference.","None. An admin taps approve or reject in the app, one request at a time.","No. Join requests do not exist in the official API.","Approving a request presumes a group, and Meta's Cloud API has none. There is no pending queue to read and no approval to grant, so a business using only the official platform reviews nothing because it can see nothing.",[21,30,38,46],{"availability":4,"ban_risk":5,"curl":22,"method":25,"operationId":26,"path":27,"summary":28,"tag":9,"url":29},{"code":23,"lang":24},"curl --request GET \\\n  --url https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fgroups\u002F120363041234567890@g.us\u002Fapplications \\\n  --header 'Authorization: Bearer wpt_YOUR_TOKEN'","bash","GET","listGroupApplications","\u002Fgroups\u002F{id}\u002Fapplications","List pending join requests","\u002Fdocs\u002Fapi\u002Fgroups\u002Flist-group-applications\u002F",{"availability":4,"ban_risk":13,"curl":31,"method":33,"operationId":34,"path":35,"summary":36,"tag":9,"url":37},{"code":32,"lang":24},"curl --request POST \\\n  --url 'https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fgroups\u002F120363041234567890@g.us\u002Fapplications\u002F+15551234567\u002Fapprove' \\\n  --header 'Authorization: Bearer wpt_YOUR_TOKEN'","POST","approveGroupApplication","\u002Fgroups\u002F{id}\u002Fapplications\u002F{pid}\u002Fapprove","Approve a pending join request","\u002Fdocs\u002Fapi\u002Fgroups\u002Fapprove-group-application\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 DELETE \\\n  --url 'https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fgroups\u002F120363041234567890@g.us\u002Fapplications\u002F+15551234567' \\\n  --header 'Authorization: Bearer wpt_YOUR_TOKEN'","DELETE","rejectGroupApplication","\u002Fgroups\u002F{id}\u002Fapplications\u002F{pid}","Reject a pending join request","\u002Fdocs\u002Fapi\u002Fgroups\u002Freject-group-application\u002F",{"availability":4,"ban_risk":5,"curl":47,"method":49,"operationId":50,"path":51,"summary":52,"tag":9,"url":53},{"code":48,"lang":24},"curl --request PATCH \\\n  --url https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fgroups\u002F120363041234567890@g.us\u002Fsettings \\\n  --header 'Authorization: Bearer wpt_YOUR_TOKEN' \\\n  --header 'Content-Type: application\u002Fjson' \\\n  --data '{\"messages_admin_only\":false,\"membership_approval\":true}'","PATCH","updateGroupSettings","\u002Fgroups\u002F{id}\u002Fsettings","Change group security settings","\u002Fdocs\u002Fapi\u002Fgroups\u002Fupdate-group-settings\u002F",[55,58,61,64],{"a":56,"q":57},"WhatsApp expires them after a period rather than keeping them indefinitely, so a queue that is only drained weekly will lose requests. Drain it on a schedule measured in minutes or hours, and tell people roughly how long approval takes on the page where you publish the link.","How long do pending requests stay in the queue?",{"a":59,"q":60},"They see that they are not in the group, but they are not given a reason and there is no appeal inside WhatsApp. If rejection is part of a business process - an expired subscription, for example - tell them through the channel you already have with them rather than leaving them guessing.","Does the person know they were rejected?",{"a":62,"q":63},"You can, but then the setting is doing nothing except adding delay. Approval is worth turning on only when you have something to check against: a subscriber list, an accreditation list, a CRM segment. Otherwise leave it off and let people join directly by link.","Can I approve everyone automatically?",{"a":65,"q":66},"Increasingly a linked identity rather than a phone number, especially for people who joined from a link they found publicly. Match on the linked identity and resolve the phone number where you can, rather than assuming every request carries a number you can look up in your CRM.","What identity do requests arrive with?",[68,69],"The pending queue is paged. A job that reads only the first page will quietly leave older requests waiting forever, so page to the end before you decide the queue is empty.","Approval requires admin rights on the group, and the setting itself can only be changed by an admin, so an automation that has been demoted will fail at the first step rather than the last.","Group Join Requests",true,{"endpoints":73,"errors":82,"glossary":89,"hub":10,"integrations":99,"siblings":100,"tutorials":119,"vs_cloud_api":129},[74,76,78,80],{"title":75,"url":29},"GET \u002Fgroups\u002F{id}\u002Fapplications",{"title":77,"url":37},"POST \u002Fgroups\u002F{id}\u002Fapplications\u002F{pid}\u002Fapprove",{"title":79,"url":45},"DELETE \u002Fgroups\u002F{id}\u002Fapplications\u002F{pid}",{"title":81,"url":53},"PATCH \u002Fgroups\u002F{id}\u002Fsettings",[83,86],{"title":84,"url":85},"invalid_request (400)","\u002Fdocs\u002Ferrors\u002Finvalid-request\u002F",{"title":87,"url":88},"forbidden (403)","\u002Fdocs\u002Ferrors\u002Fforbidden\u002F",[90,93,96],{"title":91,"url":92},"Group admin","\u002Fglossary\u002Fgroup-admin\u002F",{"title":94,"url":95},"Invite code","\u002Fglossary\u002Finvite-code\u002F",{"title":97,"url":98},"LID","\u002Fglossary\u002Flid\u002F",[],[101,104,107,110,113,116],{"title":102,"url":103},"Group Invite Link","\u002Fwhatsapp-api\u002Fgroup-invite-link\u002F",{"title":105,"url":106},"Group Settings","\u002Fwhatsapp-api\u002Fgroup-settings\u002F",{"title":108,"url":109},"Group Participants","\u002Fwhatsapp-api\u002Fgroup-participants\u002F",{"title":111,"url":112},"Group Admins","\u002Fwhatsapp-api\u002Fgroup-admins\u002F",{"title":114,"url":115},"Create Group","\u002Fwhatsapp-api\u002Fcreate-group\u002F",{"title":117,"url":118},"Group Info","\u002Fwhatsapp-api\u002Fgroup-info\u002F",[120,123,126],{"title":121,"url":122},"Python","\u002Fwhatsapp-api\u002Fgroup-join-requests\u002Fpython\u002F",{"title":124,"url":125},"Node.js","\u002Fwhatsapp-api\u002Fgroup-join-requests\u002Fnodejs\u002F",{"title":127,"url":128},"PHP","\u002Fwhatsapp-api\u002Fgroup-join-requests\u002Fphp\u002F","\u002Fvs-cloud-api\u002Fgroup-join-requests\u002F",[131,132,133,134],"whatsapp group join request api","approve whatsapp group request api","whatsapp group approval automation","whatsapp pending members api",{"breadcrumb":136,"canonical":146,"description":147,"h1":148,"lastmod":14,"title":149},[137,140,143,144],{"name":138,"url":139},"Home","\u002F",{"name":141,"url":142},"WhatsApp API","\u002Fwhatsapp-api\u002F",{"name":8,"url":10},{"name":70,"url":145},"\u002Fwhatsapp-api\u002Fgroup-join-requests\u002F","https:\u002F\u002Fwapito.com\u002Fwhatsapp-api\u002Fgroup-join-requests\u002F","Review and approve requests to join a group. No templates, no Meta approval, any number. 4 endpoints, code in Python, Node.js and PHP.","Approve WhatsApp Group Join Requests","WhatsApp Group Join Request API | Wapito","group-join-requests","Turn approval on, read the pending queue, approve the people you can identify, reject the rest and keep your own audit log.",[153,157,160,163],{"body":154,"operationId":50,"operation_url":53,"title":155,"webhook":156},"Join approval is a group setting. Switch it on before you publish the invite link anywhere public, otherwise the first hour of a campaign fills the group with accounts nobody has looked at.","Turn on approval for the group",null,{"body":158,"operationId":26,"operation_url":29,"title":159,"webhook":156},"The queue lists everyone waiting, with the identity that will become the participant. Page through it rather than assuming it is short; a link that was shared widely can produce hundreds of requests overnight.","Read the pending queue",{"body":161,"operationId":34,"operation_url":37,"title":162,"webhook":156},"Match each request against your own list - paid subscribers, enrolled students, staff numbers - and approve only those. Approving everything defeats the point of turning the setting on.","Approve the ones you recognise",{"body":164,"operationId":42,"operation_url":45,"title":165,"webhook":156},"Rejection is quiet: the person is not told why. Keep your own log so a mistaken rejection can be explained when the person asks, because WhatsApp gives them no way to appeal.","Reject the rest and record why","Review and approve requests to join a group.","t1b",[169,172,175],{"body":170,"title":171},"A subscription newsletter publishes one invite link and turns on approval. An automation matches each pending request against the active-subscriber list every few minutes, approves the matches, and leaves everything else for a human to glance at once a day.","Gate a paid community",{"body":173,"title":174},"A festival puts the invite QR on crew lanyards and approves only numbers that appear on the accreditation list. Requests from numbers that are not on it are rejected automatically, so the group stays usable during the busiest hours.","Staff-only group at a large event",{"body":176,"title":177},"When a group link is shared unexpectedly widely, an automation switches approval on and drains the queue at a steady rate rather than letting hundreds of strangers arrive at once and push the existing conversation off the screen.","Slow the door during a spike",[179],{"event":180,"receiver":181,"summary":182},"groups.participants","onGroupsParticipants","Group membership or role changed",[184,186,188,190],{"label":75,"id":26,"lang":24,"code":23,"html":185},"\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\u002Fapplications\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":77,"id":34,"lang":24,"code":32,"html":187},"\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\u002Fapplications\u002F+15551234567\u002Fapprove'\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":79,"id":42,"lang":24,"code":40,"html":189},"\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\u002Fapplications\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>",{"label":81,"id":50,"lang":24,"code":48,"html":191},"\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\"> PATCH\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\u002Fsettings\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\"> '{\"messages_admin_only\":false,\"membership_approval\":true}'\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",1790464899029]