POST status Instance status and QR code
Reauthorization is necessary only in case of changing the device or manually pressing "Logout on all devices" on the phone. Keep the WhastsApp application open during authorization.
Instance statuses:
**authenticated** - Authorization passed successfully
substatuses:
* normal - Keep your phone connected;
* phone - Phone not connected;
* computer - Trying to reach phone
* offline - Computer not connected
* battery_low.. - Charge your phone to keep using WhatsApp
**init** - Initial status
**loading** - The system is still loading, try again in 1 minute
substatuses:
* syncing - Keep your phone connected;
**got qr code** - There is a QR code and you need to take a picture of it in the Whatsapp application by going to Menu -> WhatsApp Web -> Add.
QR code is valid for one minute.
[Example showing base64 images on a page.](https://stackoverflow.com/questions/31526085/how-to-encode-an-image-into-an-html-file)
Manually easier to get [QR-code as an image](/#getQRCode)
When you request the status of the instance in standby mode (status **"init"**), it will automatically turn on. To avoid this behavior, use the **no_wakeup** parameter
https://api.replier.net/status
Parameters
| Name | Type | Description |
|---|---|---|
| instanceid required | string |
The instance sending the request. You will find it beside the instance in your dashboard.
Example:
YOUR_INSTANCE_ID
|
| token required | string |
The API token of that instance. Treat it as a secret: it authorises every call below.
Example:
YOUR_INSTANCE_TOKEN
|
Request test
sends a real request
Request samples
curl --request POST \
--url 'https://api.replier.net/status' \
--data-urlencode 'instanceid=YOUR_INSTANCE_ID' \
--data-urlencode 'token=YOUR_INSTANCE_TOKEN'
<?php
$payload = [
'instanceid' => 'YOUR_INSTANCE_ID',
'token' => 'YOUR_INSTANCE_TOKEN',
];
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.replier.net/status',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($payload),
]);
$response = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
if ($error !== '') {
throw new RuntimeException($error);
}
$result = json_decode($response, true);
// Every endpoint answers with {"success": bool, "msg": [...]} on failure.
if (isset($result['success']) && $result['success'] === false) {
throw new RuntimeException('API error ' . implode(', ', $result['msg']));
}
print_r($result);
import requests
url = 'https://api.replier.net/status'
payload = {
'instanceid': 'YOUR_INSTANCE_ID',
'token': 'YOUR_INSTANCE_TOKEN',
}
response = requests.post(url, data=payload, timeout=30)
response.raise_for_status()
result = response.json()
if result.get('success') is False:
raise RuntimeError('API error: %s' % result.get('msg'))
print(result)
const url = 'https://api.replier.net/status';
const payload = new URLSearchParams({
instanceid: 'YOUR_INSTANCE_ID',
token: 'YOUR_INSTANCE_TOKEN',
});
const response = await fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: payload,
});
const result = await response.json();
if (result.success === false) {
throw new Error(`API error: ${result.msg.join(', ')}`);
}
console.log(result);
const axios = require('axios');
const payload = new URLSearchParams({
instanceid: 'YOUR_INSTANCE_ID',
token: 'YOUR_INSTANCE_TOKEN',
});
(async () => {
try {
const { data } = await axios.post('https://api.replier.net/status', payload, { timeout: 30000 });
if (data.success === false) {
throw new Error(`API error: ${data.msg.join(', ')}`);
}
console.log(data);
} catch (err) {
console.error(err.message);
}
})();
$.ajax({
url: 'https://api.replier.net/status',
method: 'POST',
data: {
instanceid: 'YOUR_INSTANCE_ID',
token: 'YOUR_INSTANCE_TOKEN',
},
dataType: 'json',
})
.done(function (result) {
if (result.success === false) {
console.error('API error: ' + result.msg.join(', '));
return;
}
console.log(result);
})
.fail(function (xhr) {
console.error(xhr.status, xhr.responseText);
});
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static readonly HttpClient client = new HttpClient();
static async Task Main()
{
var payload = new Dictionary<string, string>
{
{ "instanceid", "YOUR_INSTANCE_ID" },
{ "token", "YOUR_INSTANCE_TOKEN" },
};
var response = await client.PostAsync("https://api.replier.net/status", new FormUrlEncodedContent(payload));
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}
}
import java.io.IOException;
import okhttp3.*;
public class Example {
public static void main(String[] args) throws IOException {
OkHttpClient client = new OkHttpClient();
FormBody.Builder form = new FormBody.Builder();
form.add("instanceid", "YOUR_INSTANCE_ID");
form.add("token", "YOUR_INSTANCE_TOKEN");
Request request = new Request.Builder()
.url("https://api.replier.net/status")
.post(form.build())
.build();
try (Response response = client.newCall(request).execute()) {
System.out.println(response.body().string());
}
}
}
require 'net/http'
require 'json'
require 'uri'
uri = URI('https://api.replier.net/status')
response = Net::HTTP.post_form(uri, {
'instanceid' => 'YOUR_INSTANCE_ID',
'token' => 'YOUR_INSTANCE_TOKEN',
})
result = JSON.parse(response.body)
raise "API error: #{result['msg'].join(', ')}" if result['success'] == false
puts result
package main
import (
"fmt"
"io"
"net/http"
"net/url"
"strings"
)
func main() {
form := url.Values{}
form.Set("instanceid", "YOUR_INSTANCE_ID")
form.Set("token", "YOUR_INSTANCE_TOKEN")
resp, err := http.Post(
"https://api.replier.net/status",
"application/x-www-form-urlencoded",
strings.NewReader(form.Encode()),
)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}
Samples use POST with a form-encoded body so credentials stay out of the URL. The API reads JSON bodies, form bodies and query strings alike. A GET with the same parameters in the query string works too.
Response
On failure, every endpoint answers with HTTP 200 and this envelope, where the string is a code from the error reference:
{
"success": false,
"msg": ["0008"]
}