Get Account Limits
curl --request GET \
--url https://app.wachat.net/api/v1/account/limits \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.wachat.net/api/v1/account/limits"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.wachat.net/api/v1/account/limits', 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://app.wachat.net/api/v1/account/limits",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://app.wachat.net/api/v1/account/limits"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.wachat.net/api/v1/account/limits")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.wachat.net/api/v1/account/limits")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"account": {
"teamId": 25,
"teamName": "Jakarta Team"
},
"plan": {
"id": 2,
"name": "Pro",
"interval": "month",
"currency": "usd",
"amount": 2900
},
"subscription": {
"status": "active",
"hasAccess": true,
"isExpired": false,
"isTrial": false,
"isCancelled": false,
"isPending": false,
"isPastDue": false,
"effectiveExpiry": "2026-07-13T08:00:00.000Z",
"currentPeriodEnd": "2026-07-13T08:00:00.000Z",
"trialEndsAt": null,
"expiresAt": null
},
"limits": {
"users": {
"limit": 3,
"used": 1,
"remaining": 2,
"isLimitReached": false
},
"contacts": {
"limit": 3,
"used": 1,
"remaining": 2,
"isLimitReached": false
},
"instances": {
"limit": 3,
"used": 1,
"remaining": 2,
"isLimitReached": false
},
"messages": {
"limit": 3,
"used": 1,
"remaining": 2,
"isLimitReached": false
}
},
"features": {
"ai": true,
"flowBuilder": true,
"campaigns": true,
"templates": true,
"voiceCalls": false
}
}Account
Get Account Limits
Return the authenticated account plan, subscription status, current usage, limits, and enabled features.
GET
/
account
/
limits
Get Account Limits
curl --request GET \
--url https://app.wachat.net/api/v1/account/limits \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.wachat.net/api/v1/account/limits"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.wachat.net/api/v1/account/limits', 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://app.wachat.net/api/v1/account/limits",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://app.wachat.net/api/v1/account/limits"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.wachat.net/api/v1/account/limits")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.wachat.net/api/v1/account/limits")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"account": {
"teamId": 25,
"teamName": "Jakarta Team"
},
"plan": {
"id": 2,
"name": "Pro",
"interval": "month",
"currency": "usd",
"amount": 2900
},
"subscription": {
"status": "active",
"hasAccess": true,
"isExpired": false,
"isTrial": false,
"isCancelled": false,
"isPending": false,
"isPastDue": false,
"effectiveExpiry": "2026-07-13T08:00:00.000Z",
"currentPeriodEnd": "2026-07-13T08:00:00.000Z",
"trialEndsAt": null,
"expiresAt": null
},
"limits": {
"users": {
"limit": 3,
"used": 1,
"remaining": 2,
"isLimitReached": false
},
"contacts": {
"limit": 3,
"used": 1,
"remaining": 2,
"isLimitReached": false
},
"instances": {
"limit": 3,
"used": 1,
"remaining": 2,
"isLimitReached": false
},
"messages": {
"limit": 3,
"used": 1,
"remaining": 2,
"isLimitReached": false
}
},
"features": {
"ai": true,
"flowBuilder": true,
"campaigns": true,
"templates": true,
"voiceCalls": false
}
}Return the authenticated account plan, subscription status, current usage, limits, and enabled features.
Use this endpoint before creating instances, importing contacts, or sending high-volume messages so your external application can show remaining quota clearly.
{
"success": true,
"account": {
"teamId": 25,
"teamName": "Jhon Doe Team"
},
"plan": {
"id": 2,
"name": "Pro",
"interval": "month",
"currency": "usd",
"amount": 2900
},
"subscription": {
"status": "active",
"hasAccess": true,
"isExpired": false,
"isTrial": false,
"isCancelled": false,
"isPending": false,
"isPastDue": false,
"effectiveExpiry": "2026-07-13T08:00:00.000Z",
"currentPeriodEnd": "2026-07-13T08:00:00.000Z",
"trialEndsAt": null,
"expiresAt": null
},
"limits": {
"users": {
"limit": 5,
"used": 2,
"remaining": 3,
"isLimitReached": false
},
"contacts": {
"limit": 10000,
"used": 1240,
"remaining": 8760,
"isLimitReached": false
},
"instances": {
"limit": 3,
"used": 1,
"remaining": 2,
"isLimitReached": false
},
"messages": null
},
"features": {
"ai": true,
"flowBuilder": true,
"campaigns": true,
"templates": true,
"voiceCalls": false
}
}
A limit value of
Unlimited means the plan does not restrict that resource.Authorizations
Authenticate your integration payloads by injecting your premium secure Wachat Account API Private Secret Key inside standard Authorization Bearer header vectors.
⌘I
