Write a style

November 14, 2026

Table of contents

  1. Request Headers
  2. Request Body
  3. Responses
  4. Model
  5. Examples
  6. Try It

Turn a few words such as “indie folk” into a full style description, the genre, instruments, vocals, mix and how the song builds, or invent one when style is empty. Use the result as style in POST /music. With model acemusic-v1 and your lyrics, it writes a production brief for those lyrics. It answers in about 5 to 15 seconds, and nothing is kept.

ACE-Step v1.5 XL takes a style of up to 512 characters, so shorten a long one for that model.

https://api.useapi.net/v1/acemusic/music/style

Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
# Alternatively you can use multipart/form-data
# Content-Type: multipart/form-data
Request Body
{
  "style": "indie folk"
}
  • style is optional, the style to improve. Leave it out to have one invented.
    Maximum length: 1000 characters.
  • lyrics is optional, with model acemusic-v1 only: the lyrics the style is for.
    Maximum length: 5000 characters.
  • model is optional. acemusic-v1 uses lyrics. Other values change nothing.
    Supported values: acemusic-v1, acemusic-v1.1, ace-step-1.5-xl.
  • email is optional, the account to use. Default: any healthy account.
Responses
  • 200 OK

    {
      "email": "[email protected]",
      "style": "Contemporary indie folk with an intimate, pastoral atmosphere. The arrangement centers on delicate, intricate fingerpicked steel-string acoustic guitar and warm upright bass, supported by subtle brushed snare and soft foot-stomps. Melodic cello lines and distant lap steel swells add emotional depth behind a close-mic'd, breathy lead vocal with raw, vulnerable delivery. Warm tape saturation and room ambience preserve an organic live feel. The piece opens sparsely with solo guitar, gathers momentum as lush group harmonies and gentle piano join during the choruses, and resolves to a quiet, unresolved acoustic decay."
    }
    
  • 400 Bad Request

    {
      "error": "Parameter style length exceeds 1000 characters",
      "code": 400
    }
    
  • 401 Unauthorized

    Invalid API token.

    {
      "error": "useapi.net ⁝ Unauthorized",
      "code": 401
    }
    
  • 596 Account Error

    The account named by email is paused, or no account is healthy. Add it again with the current password.

    {
      "error": "No healthy ACE Music account configured. Check GET /accounts",
      "code": 596
    }
    
Model
{ // TypeScript, all fields are optional
  email: string                  // the account that wrote it
  style: string
}
Examples
  • curl -X POST "https://api.useapi.net/v1/acemusic/music/style" \
       -H "Content-Type: application/json" \
       -H "Authorization: Bearer …" \
       -d '{ "style": "dark techno" }'
    
  • const token = "API token";
    const response = await fetch("https://api.useapi.net/v1/acemusic/music/style", {
      method: "POST",
      headers: { "Content-Type": "application/json", "Authorization": `Bearer ${token}` },
      body: JSON.stringify({ style: "dark techno" })
    });
    console.log((await response.json()).style);
    
  • import requests
    
    token = "API token"
    response = requests.post(
        "https://api.useapi.net/v1/acemusic/music/style",
        headers={"Authorization": f"Bearer {token}"},
        json={"style": "dark techno"}
    )
    print(response.status_code, response.json())
    
Try It