List plans
curl --request GET \
--url https://app.autocalls.ai/api/white-label/plans \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.autocalls.ai/api/white-label/plans"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.autocalls.ai/api/white-label/plans', 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.autocalls.ai/api/white-label/plans",
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.autocalls.ai/api/white-label/plans"
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.autocalls.ai/api/white-label/plans")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.autocalls.ai/api/white-label/plans")
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{
"currency": "USD",
"data": [
{
"id": 5,
"name": "Starter",
"description": "For small teams getting started",
"active": true,
"included_minutes": 100,
"included_credits": 0,
"extra_minutes_cost": 0.2,
"prices": [
{ "billing": "monthly", "amount": 29 },
{ "billing": "yearly", "amount": 290 }
],
"cost_in_minutes": 100
},
{
"id": 6,
"name": "Agency",
"description": "For agencies with several clients",
"active": true,
"included_minutes": 500,
"included_credits": 900,
"extra_minutes_cost": 0.15,
"prices": [
{ "billing": "monthly", "amount": 99 }
],
"cost_in_minutes": 600
}
]
}
{
"message": "Unauthenticated."
}
{
"message": "You are not an administrator."
}
{
"message": "You do not have access to these settings."
}
{
"message": "Too Many Attempts."
}
White Label
List plans
List the subscription plans of your white label platform
GET
/
white-label
/
plans
List plans
curl --request GET \
--url https://app.autocalls.ai/api/white-label/plans \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.autocalls.ai/api/white-label/plans"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.autocalls.ai/api/white-label/plans', 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.autocalls.ai/api/white-label/plans",
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.autocalls.ai/api/white-label/plans"
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.autocalls.ai/api/white-label/plans")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.autocalls.ai/api/white-label/plans")
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{
"currency": "USD",
"data": [
{
"id": 5,
"name": "Starter",
"description": "For small teams getting started",
"active": true,
"included_minutes": 100,
"included_credits": 0,
"extra_minutes_cost": 0.2,
"prices": [
{ "billing": "monthly", "amount": 29 },
{ "billing": "yearly", "amount": 290 }
],
"cost_in_minutes": 100
},
{
"id": 6,
"name": "Agency",
"description": "For agencies with several clients",
"active": true,
"included_minutes": 500,
"included_credits": 900,
"extra_minutes_cost": 0.15,
"prices": [
{ "billing": "monthly", "amount": 99 }
],
"cost_in_minutes": 600
}
]
}
{
"message": "Unauthenticated."
}
{
"message": "You are not an administrator."
}
{
"message": "You do not have access to these settings."
}
{
"message": "Too Many Attempts."
}
This endpoint returns your subscription plans, as on the Plans page of your administration panel, with the minutes each plan takes from your balance when you give it to a user with Update user plan.
This endpoint is available to the account owner (with an active plan) and to team members with Billing Access. Other users receive a 403 Forbidden error.
Response
string
The currency of your prices, for example
USDobject[]
Your plans, in the order of your plans page
Show plan properties
Show plan properties
integer
The plan’s ID
string
The plan’s name
string
The plan’s description
boolean
Whether your users see the plan on the plans page. Inactive plans can still be given to a user, or shown to one user with
visible_plans in Update user settingsnumber
The minutes included in the plan every month
integer
The chat credits included in the plan every month, for AI replies, WhatsApp and SMS
number
The price per minute after the included minutes, in
currencyobject[]
The plan’s prices:
billing (monthly or yearly) and amount, in currencynumber
The minutes taken from the owner’s balance when you give this plan to a user with monthly minutes: its included minutes, plus its chat credits at 9 credits per minute. Yearly minutes take 12 times this, and a plan without minutes takes nothing
{
"currency": "USD",
"data": [
{
"id": 5,
"name": "Starter",
"description": "For small teams getting started",
"active": true,
"included_minutes": 100,
"included_credits": 0,
"extra_minutes_cost": 0.2,
"prices": [
{ "billing": "monthly", "amount": 29 },
{ "billing": "yearly", "amount": 290 }
],
"cost_in_minutes": 100
},
{
"id": 6,
"name": "Agency",
"description": "For agencies with several clients",
"active": true,
"included_minutes": 500,
"included_credits": 900,
"extra_minutes_cost": 0.15,
"prices": [
{ "billing": "monthly", "amount": 99 }
],
"cost_in_minutes": 600
}
]
}
{
"message": "Unauthenticated."
}
{
"message": "You are not an administrator."
}
{
"message": "You do not have access to these settings."
}
{
"message": "Too Many Attempts."
}
Rate limit
The platform settings, default limits, user settings and plan endpoints share a limit of 60 requests per minute for each account. Above it they return429, and the Retry-After response header tells you how many seconds to wait.
Example
curl -X GET https://app.autocalls.ai/api/white-label/plans \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"

