Restart Session

Reboots the WhatsApp instance. Useful for fixing stuck sessions or applying settings.

POST
https://api.wawp.net/v2/session/restart?access_token=YOUR_ACCESS_TOKEN&instance_id=Your_Instance_ID

Authentication Required

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

Log In
Test /v2/session/restart endpoint
POSTGET

No query parameters required

This endpoint doesn't expect data in the URL.

Best practices

  • Use this as a first troubleshooting step before deleting an instance.

  • Wait at least 30 seconds after a restart before sending messages.

The Self-Healing Mechanism: Mastering the /v2/session/restart Endpoint

The /v2/session/restart endpoint is the specialized "Soft Reboot" tool for your WhatsApp instance. In the complex world of WhatsApp automation—where network jitter, WebSocket timeouts, and engine de-syncs are common—a well-implemented restart strategy is the difference between a fragile integration and a production-grade communication system.


🏗️ The Anatomy of a Restart Orchestration

When you call restart, Wawp performs an atomic "Stop and Start" sequence within our cloud infrastructure:

  1. Engine Shutdown: The active WhatsApp-bridge process is signaled to close its connections cleanly and save its current authentication state to persistent storage.
  2. Environment Flush: The temporary caches and buffer memory of the isolated container are cleared to resolve any memory leaks or hanging processes.
  3. Engine Boot: A fresh bridge process is launched using the previously saved authentication keys.
  4. Resumption: The engine automatically attempts to re-establish the encrypted handshake with WhatsApp's servers.

🛡️ Strategic Best Practices

1. The "Auto-Healing" Pattern

Don't wait for a human to notice a problem. Your application should monitor the delivery status of outbound messages.

  • The Recovery Flow: If you detect three consecutive "Message Failed" errors or if the /v2/session/info endpoint shows a status of FAILED, trigger a /v2/session/restart automatically. A single restart resolves approximately 85% of transient connection issues.

2. The 30-Second Stabilization Window

While the API returns a success message (200 OK) almost instantly, the internal handshake takes time.

  • Developer Action: Implement a "Quiet Period" after a restart. We recommend waiting at least 30 seconds before resuming high-frequency automated message campaigns. This allows the engine to fully synchronize the message history and stabilize the WebSocket connection.

3. Avoiding the "Restart Loop"

A common mistake is restarting an instance every few seconds if it's not working.

  • The Limit: If a restart doesn't transition the session to WORKING within 60 seconds, do not restart again immediately. Instead, check the /v2/session/info response. If it shows SCAN_QR_CODE, it means the user has been logged out from the mobile app, and no amount of restarting will fix it—they must scan the QR code again.

💡 Industry-Standard Use Cases

A. Maintenance "Pulse"

For mission-critical bots (e.g., 24/7 bank alert systems), schedule a weekly restart during low-traffic windows (e.g., Sunday at 3 AM). This ensures the engine is always running on fresh resources and clears any long-term memory accumulation.

B. Post-Update Synchronization

If you update high-level instance configurations (like changing your Webhook URL or adding a new proxy), a restart is the cleanest way to ensure all underlying library settings are refreshed and applied across the environment.


⚠️ Common Pitfalls and Troubleshooting

Interruption of Active Queues

Restarting acts as a "hard stop" for the internal message queue. If you have 500 messages currently being processed for delivery, they will be purged from the transient buffer. Ensure your campaign logic can handle "Resuming" from where it left off by tracking message IDs in your own database.

Stuck in "STARTING" post-restart

This is usually caused by a conflict with the previous process. Wait 15 seconds and try one more restart. If the issue persists, use the /v2/session/stop command, wait 5 seconds, and then call /v2/session/start for a full lifecycle reset.


Summary of Capabilities:

  • Perform an atomic reboot of the isolated engine.
  • Resolve 85% of transient connectivity and de-sync issues.
  • Preserve all session data and QR scan history.
  • Refresh container resources without requiring user interaction.

Request Parameters

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

Request Body

Sent as a JSON object
string

The 12-character ID of the instance

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/session/restart";
3const params = new URLSearchParams({
4 "instance_id": "Your_Instance_ID",
5 "access_token": "YOUR_ACCESS_TOKEN"
6}).toString();
7
8
9fetch(`${baseUrl}${endpoint}${params ? '?' + params : ''}`, {
10 method: "POST",
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.

Success - Reboot Initiated
Type:
application/json
string *
string *
object *

Example

{
"name": "wawp-84729105",
"status": "STARTING",
"config": {
  "webhooks": {
    },
  "proxy": null
  }
}
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 TopicStop Session
Next TopicLogout Session

Command Palette

Search for a command to run...