---
title: "Create a music track from text prompt"
method: POST
path: "/v1/music"
tags: ["Music Studio"]
---

# Create a music track from text prompt

`POST /v1/music`

## Request

- Base URL: `https://api.sprixen.com`
- URL: `https://api.sprixen.com/v1/music`
- Auth: `bearer` (a scheme the document does not define)

Dispatches async job to ACE-Step GPU server. Cost: 3 credits. Optionally accepts a reference audio file for style/timbre guidance. Poll GET /music/:id for status. When status=completed, audioUrl holds the audio URL.

## Request body

- CreateMusicDto
  - `prompt` string, required: Text prompt describing the desired music
  - `lyrics` string: Lyrics for vocal generation. Use [Verse], [Chorus], [Bridge], [Instrumental Break] tags. Leave empty for instrumental.
  - `vocalLanguage` string: Vocal language ISO code (e.g. "en", "ja", "ko", "zh"). Only used when lyrics are provided.
  - `presetSlug` string: Preset slug (epic_orchestral, chiptune_adventure, etc.)
  - `name` string: Human-readable name for the track
  - `genre` string: Desired genre tag
  - `bpm` number: Beats per minute (60-200)
  - `key` string: Musical key (e.g. "C minor", "F major")
  - `duration` number: Desired duration in seconds (15-300)
  - `quality` string: Generation quality mode. Both run XL turbo (4B): "fast" = 8 steps (3 credits), "quality" = 16 steps (5 credits)

## Response `201`

Music job created (pending)

## Other responses

- `400`: Invalid input or rate limit exceeded
- `402`: Insufficient credits

---

[API](https://skmtc.dev/sprixen/apis/sprixen-api.md) · [All operations](https://skmtc.dev/sprixen/apis/sprixen-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sprixen/apis/sprixen-api/revisions/6c0c57f6da58?raw)
