curl --request POST \
--url https://api.apimart.ai/v1/music/generations/uploadAudioFlowMusic \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flowmusic",
"audio_url": "https://example.com/audio.mp3"
}'
import requests
url = "https://api.apimart.ai/v1/music/generations/uploadAudioFlowMusic"
payload = {
"model": "flowmusic",
"audio_url": "https://example.com/audio.mp3"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/music/generations/uploadAudioFlowMusic";
const payload = {
model: "flowmusic",
audio_url: "https://example.com/audio.mp3"
};
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));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01KWXVD2FC61SYZ5103Z4XCCS5"
}
]
}
{
"error": {
"message": "audio_url is required",
"type": "invalid_request",
"param": "",
"code": "invalid_request"
}
}
{
"error": {
"message": "Solde insuffisant",
"type": "invalid_request",
"param": "",
"code": "quota_not_enough"
}
}
{
"error": {
"message": "La capacité du groupe actuel est saturée, veuillez réessayer plus tard",
"type": "rate_limit_error",
"param": "",
"code": "rate_limit_error"
}
}
Flow Music
Téléverser un audio
Importez un audio externe dans Flow Music pour obtenir un clip_id utilisable ensuite pour l’extension / le remplacement / le Cover / la séparation
POST
/
v1
/
music
/
generations
/
uploadAudioFlowMusic
curl --request POST \
--url https://api.apimart.ai/v1/music/generations/uploadAudioFlowMusic \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flowmusic",
"audio_url": "https://example.com/audio.mp3"
}'
import requests
url = "https://api.apimart.ai/v1/music/generations/uploadAudioFlowMusic"
payload = {
"model": "flowmusic",
"audio_url": "https://example.com/audio.mp3"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/music/generations/uploadAudioFlowMusic";
const payload = {
model: "flowmusic",
audio_url: "https://example.com/audio.mp3"
};
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));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01KWXVD2FC61SYZ5103Z4XCCS5"
}
]
}
{
"error": {
"message": "audio_url is required",
"type": "invalid_request",
"param": "",
"code": "invalid_request"
}
}
{
"error": {
"message": "Solde insuffisant",
"type": "invalid_request",
"param": "",
"code": "quota_not_enough"
}
}
{
"error": {
"message": "La capacité du groupe actuel est saturée, veuillez réessayer plus tard",
"type": "rate_limit_error",
"param": "",
"code": "rate_limit_error"
}
}
curl --request POST \
--url https://api.apimart.ai/v1/music/generations/uploadAudioFlowMusic \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "flowmusic",
"audio_url": "https://example.com/audio.mp3"
}'
import requests
url = "https://api.apimart.ai/v1/music/generations/uploadAudioFlowMusic"
payload = {
"model": "flowmusic",
"audio_url": "https://example.com/audio.mp3"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/music/generations/uploadAudioFlowMusic";
const payload = {
model: "flowmusic",
audio_url: "https://example.com/audio.mp3"
};
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));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01KWXVD2FC61SYZ5103Z4XCCS5"
}
]
}
{
"error": {
"message": "audio_url is required",
"type": "invalid_request",
"param": "",
"code": "invalid_request"
}
}
{
"error": {
"message": "Solde insuffisant",
"type": "invalid_request",
"param": "",
"code": "quota_not_enough"
}
}
{
"error": {
"message": "La capacité du groupe actuel est saturée, veuillez réessayer plus tard",
"type": "rate_limit_error",
"param": "",
"code": "rate_limit_error"
}
}
Authentification
string
requis
Toutes les API nécessitent une authentification par Bearer TokenObtenir une clé API :Rendez-vous sur la page de gestion des clés API pour obtenir votre clé APIAjoutez-la dans l’en-tête de la requête lors de l’utilisation :
Authorization: Bearer YOUR_API_KEY
Paramètres de requête
string
requis
Nom du modèle, toujours passer
"flowmusic" (insensible à la casse)string
requis
URL du fichier audio à téléverser, doit être accessible publiquement
Seules les extensions de fichiers audio courantes sont prises en charge (par ex.
.mp3 / .wav).Réponse
integer
Code de statut de la réponse, 200 en cas de succès
array
Cas d’usage
Scénario 1 : importer un audio externe pour obtenir un clip_id
{
"model": "flowmusic",
"audio_url": "https://example.com/audio.mp3"
}
result.music[0].clip_id ; il peut alors être utilisé pour l’extension / le remplacement / le Cover / la séparation.
Interroger le résultat de la tâcheLe téléversement d’audio est une tâche asynchrone ; après soumission, un
task_id est renvoyé. Utilisez l’API Obtenir le statut de la tâche pour interroger la progression et le résultat de la génération.Exemple de résultat de tâche terminée
Exemple de réponse de requête (GET /v1/music/tasks/{task_id}) :
{
"code": 200,
"data": {
"id": "task_01KWXVD2FC61SYZ5103Z4XCCS5",
"status": "completed",
"progress": 100,
"created": 1783413246,
"completed": 1783413282,
"actual_time": 36,
"cost": 0.008,
"credits_cost": 0.08,
"result": {
"music": [
{
"clip_id": "1db3a20f-4ddc-44e8-8c9c-6c9093c16ffe",
"audio_url": "https://cdn.apimart.ai/audio/flowmusic_1db3a20f_upload_audio.wav",
"url": "https://cdn.apimart.ai/audio/flowmusic_1db3a20f_upload_audio.wav"
}
]
}
}
}