[{"data":1,"prerenderedAt":156},["ShallowReactive",2],{"pseo:features:lid-to-phone":3,"highlight:pillar:lid-to-phone":151},{"availability":4,"ban_risk":5,"ban_risk_note":6,"category":7,"cloud_api_status":11,"contrast":12,"endpoints":20,"faqs":37,"gotchas":50,"name":53,"published":54,"related":55,"search_terms":97,"seo":102,"slug":117,"step_summary":118,"steps":119,"summary":131,"tier":132,"updated":14,"url":112,"use_cases":133,"webhook_events":143},"ga","low","Resolving identities you have legitimately encountered is low-risk. What is not low-risk is using the endpoint as a de-anonymiser: systematically resolving every participant of every group you can reach, to build a phone list, is both an abuse pattern and a privacy problem, and it is the kind of traffic that gets a number restricted.",{"name":8,"slug":9,"url":10},"Contacts","contacts","\u002Fwhatsapp-api\u002Fcontacts\u002F","restricted",{"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\u002Fmessages","Paraphrase (not a verbatim quote), checked against the Cloud API messages reference: recipients are addressed by phone number and the platform returns its own identifier for a customer; no linked-identity resolution endpoint appears in the reference.","There is nothing to work around, because the official platform has no groups or channels where a linked identity would appear. The trade is that it also cannot see those conversations at all.","Not applicable. The official API never shows you a LID.","Meta's Cloud API hands a business an identifier for the customer in a conversation it already manages, so the mapping problem does not arise there - but neither does the capability. There is no official endpoint that takes a linked identity and returns a phone number, because the official platform never exposes linked identities in the first place.",[21,30],{"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\u002Fcontacts\u002F+15551234567\u002Flid' \\\n  --header 'Authorization: Bearer wpt_YOUR_TOKEN'","bash","GET","getContactLid","\u002Fcontacts\u002F{id}\u002Flid","Resolve a phone number to a LID","\u002Fdocs\u002Fapi\u002Fcontacts\u002Fget-contact-lid\u002F",{"availability":4,"ban_risk":5,"curl":31,"method":25,"operationId":33,"path":34,"summary":35,"tag":9,"url":36},{"code":32,"lang":24},"curl --request GET \\\n  --url https:\u002F\u002Fapi.wapito.com\u002Fv1\u002Fcontacts\u002Flid\u002F187264518273645@lid \\\n  --header 'Authorization: Bearer wpt_YOUR_TOKEN'","getContactByLid","\u002Fcontacts\u002Flid\u002F{lid}","Resolve a LID to a phone number","\u002Fdocs\u002Fapi\u002Fcontacts\u002Fget-contact-by-lid\u002F",[38,41,44,47],{"a":39,"q":40},"To stop group and channel participation from exposing everybody's phone number to everybody else. It is a privacy improvement for users, and a real migration cost for anyone whose automation assumed the sender of a group message is always a number they can look up.","Why did WhatsApp introduce linked identities?",{"a":42,"q":43},"It is stable for a given account, which is what makes it useful as a key. Treat it the way you would treat any external identifier: store it, index on it, and do not try to parse meaning out of it. If the account itself goes away, so does the identity.","Is a LID stable over time?",{"a":45,"q":46},"In contexts where the identity is the participant - inside a group, for instance - yes. Starting a fresh one-to-one conversation from an identity alone is not something to rely on, so resolve to a phone number when you need to open a new thread, and expect that to sometimes be impossible.","Can I message someone using only their LID?",{"a":48,"q":49},"Then the event arrives with the identity and a null phone number, and that is the honest answer rather than a bug. Your system should be able to count, address and reply to that participant inside the conversation without ever knowing their number, because increasingly that is the normal case.","What if the mapping simply is not available?",[51,52],"A linked identity is not a phone number and cannot be messaged as one in every context. Keep the two fields separate in your schema rather than overloading one column.","Resolution can fail and return nothing, particularly for people the linked number has never interacted with. Treat a null phone number as a normal outcome rather than an error to retry.","LID to Phone",true,{"endpoints":56,"errors":61,"glossary":62,"hub":10,"integrations":72,"siblings":73,"tutorials":86,"vs_cloud_api":96},[57,59],{"title":58,"url":29},"GET \u002Fcontacts\u002F{id}\u002Flid",{"title":60,"url":36},"GET \u002Fcontacts\u002Flid\u002F{lid}",[],[63,66,69],{"title":64,"url":65},"LID","\u002Fglossary\u002Flid\u002F",{"title":67,"url":68},"JID","\u002Fglossary\u002Fjid\u002F",{"title":70,"url":71},"Group admin","\u002Fglossary\u002Fgroup-admin\u002F",[],[74,77,80,83],{"title":75,"url":76},"Check Number","\u002Fwhatsapp-api\u002Fcheck-number\u002F",{"title":78,"url":79},"Profile Picture","\u002Fwhatsapp-api\u002Fprofile-picture\u002F",{"title":81,"url":82},"Group Participants","\u002Fwhatsapp-api\u002Fgroup-participants\u002F",{"title":84,"url":85},"Send Group Message","\u002Fwhatsapp-api\u002Fsend-group-message\u002F",[87,90,93],{"title":88,"url":89},"Python","\u002Fwhatsapp-api\u002Flid-to-phone\u002Fpython\u002F",{"title":91,"url":92},"Node.js","\u002Fwhatsapp-api\u002Flid-to-phone\u002Fnodejs\u002F",{"title":94,"url":95},"PHP","\u002Fwhatsapp-api\u002Flid-to-phone\u002Fphp\u002F","\u002Fvs-cloud-api\u002Flid-to-phone\u002F",[98,99,100,101],"lid to phone number whatsapp","whatsapp lid api","resolve whatsapp linked identity","whatsapp group participant lid",{"breadcrumb":103,"canonical":113,"description":114,"h1":115,"lastmod":14,"title":116},[104,107,110,111],{"name":105,"url":106},"Home","\u002F",{"name":108,"url":109},"WhatsApp API","\u002Fwhatsapp-api\u002F",{"name":8,"url":10},{"name":53,"url":112},"\u002Fwhatsapp-api\u002Flid-to-phone\u002F","https:\u002F\u002Fwapito.com\u002Fwhatsapp-api\u002Flid-to-phone\u002F","Map a WhatsApp LID to a phone number. No templates, no Meta approval, any number. 2 endpoints, code in Python, Node.js and PHP.","Map a WhatsApp LID to a Phone Number","WhatsApp LID to Phone Number API | Wapito","lid-to-phone","Resolve the identities you already know, resolve the ones that arrive in events, and design for the case where no phone number comes back.",[120,124,127],{"body":121,"operationId":26,"operation_url":29,"title":122,"webhook":123},"Given a phone number, fetch the linked identity it maps to. Doing this for your own known contacts up front means later group events resolve from cache instead of needing a lookup each time.","Look up the LID for a number you know",null,{"body":125,"operationId":33,"operation_url":36,"title":126,"webhook":123},"Group and channel events increasingly carry a linked identity instead of a number. Resolve it once, store both, and key your own records on the linked identity because that is the value that will keep arriving.","Resolve a LID that arrived in an event",{"body":128,"operationId":123,"operation_url":123,"title":129,"webhook":130},"Sometimes there is no mapping to be had, and the event arrives with a null phone number. Design for that: a participant you can address and count but cannot match to a CRM row is still a participant.","Handle the case where it cannot be resolved","groups.participants","Map a WhatsApp LID to a phone number.","t1b",[134,137,140],{"body":135,"title":136},"A membership organisation resolves the linked identity of each group participant once and stores both values, so a message from a member is attributed to the right record even when the event carries no phone number at all.","Match group members to CRM records",{"body":138,"title":139},"A support desk that used to key threads on phone numbers re-keys them on linked identity, resolving the numbers it already knows in a single backfill. Nothing breaks as more of the network starts sending identities instead of numbers.","Keep attribution working after a migration",{"body":141,"title":142},"An agency discovers that the same person appears twice in its database under two numbers by resolving both to the same linked identity, then merges the records rather than messaging the same human twice.","Deduplicate a contact list",[144,147],{"event":130,"receiver":145,"summary":146},"onGroupsParticipants","Group membership or role changed",{"event":148,"receiver":149,"summary":150},"messages","onMessages","Message sent or received",[152,154],{"label":58,"id":26,"lang":24,"code":23,"html":153},"\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\u002Fcontacts\u002F+15551234567\u002Flid'\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":60,"id":33,"lang":24,"code":32,"html":155},"\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\u002Fcontacts\u002Flid\u002F187264518273645@lid\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>",1790464899280]