Configure an ACE Music account
November 14, 2026
Table of contents
Add an ACE Music account with the email and password you sign in with at acemusic.ai. See Setup ACE Music for how to make one, and how to set a password on an account made with Google or a phone number.
The API signs in to ACE Music and reads the account before anything is saved, so a wrong email or password answers 400 and stores nothing. The password is stored to sign in again whenever ACE Music ends the session, and it is never returned. Posting an account that is already connected re-adds it: the new password replaces the stored one, and an account paused with an error is resumed.
This endpoint does two things. To add or re-add an account, post its email and password. To change only maxJobs on an account that is already connected, post email and maxJobs and leave password out: nothing is sent to ACE Music then.
Each useapi.net subscription lets you connect 3 ACE Music accounts, up to 100 in total.
https://api.useapi.net/v1/acemusic/accounts
Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
# Alternatively you can use multipart/form-data
# Content-Type: multipart/form-data
API tokenis required, see Setup useapi.net for details.
Request Body
Add or re-add an account:
{
"email": "[email protected]",
"password": "your-acemusic-password",
"maxJobs": 4
}
Change maxJobs only:
{
"email": "[email protected]",
"maxJobs": 2
}
emailis required, the email the ACE Music account signs in with.passwordis required to add or re-add an account, the account’s ACE Music password.
Maximum length:256characters.maxJobsis optional when adding, and required whenpasswordis left out. It is how many requests the account runs at the same time. Each request makes two songs or one stem split.
Range:1to4. Default:4, ACE Music’s own limit (it refuses a fifth request running at once). A re-added account keeps its value unless you send a new one.
Responses
-
The account is added or re-added.
plan_nameandcreditscome from the sign-in.{ "email": "[email protected]", "user_id": "1216554433", "plan": "creator", "maxJobs": 4, "added": "2026-11-14T19:17:18.288Z", "health": "OK", "plan_name": "Creator", "credits": 996 }Only
maxJobschanged:{ "email": "[email protected]", "user_id": "1216554433", "plan": "creator", "maxJobs": 2, "added": "2026-11-14T19:17:18.288Z", "updated": "2026-11-14T19:45:14.605Z", "health": "OK" } -
ACE Music refused the email or password, or a parameter is invalid. ACE Music’s own reason is in parentheses.
{ "error": "ACE Music refused the email or password (Wrong email or password.). Accounts made with Google or a phone number need a password set on acemusic.ai first", "code": 400 }{ "error": "Send password to add or re-add the account, or maxJobs to change its concurrency", "code": 400 }{ "error": "Parameter maxJobs (5) is more than 4", "code": 400 } -
Invalid API token.
{ "error": "useapi.net ⁝ Unauthorized", "code": 401 } -
Your useapi.net subscription has expired, or it does not cover another account. Each subscription covers 3 accounts per service.
-
maxJobsonly, for an email that is not connected.{ "error": "Account [email protected] is not configured: add it with email and password", "code": 404 } -
ACE Music could not be reached or answered with a server error. Nothing was saved: retry in a few seconds.
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
maxJobs: number // 1 to 4
added: string // ISO 8601, when the account was first added
updated?: string // ISO 8601, the last re-add or maxJobs change
health: 'OK' | 'error'
error?: string // present when ACE Music refused the stored password, see GET /accounts
plan_name?: string | null // add or re-add: the plan's name, e.g. Creator
credits?: number | null // add or re-add: the credits left
}
Examples
-
curl -X POST "https://api.useapi.net/v1/acemusic/accounts" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer …" \ -d '{ "email": "[email protected]", "password": "your-acemusic-password" }' -
const token = "API token"; const response = await fetch("https://api.useapi.net/v1/acemusic/accounts", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `Bearer ${token}` }, body: JSON.stringify({ email: "[email protected]", password: "your-acemusic-password" }) }); console.log(response.status, await response.json()); -
import requests token = "API token" response = requests.post( "https://api.useapi.net/v1/acemusic/accounts", headers={"Authorization": f"Bearer {token}"}, json={"email": "[email protected]", "password": "your-acemusic-password"} ) print(response.status_code, response.json())