Get API Key Get API
Docs

Generate Music

Flow Music text-to-music generation. Supports style prompts / lyrics / BPM / duration control, generating one track per request

Request example

curl --request POST \
  --url https://api.openveer.com/v1/music/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "flowmusic",
    "title": "My Song",
    "sound_prompt": "upbeat pop music with piano",
    "bpm": "120",
    "length": 60
  }'

Response example

{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01K8AYYM6R03TGZ3Q2P0TZVNPX"
    }
  ]
}

Authentication

Authorization string

All endpoints require Bearer Token authentication

Get your API Key:

Visit the API Key management page to get your API Key

Add it to the request header:

Authorization: Bearer YOUR_API_KEY

Request Parameters

model string

Model name, must be "flowmusic" (case-insensitive)

sound_prompt string

Music style or sound description prompt

Example: "upbeat pop music with piano"

Note



sound_prompt and lyrics cannot both be empty (at least one is required). Each request generates only one track.

lyrics string

Lyrics text; you can first obtain lyrics from the Generate Lyrics endpoint and fill them in here

Example: "[Verse 1]\nEven the longest night turns to dawn\n..."

title string

Title of the generated music

bpm string

BPM (beats per minute), must be ≥ 1

Example: "120"

length integer

Generation duration (seconds)

Supported range: 1 \~ 240 seconds

seed string

Random seed, used to reproduce results

Note



Passing the same seed value with the same request produces similar results, but exact reproducibility is not guaranteed.

Response

code integer

Response status code, 200 on success

data array
Array of returned data
status string

Task status, submitted upon initial submission

task_id string

Unique task identifier, used to query task status and results

Use Cases

Scenario 1: Generate from a style prompt only

{
  "model": "flowmusic",
  "title": "My Song",
  "sound_prompt": "upbeat pop music with piano",
  "bpm": "120",
  "length": 60
}

Scenario 2: Lyrics + style to a full song

{
  "model": "flowmusic",
  "title": "Perseverance",
  "lyrics": "[Verse 1]\nEven the longest night turns to dawn\n...",
  "sound_prompt": "energetic rock with electric guitar",
  "length": 120
}
Note

Query Task Results

Music generation is an asynchronous task; a task_id is returned after submission. Use the Get Task Status endpoint to query generation progress and results.

Completed Task Result Example

Query response example (GET /v1/music/tasks/{task_id}):

{
  "code": 200,
  "data": {
    "id": "task_01KWXVB61E28THHFBSYXWA4FAJ",
    "status": "completed",
    "progress": 100,
    "created": 1783413184,
    "completed": 1783413236,
    "actual_time": 52,
    "cost": 0.048,
    "credits_cost": 0.48,
    "result": {
      "music": [
        {
          "clip_id": "a41aade4-993e-4d28-b56f-d97e7ef7167c",
          "title": "Regression Song",
          "duration_seconds": "181.70666667",
          "create_time": "2026-07-07T08:33:32.854073Z",
          "lyrics": "[Verse 1]\nWaking up to the morning light,\n...",
          "lyrics_id": "c302d603-81b6-552f-8122-e512928d6aa1",
          "lyrics_timing_markers": [[10, 12], [212, 36]],
          "audio_url": "https://cdn.openveer.com/audio/flowmusic_a41aade4.m4a",
          "wav_url": "https://cdn.openveer.com/audio/flowmusic_a41aade4.wav",
          "image_url": "https://cdn.openveer.com/image/flowmusic_a41aade4_cover.jpg"
        }
      ]
    }
  }
}

This documentation is built and hosted on Mintlify, a developer documentation platform.