Login platform user
curl --request POST \
--url https://app.autocalls.ai/api/white-label/login \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "<string>",
"password": "<string>",
"token_name": "<string>"
}
'import requests
url = "https://app.autocalls.ai/api/white-label/login"
payload = {
"email": "<string>",
"password": "<string>",
"token_name": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: '<string>', password: '<string>', token_name: '<string>'})
};
fetch('https://app.autocalls.ai/api/white-label/login', 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/login",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => '<string>',
'password' => '<string>',
'token_name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.autocalls.ai/api/white-label/login"
payload := strings.NewReader("{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"token_name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.autocalls.ai/api/white-label/login")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"token_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.autocalls.ai/api/white-label/login")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"token_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"message": "Login successful.",
"user": {
"id": 123,
"name": "John Doe",
"email": "john@example.com"
},
"token": "2|abc123xyz789...",
"token_name": "api-token"
}
{
"message": "These credentials do not match our records.",
"errors": {
"email": ["These credentials do not match our records."]
}
}
{
"error": "You are not a white label admin."
}
{
"message": "The email field is required.",
"errors": {
"email": ["The email field is required."]
}
}
White Label
Login platform user
Authenticate a platform user and receive an API token
POST
/
white-label
/
login
Login platform user
curl --request POST \
--url https://app.autocalls.ai/api/white-label/login \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "<string>",
"password": "<string>",
"token_name": "<string>"
}
'import requests
url = "https://app.autocalls.ai/api/white-label/login"
payload = {
"email": "<string>",
"password": "<string>",
"token_name": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: '<string>', password: '<string>', token_name: '<string>'})
};
fetch('https://app.autocalls.ai/api/white-label/login', 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/login",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => '<string>',
'password' => '<string>',
'token_name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.autocalls.ai/api/white-label/login"
payload := strings.NewReader("{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"token_name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.autocalls.ai/api/white-label/login")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"token_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.autocalls.ai/api/white-label/login")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"token_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"message": "Login successful.",
"user": {
"id": 123,
"name": "John Doe",
"email": "john@example.com"
},
"token": "2|abc123xyz789...",
"token_name": "api-token"
}
{
"message": "These credentials do not match our records.",
"errors": {
"email": ["These credentials do not match our records."]
}
}
{
"error": "You are not a white label admin."
}
{
"message": "The email field is required.",
"errors": {
"email": ["The email field is required."]
}
}
This endpoint allows white label admins to authenticate one of their platform users and receive an API token for that user. Use this to build custom authentication flows for your white label platform.
This endpoint requires authentication as a white label admin. Only users belonging to your platform can be logged in.
Request Body
The platform user’s email address
The platform user’s password
Optional name/label for the API token (e.g., “Mobile App”, “Web Dashboard”). Defaults to “api-token”.
Response
Success message
The API token for the platform user
The name/label of the token
{
"message": "Login successful.",
"user": {
"id": 123,
"name": "John Doe",
"email": "john@example.com"
},
"token": "2|abc123xyz789...",
"token_name": "api-token"
}
{
"message": "These credentials do not match our records.",
"errors": {
"email": ["These credentials do not match our records."]
}
}
{
"error": "You are not a white label admin."
}
{
"message": "The email field is required.",
"errors": {
"email": ["The email field is required."]
}
}
Example Request
curl -X POST https://app.autocalls.ai/api/white-label/login \
-H "Authorization: Bearer YOUR_ADMIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "platformuser@example.com",
"password": "userpassword123",
"token_name": "Mobile App"
}'
Using the User Token
The returned token belongs to the platform user and can be used for their authenticated requests:curl -X GET https://app.autocalls.ai/api/user/me \
-H "Authorization: Bearer 2|abc123xyz789..."
⌘I

