Skip to main content
GET
/
v1
/
businesses
/
{businessId}
/
get
/
quality_signals
Get Quality Signals
curl --request GET \
  --url https://api.example.com/v1/businesses/{businessId}/get/quality_signals
import requests

url = "https://api.example.com/v1/businesses/{businessId}/get/quality_signals"

response = requests.get(url)

print(response.text)
const options = {method: 'GET'};

fetch('https://api.example.com/v1/businesses/{businessId}/get/quality_signals', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/businesses/{businessId}/get/quality_signals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

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

func main() {

url := "https://api.example.com/v1/businesses/{businessId}/get/quality_signals"

req, _ := http.NewRequest("GET", url, nil)

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.example.com/v1/businesses/{businessId}/get/quality_signals")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.example.com/v1/businesses/{businessId}/get/quality_signals")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
Retrieve your WhatsApp account’s current quality signals — the messaging limit tier and quality score that Meta assigns based on your message delivery and customer feedback. Use these to monitor your account health and understand how many business-initiated conversations you can send per day.

Messaging limit tiers

Meta defines four tiers for business-initiated conversations in a rolling 24-hour period:
Tier valueConversations per 24 hours
WHATS_APP_MESSAGE_LIMIT_TIER_1K1,000 unique customers
WHATS_APP_MESSAGE_LIMIT_TIER_10K10,000 unique customers
WHATS_APP_MESSAGE_LIMIT_TIER_100K100,000 unique customers
WHATS_APP_MESSAGE_LIMIT_TIER_UNLIMITEDUnlimited
The messagesLimitTier field only updates when Meta registers a change. If your account is new, it may appear as WHATS_APP_MESSAGE_LIMIT_TIER_UNSPECIFIED until your first tier assignment. This is expected and does not indicate an error. See Meta’s messaging limits documentation for full details.

Endpoint

GET https://api.connectly.ai/v1/businesses/{businessId}/get/quality_signals

Response

{
  "entity": {
    "signals": [
      {
        "whatsappQualitySignals": {
          "phoneNumber": "+16501234567",
          "wabaId": "649852411234567",
          "messagesLimitTier": "WHATS_APP_MESSAGE_LIMIT_TIER_UNSPECIFIED",
          "qualityScore": "WHATS_APP_QUALITY_SCORE_HIGH"
        }
      }
    ]
  }
}
Response fields:
FieldDescription
whatsappQualitySignals.phoneNumberThe WhatsApp phone number these signals apply to.
whatsappQualitySignals.wabaIdYour WhatsApp Business Account ID.
whatsappQualitySignals.messagesLimitTierYour current messaging limit tier. UNSPECIFIED if not yet assigned.
whatsappQualitySignals.qualityScoreYour current quality score: HIGH, MEDIUM, or LOW.

Example

curl -X GET "https://api.connectly.ai/v1/businesses/{businessId}/get/quality_signals" \
  -H "X-API-Key: YOUR_API_KEY"