List audio models
curl --request GET \
--url https://platform.jobbit.uk/v1/audio/models \
--header 'Authorization: Bearer <token>'import requests
url = "https://platform.jobbit.uk/v1/audio/models"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://platform.jobbit.uk/v1/audio/models', 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://platform.jobbit.uk/v1/audio/models",
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://platform.jobbit.uk/v1/audio/models"
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://platform.jobbit.uk/v1/audio/models")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform.jobbit.uk/v1/audio/models")
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{
"data": [
{
"id": "openai/gpt-4o-mini-tts-2025-12-15",
"name": "OpenAI: GPT-4o mini TTS",
"description": "Natural speech from text.",
"context_length": null,
"input_modalities": [
"text"
],
"output_modalities": [
"speech"
],
"pricing": {
"prompt": "0.0000006",
"completion": null,
"image": null,
"audio": "0.000012",
"request": null
},
"audio": {
"kind": "tts",
"voices": [
"alloy",
"echo",
"fable",
"onyx",
"nova",
"shimmer",
"ash",
"coral",
"sage",
"ballad"
],
"formats": [
"mp3",
"pcm"
],
"pcm": {
"sample_rate": 24000,
"channels": 1,
"bit_depth": 16
},
"languages": "70+ via natural prompt; tested EN, RU, ES, FR, DE, JA, ZH",
"supports_speed": true
}
}
]
}{
"error": {
"code": "invalid_key",
"message": "the API key is missing or invalid",
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}{
"error": {
"code": "insufficient_scope",
"message": "this key does not have the deploy:write permission",
"details": {
"required": "deploy:write"
},
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}{
"error": {
"code": "invalid_request",
"message": "the request is not valid",
"details": [
{
"location": [
"body",
"name"
],
"message": "String should match pattern '^[a-z0-9][a-z0-9-]*$'",
"type": "string_pattern_mismatch"
}
],
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}{
"error": {
"code": "rate_limited",
"message": "too many read requests, retry in 4 s",
"details": {
"group": "read",
"limit": 120,
"window_seconds": 60
},
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}List audio models
Lists speech, transcription and music models. Each entry has an audio object with the voices, formats or other details for that kind. Without kind, speech and transcription models are listed.
Requires the ai permission.
GET
/
v1
/
audio
/
models
List audio models
curl --request GET \
--url https://platform.jobbit.uk/v1/audio/models \
--header 'Authorization: Bearer <token>'import requests
url = "https://platform.jobbit.uk/v1/audio/models"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://platform.jobbit.uk/v1/audio/models', 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://platform.jobbit.uk/v1/audio/models",
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://platform.jobbit.uk/v1/audio/models"
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://platform.jobbit.uk/v1/audio/models")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform.jobbit.uk/v1/audio/models")
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{
"data": [
{
"id": "openai/gpt-4o-mini-tts-2025-12-15",
"name": "OpenAI: GPT-4o mini TTS",
"description": "Natural speech from text.",
"context_length": null,
"input_modalities": [
"text"
],
"output_modalities": [
"speech"
],
"pricing": {
"prompt": "0.0000006",
"completion": null,
"image": null,
"audio": "0.000012",
"request": null
},
"audio": {
"kind": "tts",
"voices": [
"alloy",
"echo",
"fable",
"onyx",
"nova",
"shimmer",
"ash",
"coral",
"sage",
"ballad"
],
"formats": [
"mp3",
"pcm"
],
"pcm": {
"sample_rate": 24000,
"channels": 1,
"bit_depth": 16
},
"languages": "70+ via natural prompt; tested EN, RU, ES, FR, DE, JA, ZH",
"supports_speed": true
}
}
]
}{
"error": {
"code": "invalid_key",
"message": "the API key is missing or invalid",
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}{
"error": {
"code": "insufficient_scope",
"message": "this key does not have the deploy:write permission",
"details": {
"required": "deploy:write"
},
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}{
"error": {
"code": "invalid_request",
"message": "the request is not valid",
"details": [
{
"location": [
"body",
"name"
],
"message": "String should match pattern '^[a-z0-9][a-z0-9-]*$'",
"type": "string_pattern_mismatch"
}
],
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}{
"error": {
"code": "rate_limited",
"message": "too many read requests, retry in 4 s",
"details": {
"group": "read",
"limit": 120,
"window_seconds": 60
},
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}Authorizations
An API key from Settings → API keys, sent as Authorization: Bearer jb_live_…
Query Parameters
tts for speech, stt for transcription, music for songs.
Available options:
tts, stt, music Response
The models.
The models. A key limited to some models sees only those.
Show child attributes
Show child attributes
⌘I