Retrieve an ACE Music account
November 14, 2026
Table of contents
Read one connected account together with what ACE Music reports for it right now: the plan, the billing cycle, the credits left, what each request costs in credits, and the models the account can use with their text limits. Use it to check the balance before a run on ACE Music v1 or v1.1, which cost 4 credits a request.
A paused account (its stored password was refused) answers with the stored fields and its error, without asking ACE Music. When only ACE Music’s live part fails for a moment, the stored fields come back with liveError.
https://api.useapi.net/v1/acemusic/accounts/
emailis the email of a connected account, URL-encoded in the path.
Request Headers
Authorization: Bearer {API token}
API tokenis required, see Setup useapi.net for details.
Responses
-
{ "email": "[email protected]", "user_id": "1216554433", "plan": "free", "maxJobs": 4, "added": "2026-11-14T19:17:18.288Z", "health": "OK", "plan_name": "Free", "cycle": "monthly", "credits": 16, "costs": { "song": 4, "stems": { "0": 5, "2": 60 }, "video_minute": 1 }, "models": [ { "id": "acemusic-v1", "name": "ACE Music v1", "free": false, "limits": { "prompt": 2000, "style": 1000, "lyrics": 5000 } }, { "id": "acemusic-v1.1", "name": "ACE Music v1.1 Preview", "free": false, "limits": { "prompt": 2000, "style": 1000, "lyrics": 5000 } }, { "id": "ace-step-1.5-xl", "name": "ACE-Step v1.5 XL", "free": true, "limits": { "prompt": 2000, "style": 512, "lyrics": 2000 } } ], "online": true } -
{ "error": "Path parameter email (not-an-email) is not a valid email", "code": 400 } -
Invalid API token.
{ "error": "useapi.net ⁝ Unauthorized", "code": 401 } -
{ "error": "Account [email protected] is not configured", "code": 404 }
Model
{ // TypeScript, all fields are optional
email: string
user_id: string // ACE Music's own id of the account
plan: string | null // free | creator | artist, live
maxJobs: number
added: string // ISO 8601
updated?: string // ISO 8601
error?: string // paused: ACE Music refused the stored password, add the account again
health: 'OK' | 'error'
plan_name: string | null // Free | Creator | Artist
cycle: string | null // monthly or yearly billing
credits: number | null // credits left. Free plans get 20 a day, Creator 1,000 and Artist 2,500 a month
costs: {
song: number // credits a request (two songs) costs on acemusic-v1 and acemusic-v1.1, 4
stems: Record<string, number> // a stem split: "0" vocal + instrumental (mode vocals) 5, "2" every stem (mode all) 60
video_minute: number // ACE Music's price for video in a prompt, not used by this API
} | null
models: {
id: string // the value for `model`
name: string
free: boolean // true: 0 credits
limits: { prompt: number, style: number, lyrics: number } // maximum characters
}[]
online: boolean // false when ACE Music reports itself offline
offlineReason?: string
liveError?: string // the live part failed for a moment: only the stored fields are current
}
Examples
-
curl "https://api.useapi.net/v1/acemusic/accounts/example%40example.com" \ -H "Authorization: Bearer …" -
const token = "API token"; const email = "[email protected]"; const response = await fetch(`https://api.useapi.net/v1/acemusic/accounts/${encodeURIComponent(email)}`, { headers: { "Authorization": `Bearer ${token}` } }); console.log(response.status, await response.json()); -
import requests from urllib.parse import quote token = "API token" email = "[email protected]" response = requests.get(f"https://api.useapi.net/v1/acemusic/accounts/{quote(email, safe='')}", headers={"Authorization": f"Bearer {token}"}) print(response.status_code, response.json())