Get LIDs Mapping

Retrieves all known LID to phone number mappings.

GET
https://api.wawp.net/v2/lids?access_token=123456789&instance_id=123456789&limit=100&offset=0

Authentication Required

Login to swap the placeholders with your real Instance ID and Access Token.

Log In
Test /v2/lids endpoint
GET
GET

No query parameters required

This endpoint doesn't expect data in the URL.

Best practices

  • Run this periodically to ensure your ID map is consistent.

  • Use background workers to process the list.

The Future of Identity: Lookup IDs (LID)

The /v2/lids endpoint exposes the mapping layer between the old world (Phone Numbers) and the new world (Privacy-Preserving IDs).


🆔 What is an LID?

LID stands for Lookup ID.

  • Format: 123456789012345@lid (A long integer + @lid suffix).
  • Purpose: To allow users to interact without revealing their phone number.

The Shift

  • Classic WhatsApp: Your ID is your phone number (1555...@c.us). To talk to you, I need your number.
  • Modern WhatsApp: You might have a username, or you might be in a "Community" where your number is hidden. In these cases, WhatsApp uses your LID to route messages.

🗺️ The Mapping Problem

If a user messages you from a hidden-number community, you will receive a message from @lid.

  • Challenge: Your CRM expects a phone number.
  • Solution: You need a translation layer.
    • @lid -> @c.us (If you are authorized to see it).
    • @c.us -> @lid (To find their stable ID).

This endpoint dumps the entire known cache of these mappings.


🛡️ Privacy Constraints

You cannot just "reverse lookup" any LID to get a phone number.

  • Authorization: You can only resolve an LID to a phone number if the user has shared their number with you or if you are in a specific trust relationship (e.g., mutual contact).
  • Community Members: If you are in a Community Announcement Group, you might see 5,000 members, but their IDs will be LIDs. You cannot get their phone numbers via API. This is intentional privacy design by Meta.

🚀 Use Cases for LIDs

1. Stable Identity

  • Scenario: User changes their phone number from +1... to +44....
  • Old Way: New JID. New Chat. History lost.
  • New Way: Their @lid remains the same. You can link the new phone number to the old account record in your database using the LID as the primary key.

2. Hidden Group Participants

  • Scenario: You scrape a group's participant list.
  • Result: You see a mix of @c.us (people who don't hide their number) and @lid (people who do).
  • Action: Use this endpoint to see if you have the phone number cached for any of those LIDs.

🚦 Performance

  • Cache Size: This list can grow large.
  • Pagination: Always use limit and offset.
  • Refresh: The mapping is static unless a user re-registers directly.

Request Parameters

Configure the parameters required to interact with this endpoint. All query and body arguments are listed below with their details.

URL Parameters

Passed in the URL query string
string

Your unique WhatsApp Instance ID

Example:
string

Your API Access Token

Example:
string

Maximum number of mappings to return

Example:
string

Number of mappings to skip

Example:

Request Samples

Use these ready-to-go code snippets to integrate our API into your project quickly and efficiently. Choose your preferred language and library.

1const baseUrl = "https://api.wawp.net";
2const endpoint = "/v2/lids";
3const params = new URLSearchParams({
4 "instance_id": "123456789",
5 "access_token": "123456789",
6 "limit": "100",
7 "offset": "0"
8}).toString();
9
10
11fetch(`${baseUrl}${endpoint}${params ? '?' + params : ''}`, {
12 method: "GET",
13 headers: { "Content-Type": "application/json" },
14
15})
16 .then(async (response) => {
17 if (response.ok) {
18 const data = await response.json();
19 console.log("Success:", data);
20 return data;
21 }
22
23 // Error Handling
24 if (response.status === 401) {
25 console.error("Error 401: Unauthorized - Invalid or Missing Access Token");
26 }
27 if (response.status === 400) {
28 console.error("Error 400: Bad Request - Invalid Parameter Format");
29 }
30 if (response.status === 500) {
31 console.error("Error 500: Internal Server Error - Unexpected Failure");
32 }
33
34 const errorText = await response.text();
35 console.error(`Error ${response.status}: ${errorText}`);
36 })
37 .catch((error) => console.error("Network Error:", error));
Interactive Samples
Ln 37, Col 1javascript

Expected Responses

Explore all possible responses and outcomes from the server. We have documented each status code with data examples to make success and error handling easier.

LIDs mapped successfully
application/json
object *

Example

{
"0": {
  "lid": "1234567890@lid",
  "number": "1234567890"
  }
}
Bad Request - Invalid Parameter Format
Unauthorized - Invalid or Missing Access Token
Internal Server Error - Unexpected Failure
Previous TopicCreate/Update Contact
Next TopicGet LID by Phone

Command Palette

Search for a command to run...