curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flow_music_extend",
"params": {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
"out_task_id": "flow_music_extend_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "flow_music_extend",
"params": {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
"out_task_id": "flow_music_extend_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "flow_music_extend",
params: {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
out_task_id: "flow_music_extend_123456"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://aireiter.com/api/openapi/submit"
payload := map[string]interface{}{
"model": "flow_music_extend",
"params": map[string]interface{}{
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro",
},
"out_task_id": "flow_music_extend_123456",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://aireiter.com/api/openapi/submit";
String payload = """
{
"model": "flow_music_extend",
"params": {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
"out_task_id": "flow_music_extend_123456"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = [
"model" => "flow_music_extend",
"params" => [
"clip_id" => "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt" => "Add a warmer guitar interlude",
"extend_from_s" => 8,
"extend_s" => 12,
"version" => "lyria-3-pro",
],
"out_task_id" => "flow_music_extend_123456"
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://aireiter.com/api/openapi/submit")
payload = {
model: "flow_music_extend",
params: {
clip_id: "cd984d09-5a77-4a06-9553-e47a55f009b0",
prompt: "Add a warmer guitar interlude",
extend_from_s: 8,
extend_s: 12,
version: "lyria-3-pro",
},
out_task_id: "flow_music_extend_123456"
}
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://aireiter.com/api/openapi/submit")!
let payload: [String: Any] = [
"model": "flow_music_extend",
"params": [
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro",
],
"out_task_id": "flow_music_extend_123456"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://aireiter.com/api/openapi/submit";
var payload = @"
{
"model": "flow_music_extend",
"params": {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
"out_task_id": "flow_music_extend_123456"
}";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
#include <stdio.h>
#include <curl/curl.h>
int main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
const char *url = "https://aireiter.com/api/openapi/submit";
const char *payload = "{\"model\": \"flow_music_extend\", \"params\": {\"clip_id\": \"cd984d09-5a77-4a06-9553-e47a55f009b0\", \"prompt\": \"Add a warmer guitar interlude\", \"extend_from_s\": 8, \"extend_s\": 12, \"version\": \"lyria-3-pro\"}, \"out_task_id\": \"flow_music_extend_123456\"}";
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
}
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSURL *url = [NSURL URLWithString:@"https://aireiter.com/api/openapi/submit"];
NSDictionary *payload = @{
@"model": @"flow_music_extend",
@"params": @{
@"clip_id": @"cd984d09-5a77-4a06-9553-e47a55f009b0",
@"prompt": @"Add a warmer guitar interlude",
@"extend_from_s": @8,
@"extend_s": @12,
@"version": @"lyria-3-pro",
},
@"out_task_id": @"flow_music_extend_123456"
};
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:payload
options:0
error:&error];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer <token>" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:jsonData];
NSURLSessionDataTask *task = [[NSURLSession sharedSession]
dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
return;
}
NSString *result = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
[[NSRunLoop mainRunLoop] run];
}
return 0;
}
(* Requires cohttp and yojson libraries *)
open Lwt
open Cohttp
open Cohttp_lwt_unix
let url = "https://aireiter.com/api/openapi/submit"
let payload = {|{
"model": "flow_music_extend",
"params": {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
"out_task_id": "flow_music_extend_123456"
}|}
let () =
let headers = Header.init ()
|> fun h -> Header.add h "Authorization" "Bearer <token>"
|> fun h -> Header.add h "Content-Type" "application/json"
in
let body = Cohttp_lwt.Body.of_string payload in
let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body_str ->
print_endline body_str
in
Lwt_main.run response
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
final url = Uri.parse('https://aireiter.com/api/openapi/submit');
final payload = {
model: "flow_music_extend",
params: {
clip_id: "cd984d09-5a77-4a06-9553-e47a55f009b0",
prompt: "Add a warmer guitar interlude",
extend_from_s: 8,
extend_s: 12,
version: "lyria-3-pro",
},
out_task_id: "flow_music_extend_123456"
};
final response = await http.post(
url,
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
body: jsonEncode(payload),
);
print(response.body);
}
library(httr)
library(jsonlite)
url <- "https://aireiter.com/api/openapi/submit"
payload <- list(
model = "flow_music_extend",
params = list(
clip_id = "cd984d09-5a77-4a06-9553-e47a55f009b0",
prompt = "Add a warmer guitar interlude",
extend_from_s = 8,
extend_s = 12,
version = "lyria-3-pro",
),
out_task_id = "flow_music_extend_123456"
)
response <- POST(
url,
add_headers(
Authorization = "Bearer <token>",
`Content-Type` = "application/json"
),
body = toJSON(payload, auto_unbox = TRUE),
encode = "raw"
)
cat(content(response, "text"))
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "flow_music_extend_123456",
"status": "pending",
"created_at": "2026-08-28T07:44:48.000Z"
}
}
{
"statusCode": 400,
"message": "Invalid request parameters",
"ok": false
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key"
}
}
{
"error": {
"code": 433,
"message": "Insufficient account balance, please recharge and try again"
}
}
{
"error": {
"code": 500,
"message": "Internal server error, please try again later"
}
}
Flow Music
Flow Music Continuation
- Continue a Flow Music track from a specified number of seconds
- Asynchronous processing mode, returns a task ID for later queries
- You must pass in the clip_id from the last successful result
- Returns a new clip_id on success
POST
/
api
/
openapi
/
submit
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flow_music_extend",
"params": {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
"out_task_id": "flow_music_extend_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "flow_music_extend",
"params": {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
"out_task_id": "flow_music_extend_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "flow_music_extend",
params: {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
out_task_id: "flow_music_extend_123456"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://aireiter.com/api/openapi/submit"
payload := map[string]interface{}{
"model": "flow_music_extend",
"params": map[string]interface{}{
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro",
},
"out_task_id": "flow_music_extend_123456",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://aireiter.com/api/openapi/submit";
String payload = """
{
"model": "flow_music_extend",
"params": {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
"out_task_id": "flow_music_extend_123456"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = [
"model" => "flow_music_extend",
"params" => [
"clip_id" => "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt" => "Add a warmer guitar interlude",
"extend_from_s" => 8,
"extend_s" => 12,
"version" => "lyria-3-pro",
],
"out_task_id" => "flow_music_extend_123456"
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://aireiter.com/api/openapi/submit")
payload = {
model: "flow_music_extend",
params: {
clip_id: "cd984d09-5a77-4a06-9553-e47a55f009b0",
prompt: "Add a warmer guitar interlude",
extend_from_s: 8,
extend_s: 12,
version: "lyria-3-pro",
},
out_task_id: "flow_music_extend_123456"
}
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://aireiter.com/api/openapi/submit")!
let payload: [String: Any] = [
"model": "flow_music_extend",
"params": [
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro",
],
"out_task_id": "flow_music_extend_123456"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://aireiter.com/api/openapi/submit";
var payload = @"
{
"model": "flow_music_extend",
"params": {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
"out_task_id": "flow_music_extend_123456"
}";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
#include <stdio.h>
#include <curl/curl.h>
int main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
const char *url = "https://aireiter.com/api/openapi/submit";
const char *payload = "{\"model\": \"flow_music_extend\", \"params\": {\"clip_id\": \"cd984d09-5a77-4a06-9553-e47a55f009b0\", \"prompt\": \"Add a warmer guitar interlude\", \"extend_from_s\": 8, \"extend_s\": 12, \"version\": \"lyria-3-pro\"}, \"out_task_id\": \"flow_music_extend_123456\"}";
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
}
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSURL *url = [NSURL URLWithString:@"https://aireiter.com/api/openapi/submit"];
NSDictionary *payload = @{
@"model": @"flow_music_extend",
@"params": @{
@"clip_id": @"cd984d09-5a77-4a06-9553-e47a55f009b0",
@"prompt": @"Add a warmer guitar interlude",
@"extend_from_s": @8,
@"extend_s": @12,
@"version": @"lyria-3-pro",
},
@"out_task_id": @"flow_music_extend_123456"
};
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:payload
options:0
error:&error];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer <token>" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:jsonData];
NSURLSessionDataTask *task = [[NSURLSession sharedSession]
dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
return;
}
NSString *result = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
[[NSRunLoop mainRunLoop] run];
}
return 0;
}
(* Requires cohttp and yojson libraries *)
open Lwt
open Cohttp
open Cohttp_lwt_unix
let url = "https://aireiter.com/api/openapi/submit"
let payload = {|{
"model": "flow_music_extend",
"params": {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
"out_task_id": "flow_music_extend_123456"
}|}
let () =
let headers = Header.init ()
|> fun h -> Header.add h "Authorization" "Bearer <token>"
|> fun h -> Header.add h "Content-Type" "application/json"
in
let body = Cohttp_lwt.Body.of_string payload in
let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body_str ->
print_endline body_str
in
Lwt_main.run response
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
final url = Uri.parse('https://aireiter.com/api/openapi/submit');
final payload = {
model: "flow_music_extend",
params: {
clip_id: "cd984d09-5a77-4a06-9553-e47a55f009b0",
prompt: "Add a warmer guitar interlude",
extend_from_s: 8,
extend_s: 12,
version: "lyria-3-pro",
},
out_task_id: "flow_music_extend_123456"
};
final response = await http.post(
url,
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
body: jsonEncode(payload),
);
print(response.body);
}
library(httr)
library(jsonlite)
url <- "https://aireiter.com/api/openapi/submit"
payload <- list(
model = "flow_music_extend",
params = list(
clip_id = "cd984d09-5a77-4a06-9553-e47a55f009b0",
prompt = "Add a warmer guitar interlude",
extend_from_s = 8,
extend_s = 12,
version = "lyria-3-pro",
),
out_task_id = "flow_music_extend_123456"
)
response <- POST(
url,
add_headers(
Authorization = "Bearer <token>",
`Content-Type` = "application/json"
),
body = toJSON(payload, auto_unbox = TRUE),
encode = "raw"
)
cat(content(response, "text"))
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "flow_music_extend_123456",
"status": "pending",
"created_at": "2026-08-28T07:44:48.000Z"
}
}
{
"statusCode": 400,
"message": "Invalid request parameters",
"ok": false
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key"
}
}
{
"error": {
"code": 433,
"message": "Insufficient account balance, please recharge and try again"
}
}
{
"error": {
"code": 500,
"message": "Internal server error, please try again later"
}
}
The model name of Flow Music Extend in AIReiter is
flow_music_extend. clip_id comes from output[].clip_id of a successful task.Authorizations
string
required
All endpoints require Bearer Token authentication.Get the API Key:Visit API Key management page to get your API Key.When using it, add the following to the request headers:
Authorization: Bearer YOUR_API_KEY
Body
string
required
Model name, fixed value:
flow_music_extend
object
required
Model parameter object.
Show params object properties
Show params object properties
string
required
The
clip_id from a successful task, from output[].clip_id.Returned after generate / extend / replace / cover / upload succeeds. stems / download / video reuse the same clip_id and do not generate a new one. If there is no clip_id and only an audio file, call flow_music_upload first.string
required
Extension prompt, describing how you want it to continue.
number
default:"0"
The second from which to continue in the original track. Range
0 to 240.number
default:"30"
Extension duration, in seconds. Range
1 to 240.string
default:"lyria-3-pro"
Lyria version, same price:
lyria-3-pro- Default valuelyria-3.5- Updated vocal model
string
required
Caller task ID.A user-defined task identifier, required. Only letters, numbers, underscores, and hyphens are supported, with a length of 1-64 characters. You can use this ID later to query the task status and results.
Response
string
Initiator task ID, which can be used to query the result.
string
Initial status, usually
"pending".string
Creation time, in ISO format.
Query Task
Flow Music Extend is an asynchronous music continuation model. After submitting a task, useout_task_id to query the task status. Once it is completed, output includes audio, url, title, and a new clip_id.
string
required
The originator task ID passed when submitting the task.
curl --request POST \
--url https://aireiter.com/api/openapi/query \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"out_task_id": "flow_music_extend_123456"
}'
output example:
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "flow_music_extend_123456",
"status": "completed",
"created_at": "2026-08-28T07:44:48.000Z",
"completed_at": "2026-08-28T07:45:40.000Z",
"output": [
{
"url": "https://static.aireiter.com/tmp/audio-generator/20260828/bJpYDfVF5hrEYnN_8BquC-item-0.jpg",
"audio": "https://static.aireiter.com/tmp/audio-generator/20260828/bJpYDfVF5hrEYnN_8BquC-audio-0.m4a",
"title": "Untitled (Extended)",
"clip_id": "03648285-af7c-4046-a771-3b1e80df3437"
}
]
}
}
Request Examples
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flow_music_extend",
"params": {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
"out_task_id": "flow_music_extend_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "flow_music_extend",
"params": {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
"out_task_id": "flow_music_extend_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "flow_music_extend",
params: {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
out_task_id: "flow_music_extend_123456"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://aireiter.com/api/openapi/submit"
payload := map[string]interface{}{
"model": "flow_music_extend",
"params": map[string]interface{}{
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro",
},
"out_task_id": "flow_music_extend_123456",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://aireiter.com/api/openapi/submit";
String payload = """
{
"model": "flow_music_extend",
"params": {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
"out_task_id": "flow_music_extend_123456"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = [
"model" => "flow_music_extend",
"params" => [
"clip_id" => "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt" => "Add a warmer guitar interlude",
"extend_from_s" => 8,
"extend_s" => 12,
"version" => "lyria-3-pro",
],
"out_task_id" => "flow_music_extend_123456"
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://aireiter.com/api/openapi/submit")
payload = {
model: "flow_music_extend",
params: {
clip_id: "cd984d09-5a77-4a06-9553-e47a55f009b0",
prompt: "Add a warmer guitar interlude",
extend_from_s: 8,
extend_s: 12,
version: "lyria-3-pro",
},
out_task_id: "flow_music_extend_123456"
}
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://aireiter.com/api/openapi/submit")!
let payload: [String: Any] = [
"model": "flow_music_extend",
"params": [
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro",
],
"out_task_id": "flow_music_extend_123456"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://aireiter.com/api/openapi/submit";
var payload = @"
{
"model": "flow_music_extend",
"params": {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
"out_task_id": "flow_music_extend_123456"
}";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
#include <stdio.h>
#include <curl/curl.h>
int main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
const char *url = "https://aireiter.com/api/openapi/submit";
const char *payload = "{\"model\": \"flow_music_extend\", \"params\": {\"clip_id\": \"cd984d09-5a77-4a06-9553-e47a55f009b0\", \"prompt\": \"Add a warmer guitar interlude\", \"extend_from_s\": 8, \"extend_s\": 12, \"version\": \"lyria-3-pro\"}, \"out_task_id\": \"flow_music_extend_123456\"}";
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
}
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSURL *url = [NSURL URLWithString:@"https://aireiter.com/api/openapi/submit"];
NSDictionary *payload = @{
@"model": @"flow_music_extend",
@"params": @{
@"clip_id": @"cd984d09-5a77-4a06-9553-e47a55f009b0",
@"prompt": @"Add a warmer guitar interlude",
@"extend_from_s": @8,
@"extend_s": @12,
@"version": @"lyria-3-pro",
},
@"out_task_id": @"flow_music_extend_123456"
};
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:payload
options:0
error:&error];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer <token>" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:jsonData];
NSURLSessionDataTask *task = [[NSURLSession sharedSession]
dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
return;
}
NSString *result = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
[[NSRunLoop mainRunLoop] run];
}
return 0;
}
(* Requires cohttp and yojson libraries *)
open Lwt
open Cohttp
open Cohttp_lwt_unix
let url = "https://aireiter.com/api/openapi/submit"
let payload = {|{
"model": "flow_music_extend",
"params": {
"clip_id": "cd984d09-5a77-4a06-9553-e47a55f009b0",
"prompt": "Add a warmer guitar interlude",
"extend_from_s": 8,
"extend_s": 12,
"version": "lyria-3-pro"
},
"out_task_id": "flow_music_extend_123456"
}|}
let () =
let headers = Header.init ()
|> fun h -> Header.add h "Authorization" "Bearer <token>"
|> fun h -> Header.add h "Content-Type" "application/json"
in
let body = Cohttp_lwt.Body.of_string payload in
let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body_str ->
print_endline body_str
in
Lwt_main.run response
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
final url = Uri.parse('https://aireiter.com/api/openapi/submit');
final payload = {
model: "flow_music_extend",
params: {
clip_id: "cd984d09-5a77-4a06-9553-e47a55f009b0",
prompt: "Add a warmer guitar interlude",
extend_from_s: 8,
extend_s: 12,
version: "lyria-3-pro",
},
out_task_id: "flow_music_extend_123456"
};
final response = await http.post(
url,
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
body: jsonEncode(payload),
);
print(response.body);
}
library(httr)
library(jsonlite)
url <- "https://aireiter.com/api/openapi/submit"
payload <- list(
model = "flow_music_extend",
params = list(
clip_id = "cd984d09-5a77-4a06-9553-e47a55f009b0",
prompt = "Add a warmer guitar interlude",
extend_from_s = 8,
extend_s = 12,
version = "lyria-3-pro",
),
out_task_id = "flow_music_extend_123456"
)
response <- POST(
url,
add_headers(
Authorization = "Bearer <token>",
`Content-Type` = "application/json"
),
body = toJSON(payload, auto_unbox = TRUE),
encode = "raw"
)
cat(content(response, "text"))
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "flow_music_extend_123456",
"status": "pending",
"created_at": "2026-08-28T07:44:48.000Z"
}
}
{
"statusCode": 400,
"message": "Invalid request parameters",
"ok": false
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key"
}
}
{
"error": {
"code": 433,
"message": "Insufficient account balance, please recharge and try again"
}
}
{
"error": {
"code": 500,
"message": "Internal server error, please try again later"
}
}
Mode Notes
Continuing will return a new
clip_id. For subsequent covers, replacements, and MV creation, please use the new ID.