admin-providers
Validate Provider Configuration
Validate provider configurations before creating or updating an agent.
This endpoint checks:
- API key validity for each provider
- Voice ID existence (for TTS providers like ElevenLabs, Cartesia)
- Model availability (for STT/LLM providers)
- Account quota status (where applicable)
Use this to pre-validate configurations before agent creation.
POST
/
admin
/
providers
/
validate
Validate Provider Configuration
curl --request POST \
--url https://api.example.com/admin/providers/validate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"voice_provider": "elevenlabs",
"voice_id": "<string>",
"transcriber_provider": "deepgram",
"transcriber_model": "<string>",
"model_provider": "openai",
"model_name": "<string>"
}
'import requests
url = "https://api.example.com/admin/providers/validate"
payload = {
"voice_provider": "elevenlabs",
"voice_id": "<string>",
"transcriber_provider": "deepgram",
"transcriber_model": "<string>",
"model_provider": "openai",
"model_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({
voice_provider: 'elevenlabs',
voice_id: '<string>',
transcriber_provider: 'deepgram',
transcriber_model: '<string>',
model_provider: 'openai',
model_name: '<string>'
})
};
fetch('https://api.example.com/admin/providers/validate', 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/admin/providers/validate",
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([
'voice_provider' => 'elevenlabs',
'voice_id' => '<string>',
'transcriber_provider' => 'deepgram',
'transcriber_model' => '<string>',
'model_provider' => 'openai',
'model_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://api.example.com/admin/providers/validate"
payload := strings.NewReader("{\n \"voice_provider\": \"elevenlabs\",\n \"voice_id\": \"<string>\",\n \"transcriber_provider\": \"deepgram\",\n \"transcriber_model\": \"<string>\",\n \"model_provider\": \"openai\",\n \"model_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://api.example.com/admin/providers/validate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"voice_provider\": \"elevenlabs\",\n \"voice_id\": \"<string>\",\n \"transcriber_provider\": \"deepgram\",\n \"transcriber_model\": \"<string>\",\n \"model_provider\": \"openai\",\n \"model_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/admin/providers/validate")
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 \"voice_provider\": \"elevenlabs\",\n \"voice_id\": \"<string>\",\n \"transcriber_provider\": \"deepgram\",\n \"transcriber_model\": \"<string>\",\n \"model_provider\": \"openai\",\n \"model_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Request model for provider validation.
TTS provider name
Voice ID to validate
STT provider name
STT model to validate
LLM provider name
LLM model to validate
Response
Successful Response
Previous
Validate Tts ProviderValidate a single TTS provider configuration.
Checks:
- API key validity
- Voice ID existence and accessibility
- Account quota (for ElevenLabs)
Next
⌘I
Validate Provider Configuration
curl --request POST \
--url https://api.example.com/admin/providers/validate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"voice_provider": "elevenlabs",
"voice_id": "<string>",
"transcriber_provider": "deepgram",
"transcriber_model": "<string>",
"model_provider": "openai",
"model_name": "<string>"
}
'import requests
url = "https://api.example.com/admin/providers/validate"
payload = {
"voice_provider": "elevenlabs",
"voice_id": "<string>",
"transcriber_provider": "deepgram",
"transcriber_model": "<string>",
"model_provider": "openai",
"model_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({
voice_provider: 'elevenlabs',
voice_id: '<string>',
transcriber_provider: 'deepgram',
transcriber_model: '<string>',
model_provider: 'openai',
model_name: '<string>'
})
};
fetch('https://api.example.com/admin/providers/validate', 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/admin/providers/validate",
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([
'voice_provider' => 'elevenlabs',
'voice_id' => '<string>',
'transcriber_provider' => 'deepgram',
'transcriber_model' => '<string>',
'model_provider' => 'openai',
'model_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://api.example.com/admin/providers/validate"
payload := strings.NewReader("{\n \"voice_provider\": \"elevenlabs\",\n \"voice_id\": \"<string>\",\n \"transcriber_provider\": \"deepgram\",\n \"transcriber_model\": \"<string>\",\n \"model_provider\": \"openai\",\n \"model_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://api.example.com/admin/providers/validate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"voice_provider\": \"elevenlabs\",\n \"voice_id\": \"<string>\",\n \"transcriber_provider\": \"deepgram\",\n \"transcriber_model\": \"<string>\",\n \"model_provider\": \"openai\",\n \"model_name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/admin/providers/validate")
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 \"voice_provider\": \"elevenlabs\",\n \"voice_id\": \"<string>\",\n \"transcriber_provider\": \"deepgram\",\n \"transcriber_model\": \"<string>\",\n \"model_provider\": \"openai\",\n \"model_name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}