curl --request GET \
--url https://api.peachdeskai.com/api/v1/user/configurations/bibha-voice/cost \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.peachdeskai.com/api/v1/user/configurations/bibha-voice/cost"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.peachdeskai.com/api/v1/user/configurations/bibha-voice/cost', 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.peachdeskai.com/api/v1/user/configurations/bibha-voice/cost",
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://api.peachdeskai.com/api/v1/user/configurations/bibha-voice/cost"
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://api.peachdeskai.com/api/v1/user/configurations/bibha-voice/cost")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.peachdeskai.com/api/v1/user/configurations/bibha-voice/cost")
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{
"provider": "<string>",
"kind": "<string>",
"model": "<string>",
"unit": "<string>",
"unit_cost_usd": 123,
"unit_cost_cogs_usd": 123,
"input_unit_cost_usd": 123,
"output_unit_cost_usd": 123,
"input_unit_cost_cogs_usd": 123,
"output_unit_cost_cogs_usd": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Get Bibha Voice Model Cost
Per-unit cost for a Bibha Voice Studio model, so the agent canvas can show
an inline /unit:LLM/1M tokens, TTS /1Mchars,STT/audio-minute,
EMBEDDINGS $/1M tokens. unit_cost_usd is the margined RETAIL the user
sees; unit_cost_cogs_usd is the raw COGS for Super-Admins.
kind must cover every service the model pickers offer on the bibha-voice
provider. embeddings was missing from this Literal while
ServiceConfigurationForm asked for it on all four, so every embedding
model 422’d and silently showed no price at all (the caller swallows the
error). test_bibha_voice_cost_roster_gate.py now iterates the live
roster so a kind can never fall off this list again.
llm / tts / stt are GPU-infra amortization (no third-party COGS);
embeddings carry an authored per-model registry rate — see
_bibha_voice_embeddings_cost for why the two paths differ.
curl --request GET \
--url https://api.peachdeskai.com/api/v1/user/configurations/bibha-voice/cost \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.peachdeskai.com/api/v1/user/configurations/bibha-voice/cost"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.peachdeskai.com/api/v1/user/configurations/bibha-voice/cost', 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.peachdeskai.com/api/v1/user/configurations/bibha-voice/cost",
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://api.peachdeskai.com/api/v1/user/configurations/bibha-voice/cost"
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://api.peachdeskai.com/api/v1/user/configurations/bibha-voice/cost")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.peachdeskai.com/api/v1/user/configurations/bibha-voice/cost")
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{
"provider": "<string>",
"kind": "<string>",
"model": "<string>",
"unit": "<string>",
"unit_cost_usd": 123,
"unit_cost_cogs_usd": 123,
"input_unit_cost_usd": 123,
"output_unit_cost_usd": 123,
"input_unit_cost_cogs_usd": 123,
"output_unit_cost_cogs_usd": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Interactive user session: the login JWT, sent as Authorization: Bearer <token>.
Query Parameters
llm, tts, stt, embeddings Response
Successful Response

