Skip to main content

Suno Task Query

Query Single Task

GET /suno/fetch/{id}

Request Examples

curl https://crazyrouter.com/suno/fetch/suno_task_abc123 \
  -H "Authorization: Bearer YOUR_API_KEY"

Response Example (Processing)

{
  "code": 1,
  "data": {
    "task_id": "suno_task_abc123",
    "status": "processing",
    "data": []
  }
}

Response Example (Completed)

{
  "code": 1,
  "data": {
    "task_id": "suno_task_abc123",
    "status": "complete",
    "data": [
      {
        "id": "clip_001",
        "title": "Summer Beach",
        "audio_url": "https://cdn.suno.ai/audio/clip_001.mp3",
        "image_url": "https://cdn.suno.ai/image/clip_001.png",
        "duration": 120.5,
        "tags": "pop, english, upbeat",
        "prompt": "[Verse]\nSunshine on the ocean waves...",
        "status": "complete"
      },
      {
        "id": "clip_002",
        "title": "Summer Beach",
        "audio_url": "https://cdn.suno.ai/audio/clip_002.mp3",
        "image_url": "https://cdn.suno.ai/image/clip_002.png",
        "duration": 118.3,
        "tags": "pop, english, upbeat",
        "prompt": "[Verse]\nSunshine on the ocean waves...",
        "status": "complete"
      }
    ]
  }
}

Batch Query

POST /suno/fetch
Query multiple tasks at once.

Request Parameters

ParameterTypeRequiredDescription
idsarrayYesList of task IDs

Request Example

cURL
curl -X POST https://crazyrouter.com/suno/fetch \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "ids": ["suno_task_abc123", "suno_task_def456"]
  }'

Get WAV Format

Some completed tasks provide lossless WAV format audio. Replace the file extension in the audio_url:
https://cdn.suno.ai/audio/clip_001.wav

Task Status

StatusDescription
submittedSubmitted
processingGenerating
completeCompleted
errorFailed

Complete Workflow Example

Python
import requests
import time

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://crazyrouter.com"
headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {API_KEY}"
}

# 1. Submit song generation task
resp = requests.post(f"{BASE_URL}/suno/submit/music", headers=headers, json={
    "gpt_description_prompt": "An upbeat summer pop song in English",
    "mv": "chirp-v4"
})
task_id = resp.json()["result"]
print(f"Task created: {task_id}")

# 2. Poll for results
while True:
    resp = requests.get(f"{BASE_URL}/suno/fetch/{task_id}", headers=headers)
    result = resp.json()["data"]

    if result["status"] == "complete":
        for clip in result["data"]:
            print(f"Song: {clip['title']}")
            print(f"Audio: {clip['audio_url']}")
            print(f"Duration: {clip['duration']}s")
            print("---")
        break
    elif result["status"] == "error":
        print("Generation failed")
        break

    time.sleep(10)
Each song generation task typically returns 2 variants. Song generation usually takes 1-3 minutes. A polling interval of 10 seconds is recommended.