Get the next date with available SMS quota
curl --request GET \
--url https://your-instance.example.com/api/campaigns/next-available-slot \
--header 'Authorization: Bearer <token>'import requests
url = "https://your-instance.example.com/api/campaigns/next-available-slot"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://your-instance.example.com/api/campaigns/next-available-slot', 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://your-instance.example.com/api/campaigns/next-available-slot",
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://your-instance.example.com/api/campaigns/next-available-slot"
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://your-instance.example.com/api/campaigns/next-available-slot")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://your-instance.example.com/api/campaigns/next-available-slot")
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,
"isUnlimited": false,
"timezone": "America/Toronto",
"dailyLimit": 500,
"todayDate": "2026-05-18",
"todayUsage": 480,
"todayAvailableQuota": 20,
"nextAvailableDate": "2026-05-19",
"availableQuota": 500,
"daysUntilAvailable": 1,
"message": "Next slot with full daily quota is tomorrow."
}{
"success": false,
"message": "Validation error",
"error": "name is required"
}Campaigns
Get the next date with available SMS quota
Searches up to 60 days ahead for the next date that has enough remaining SMS quota to accommodate the requested contactCount. Always returns today’s usage so the UI can render the quota banner even when contactCount is omitted.
GET
/
api
/
campaigns
/
next-available-slot
Get the next date with available SMS quota
curl --request GET \
--url https://your-instance.example.com/api/campaigns/next-available-slot \
--header 'Authorization: Bearer <token>'import requests
url = "https://your-instance.example.com/api/campaigns/next-available-slot"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://your-instance.example.com/api/campaigns/next-available-slot', 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://your-instance.example.com/api/campaigns/next-available-slot",
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://your-instance.example.com/api/campaigns/next-available-slot"
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://your-instance.example.com/api/campaigns/next-available-slot")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://your-instance.example.com/api/campaigns/next-available-slot")
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,
"isUnlimited": false,
"timezone": "America/Toronto",
"dailyLimit": 500,
"todayDate": "2026-05-18",
"todayUsage": 480,
"todayAvailableQuota": 20,
"nextAvailableDate": "2026-05-19",
"availableQuota": 500,
"daysUntilAvailable": 1,
"message": "Next slot with full daily quota is tomorrow."
}{
"success": false,
"message": "Validation error",
"error": "name is required"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Number of contacts the upcoming campaign would target. Omit for general quota info.
Required range:
x >= 0Response
Next available slot returned