Configure an ACE Music account

November 14, 2026

Table of contents

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

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
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
}
  • email is required, the email the ACE Music account signs in with.
  • password is required to add or re-add an account, the account’s ACE Music password.
    Maximum length: 256 characters.
  • maxJobs is optional when adding, and required when password is left out. It is how many requests the account runs at the same time. Each request makes two songs or one stem split.
    Range: 1 to 4. 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
  • 200 OK

    The account is added or re-added. plan_name and credits come 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 maxJobs changed:

    {
      "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"
    }
    
  • 400 Bad Request

    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
    }
    
  • 401 Unauthorized

    Invalid API token.

    {
      "error": "useapi.net ⁝ Unauthorized",
      "code": 401
    }
    
  • 402 Payment Required

    Your useapi.net subscription has expired, or it does not cover another account. Each subscription covers 3 accounts per service.

  • 404 Not Found

    maxJobs only, for an email that is not connected.

    {
      "error": "Account [email protected] is not configured: add it with email and password",
      "code": 404
    }
    
  • 503 Service Unavailable

    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())
    
Try It