curl --request POST \
--url https://api.goenhance.ai/api/v1/audio/generations \
--header 'Content-Type: application/json' \
--data '
{
"model": "lyria-3-pro",
"prompt": "An uplifting synth-pop anthem about city lights at night, female vocals"
}
'import requests
url = "https://api.goenhance.ai/api/v1/audio/generations"
payload = {
"model": "lyria-3-pro",
"prompt": "An uplifting synth-pop anthem about city lights at night, female vocals"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'lyria-3-pro',
prompt: 'An uplifting synth-pop anthem about city lights at night, female vocals'
})
};
fetch('https://api.goenhance.ai/api/v1/audio/generations', 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.goenhance.ai/api/v1/audio/generations",
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' => 'lyria-3-pro',
'prompt' => 'An uplifting synth-pop anthem about city lights at night, female vocals'
]),
CURLOPT_HTTPHEADER => [
"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.goenhance.ai/api/v1/audio/generations"
payload := strings.NewReader("{\n \"model\": \"lyria-3-pro\",\n \"prompt\": \"An uplifting synth-pop anthem about city lights at night, female vocals\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.goenhance.ai/api/v1/audio/generations")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"lyria-3-pro\",\n \"prompt\": \"An uplifting synth-pop anthem about city lights at night, female vocals\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.goenhance.ai/api/v1/audio/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"lyria-3-pro\",\n \"prompt\": \"An uplifting synth-pop anthem about city lights at night, female vocals\"\n}"
response = http.request(request)
puts response.read_body{
"code": 0,
"msg": "Success",
"data": {
"img_uuid": "c12b656c-747a-44fd-9c80-add79b0c52d5",
"cost": 5.2
}
}Lyria 3 Pro
Generate one full song with vocals and lyrics using Google Lyria 3 Pro. Describe it in prompt, and optionally add reference images. There is no separate instrumental switch; ask for it in the prompt.
Pricing (per song):
| Option | Tokens | USD |
|---|---|---|
| Per song | 5.2 | $0.104 |
Result: one json item { "type": "audio", "value": "https://...mp3", "lyrics": "..." }. lyrics is the text Lyria returns with the audio (the lyrics, or a description of the song structure). All audio carries Google’s inaudible SynthID watermark. Result links expire (see link_expired_at).
curl --request POST \
--url https://api.goenhance.ai/api/v1/audio/generations \
--header 'Content-Type: application/json' \
--data '
{
"model": "lyria-3-pro",
"prompt": "An uplifting synth-pop anthem about city lights at night, female vocals"
}
'import requests
url = "https://api.goenhance.ai/api/v1/audio/generations"
payload = {
"model": "lyria-3-pro",
"prompt": "An uplifting synth-pop anthem about city lights at night, female vocals"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'lyria-3-pro',
prompt: 'An uplifting synth-pop anthem about city lights at night, female vocals'
})
};
fetch('https://api.goenhance.ai/api/v1/audio/generations', 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.goenhance.ai/api/v1/audio/generations",
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' => 'lyria-3-pro',
'prompt' => 'An uplifting synth-pop anthem about city lights at night, female vocals'
]),
CURLOPT_HTTPHEADER => [
"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.goenhance.ai/api/v1/audio/generations"
payload := strings.NewReader("{\n \"model\": \"lyria-3-pro\",\n \"prompt\": \"An uplifting synth-pop anthem about city lights at night, female vocals\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.goenhance.ai/api/v1/audio/generations")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"lyria-3-pro\",\n \"prompt\": \"An uplifting synth-pop anthem about city lights at night, female vocals\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.goenhance.ai/api/v1/audio/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"lyria-3-pro\",\n \"prompt\": \"An uplifting synth-pop anthem about city lights at night, female vocals\"\n}"
response = http.request(request)
puts response.read_body{
"code": 0,
"msg": "Success",
"data": {
"img_uuid": "c12b656c-747a-44fd-9c80-add79b0c52d5",
"cost": 5.2
}
}Headers
Body
Model name. Must be lyria-3-pro.
lyria-3-pro Required. What the song should be: genre, mood, instruments, theme, and vocals or not (e.g. add Instrumental only, no vocals). Max 3000 characters.
3000Optional. Up to 10 reference images (each up to 30 MB) that the song should be inspired by.
10Optional. A publicly accessible HTTPS URL. When the task status changes (processing / success / failed), GoEnhance sends a POST request to this URL. The request body is identical to the response of GET /api/v1/jobs/detail. If your server does not respond with HTTP 200, the notification is retried up to 3 times, with a 3-second timeout per attempt.
"https://your-server.com/goenhance/callback"
