Get New Status ID

Generate a new message ID for a status update. Useful for idempotent status updates.

GET
https://api.wawp.net/v2/status/new-message-id?access_token=123456789&instance_id=123456789

Authentication Required

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

Log In
Test /v2/status/new-message-id endpoint
GET
GET

No query parameters required

This endpoint doesn't expect data in the URL.

Best practices

  • Generate a new ID for every single status post.

  • Do not reuse IDs; it will cause sync errors.

The Architect's Tool: Pre-Generating IDs

The /v2/status/new-message-id endpoint is a utility for advanced developers building high-reliability systems. It allows you to reserve a valid WhatsApp Message ID before you actually send the content.


🏗️ The Problem: The "Lost Response"

In a typical API flow:

  1. You call POST /v2/status/image.
  2. The server processes it and sends it to WhatsApp.
  3. The server returns 200 OK with { id: "ABC" }.
  4. Failure: Your internet cuts out after sending the request but before receiving the response.

Outcome: The status was posted, but your database doesn't know the ID. You try to post it again -> Duplicate Content.


🛡️ The Solution: Idempotency with Proper IDs

By generating the ID first, you invert the control flow.

Step 1: Generate & Store

Call GET /v2/status/new-message-id.

  • Response: { id: "3EB0...123" }
  • Action: Save to DB: { status_id: "3EB0...123", state: "pending_upload" }

Step 2: The Upload

Call POST /v2/status/image but include the ID in the payload (if supported) or simply map it internally.

  • Note: Currently, the Wawp API auto-assigns IDs on send. However, this endpoint is crucial for correlation.

Use Case: Tracking Viewers

If you want to track who viewed a specific status:

  1. You need the ID immediately to set up your webhook listener.
  2. By generating it first (conceptually), you can prepare your analytics system:
    const nextId = await api.getNewId();
    analytics.subscribeTo(nextId); // Ready to listen
    await api.postStatus(image, { id: nextId }); // Send
    

🔮 Implementation Details

Format

The ID returned is a standard WhatsApp Message ID (e.g., 3EB0...).

  • It is unique to your session.
  • It implies "From Me" (key.fromMe = true).

Collision Safety

WhatsApp IDs are time-based and random. The chance of collision is astronomically low. You can safely generate 100 IDs in parallel without conflict.


⚠️ Limitations

  • Ephemeral: Generating an ID does not "reserve" it on WhatsApp servers. It just gives you a string that will be valid if used.
  • Scope: This ID is for Status Updates only. Do not try to use it for sending text messages to chats, as the ID structure might differ slightly in future protocol versions.

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:

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/status/new-message-id";
3const params = new URLSearchParams({
4 "instance_id": "123456789",
5 "access_token": "123456789"
6}).toString();
7
8
9fetch(`${baseUrl}${endpoint}${params ? '?' + params : ''}`, {
10 method: "GET",
11 headers: { "Content-Type": "application/json" },
12
13})
14 .then(async (response) => {
15 if (response.ok) {
16 const data = await response.json();
17 console.log("Success:", data);
18 return data;
19 }
20
21 // Error Handling
22 if (response.status === 400) {
23 console.error("Error 400: Bad Request - Missing Required Parameter(s)");
24 }
25 if (response.status === 400) {
26 console.error("Error 400: Bad Request (XML Format)");
27 }
28 if (response.status === 400) {
29 console.error("Error 400: Bad Request (Plain Text)");
30 }
31 if (response.status === 401) {
32 console.error("Error 401: Unauthorized - Invalid or Missing Access Token");
33 }
34 if (response.status === 401) {
35 console.error("Error 401: Unauthorized (XML Format)");
36 }
37 if (response.status === 404) {
38 console.error("Error 404: Not Found - Session Does Not Exist");
39 }
40 if (response.status === 404) {
41 console.error("Error 404: Not Found (XML Format)");
42 }
43 if (response.status === 500) {
44 console.error("Error 500: Internal Server Error - Unexpected Failure");
45 }
46 if (response.status === 500) {
47 console.error("Error 500: Internal Server Error (HTML)");
48 }
49 if (response.status === 502) {
50 console.error("Error 502: Bad Gateway - Connection Failed to Upstream");
51 }
52 if (response.status === 502) {
53 console.error("Error 502: Bad Gateway (XML Format)");
54 }
55
56 const errorText = await response.text();
57 console.error(`Error ${response.status}: ${errorText}`);
58 })
59 .catch((error) => console.error("Network Error:", error));
Interactive Samples
Ln 59, 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.

New ID generated
Type:
Scenario:
application/json
string *

Example

{
"id": "3EB0BCB2E3D4"
}
Bad Request - Missing Required Parameter(s)
Unauthorized - Invalid or Missing Access Token
Not Found - Session Does Not Exist
Internal Server Error - Unexpected Failure
Bad Gateway - Connection Failed to Upstream
Previous TopicVideo status
Next TopicDelete status

Command Palette

Search for a command to run...