Skip to content

Check Instance Status ​

Check whether a WhatsApp instance is currently connected before sending messages. This is useful for monitoring instance health during live events or before triggering automated messages.

Endpoint ​

http
GET /whatsapp/connection-state/:instance
  • :instance: The name of your WhatsApp instance (e.g., my-bot).

Response ​

FieldTypeDescription
instanceNamestringThe name of your WhatsApp instance.
statusstringThe current connection state. See states below.

Connection States ​

StateMeaning
openInstance is connected and ready to send and receive messages.
connectingInstance is in the process of connecting. A QR scan may be in progress.
closeInstance is disconnected. Reconnect it from the dashboard before sending messages.

Example Response ​

json
{
  "status": "open",
  "instanceName": "my-bot"
}

Examples ​

bash
curl -X GET https://api.chatbreez.com/whatsapp/connection-state/{instance} \
  -H "X-API-Key: your_api_key"
javascript
const axios = require('axios');

const checkStatus = async () => {
  try {
    const response = await axios.get(
      'https://api.chatbreez.com/whatsapp/connection-state/{instance}',
      {
        headers: {
          'X-API-Key': 'your_api_key'
        }
      }
    );
    const instanceName = response.data.instanceName;
    const status = response.data.status;
    console.log('Instance:', instanceName, '- Status:', status); // "open", "connecting", or "close"
  } catch (error) {
    console.error(error);
  }
};

checkStatus();
python
import requests

url = "https://api.chatbreez.com/whatsapp/connection-state/{instance}"

headers = {
    "X-API-Key": "your_api_key"
}

response = requests.get(url, headers=headers)

data = response.json()
instance_name = data["instanceName"]
status = data["status"]
print("Instance:", instance_name, "- Status:", status)  # "open", "connecting", or "close"
go
package main

import (
	"encoding/json"
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.chatbreez.com/whatsapp/connection-state/{instance}"

	req, _ := http.NewRequest("GET", url, nil)
	req.Header.Set("X-API-Key", "your_api_key")

	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer resp.Body.Close()

	body, _ := io.ReadAll(resp.Body)
	var result struct {
		InstanceName string `json:"instanceName"`
		Status       string `json:"status"`
	}
	json.Unmarshal(body, &result)
	fmt.Println("Instance:", result.InstanceName, "- Status:", result.Status) // "open", "connecting", or "close"
}
java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class Main {
    public static void main(String[] args) throws Exception {
        String url = "https://api.chatbreez.com/whatsapp/connection-state/{instance}";

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(url))
            .header("X-API-Key", "your_api_key")
            .GET()
            .build();

        HttpClient client = HttpClient.newHttpClient();
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

        ObjectMapper mapper = new ObjectMapper();
        JsonNode root = mapper.readTree(response.body());
        String instanceName = root.path("instanceName").asText();
        String status = root.path("status").asText();
        System.out.println("Instance: " + instanceName + " - Status: " + status); // "open", "connecting", or "close"
    }
}
php
<?php

$url = 'https://api.chatbreez.com/whatsapp/connection-state/{instance}';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'X-API-Key: your_api_key',
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
$instanceName = $data['instanceName'] ?? null;
$status = $data['status'] ?? null;
echo "Instance: " . $instanceName . " - Status: " . $status; // "open", "connecting", or "close"

Checking Before You Send ​

Always verify the instance is open before sending messages. Sending to a disconnected instance will fail and the message will be recorded as failed in your logs.

javascript
const axios = require('axios');

const checkStatus = async (instance) => {
  const response = await axios.get(
    `https://api.chatbreez.com/whatsapp/connection-state/${instance}`,
    { headers: { 'X-API-Key': process.env.CHATBREEZ_API_KEY } }
  );
  return response.data.status === 'open';
};

const sendIfConnected = async (instance, recipient, text) => {
  const connected = await checkStatus(instance);
  if (!connected) {
    console.warn(`Instance ${instance} is not connected — skipping message.`);
    return;
  }
  await axios.post(
    `https://api.chatbreez.com/whatsapp/send-text/${instance}`,
    { recipient, text },
    { headers: { 'X-API-Key': process.env.CHATBREEZ_API_KEY } }
  );
};

Common Errors ​

Errors are returned as JSON in this shape:

json
{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "API key missing",
    "correlationId": "abc123-def456-ghi789"
  }
}
StatusCodeMeaning
401UNAUTHORIZEDMissing or invalid API key.
403FORBIDDENYour account is deactivated. Contact support to reactivate it.
404NOT_FOUNDThe instance in the URL does not exist on your account.
500INTERNAL_SERVER_ERRORAn unexpected error occurred on our side. Try again shortly.

Next Steps ​