POST
/
v1
/
audio
/
music
Generate music
curl --request POST \
  --url https://platform.jobbit.uk/v1/audio/music \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "google/lyria-3-clip-preview",
  "prompt": "A calm, upbeat acoustic loop for a physiotherapy clinic hold line, no vocals",
  "store": true
}
'
import requests

url = "https://platform.jobbit.uk/v1/audio/music"

payload = {
"model": "google/lyria-3-clip-preview",
"prompt": "A calm, upbeat acoustic loop for a physiotherapy clinic hold line, no vocals",
"store": True
}
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({
model: 'google/lyria-3-clip-preview',
prompt: 'A calm, upbeat acoustic loop for a physiotherapy clinic hold line, no vocals',
store: true
})
};

fetch('https://platform.jobbit.uk/v1/audio/music', 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/music",
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([
'model' => 'google/lyria-3-clip-preview',
'prompt' => 'A calm, upbeat acoustic loop for a physiotherapy clinic hold line, no vocals',
'store' => true
]),
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://platform.jobbit.uk/v1/audio/music"

payload := strings.NewReader("{\n \"model\": \"google/lyria-3-clip-preview\",\n \"prompt\": \"A calm, upbeat acoustic loop for a physiotherapy clinic hold line, no vocals\",\n \"store\": true\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://platform.jobbit.uk/v1/audio/music")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"google/lyria-3-clip-preview\",\n \"prompt\": \"A calm, upbeat acoustic loop for a physiotherapy clinic hold line, no vocals\",\n \"store\": true\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://platform.jobbit.uk/v1/audio/music")

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 \"model\": \"google/lyria-3-clip-preview\",\n \"prompt\": \"A calm, upbeat acoustic loop for a physiotherapy clinic hold line, no vocals\",\n \"store\": true\n}"

response = http.request(request)
puts response.read_body
"<string>"
{
"error": {
"code": "upstream_rejected",
"message": "unknown music model; see GET /v1/audio/models?kind=music",
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}
{
"error": {
"code": "invalid_key",
"message": "the API key is missing or invalid",
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}
{
"error": {
"code": "insufficient_credits",
"message": "not enough credits to run this request",
"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": "rate_limited",
"message": "too many read requests, retry in 4 s",
"details": {
"group": "read",
"limit": 120,
"window_seconds": 60
},
"request_id": "5d3f0b7c8a2e4e19b6c47a90d1e2f3a4"
}
}

Authorizations

Authorization
string
header
required

An API key from Settings → API keys, sent as Authorization: Bearer jb_live_…

Body

application/json
prompt
string
required

Describe the song: style, mood, instruments and, if you want vocals, the lyrics.

Required string length: 1 - 4000
model
string

A music model id from GET /v1/audio/models?kind=music. Defaults to google/lyria-3-pro-preview.

store
boolean
default:false

Keep the song in storage and answer with JSON containing its URL.

Response

The audio, or JSON with its link when store is true.

The response is of type file.