Passer au contenu principal
POST
/
v1
/
music
/
generations
/
lyricsFlowMusic
curl --request POST \
  --url https://api.apimart.ai/v1/music/generations/lyricsFlowMusic \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "flowmusic",
    "prompt": "Une chanson rock sur la persévérance"
  }'
import requests

url = "https://api.apimart.ai/v1/music/generations/lyricsFlowMusic"

payload = {
    "model": "flowmusic",
    "prompt": "Une chanson rock sur la persévérance"
}

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/lyricsFlowMusic";

const payload = {
  model: "flowmusic",
  prompt: "Une chanson rock sur la persévérance"
};

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_01KWXVCX91HYHSTHZ0NC1SRFW1"
    }
  ]
}
{
  "error": {
    "message": "model is required",
    "type": "invalid_request",
    "param": "",
    "code": "model_required"
  }
}
{
  "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/lyricsFlowMusic \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "flowmusic",
    "prompt": "Une chanson rock sur la persévérance"
  }'
import requests

url = "https://api.apimart.ai/v1/music/generations/lyricsFlowMusic"

payload = {
    "model": "flowmusic",
    "prompt": "Une chanson rock sur la persévérance"
}

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/lyricsFlowMusic";

const payload = {
  model: "flowmusic",
  prompt: "Une chanson rock sur la persévérance"
};

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_01KWXVCX91HYHSTHZ0NC1SRFW1"
    }
  ]
}
{
  "error": {
    "message": "model is required",
    "type": "invalid_request",
    "param": "",
    "code": "model_required"
  }
}
{
  "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

Authorization
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

model
string
requis
Nom du modèle, toujours passer "flowmusic" (insensible à la casse)
prompt
string
requis
Prompt pour générer les paroles, ≤ 3000 caractèresIl est conseillé de décrire le thème, le style et l’ambiance de la chanson pour obtenir des paroles plus adaptéesExemple : "Une chanson rock sur la persévérance"

Réponse

code
integer
Code de statut de la réponse, 200 en cas de succès
data
array
Tableau de données renvoyées

Cas d’usage

Scénario 1 : générer des paroles à partir d’un thème

{
  "model": "flowmusic",
  "prompt": "Une chanson rock sur la persévérance"
}

Scénario 2 : réinjecter les paroles pour composer un morceau

Générez d’abord les paroles, puis récupérez le title et les lyrics de result.lyrics[0] et réinjectez-les dans l’API Générer de la musique :
{
  "model": "flowmusic",
  "title": "Persévérance",
  "lyrics": "[Verse 1]\nMême la nuit la plus longue finit par s'éclairer\n...",
  "sound_prompt": "energetic rock with electric guitar"
}
Interroger le résultat de la tâcheLa génération de paroles 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_01KWXVCX91HYHSTHZ0NC1SRFW1",
    "status": "completed",
    "progress": 100,
    "created": 1783413241,
    "completed": 1783413284,
    "actual_time": 43,
    "cost": 0.016,
    "credits_cost": 0.16,
    "result": {
      "lyrics": [
        {
          "title": "Bleached",
          "lyrics": "[Intro]\n(Check)\n(One two)\n\n[Verse 1]\nThe birds are..."
        }
      ]
    }
  }
}