Retrieve an ACE Music account

November 14, 2026

Table of contents

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

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/email

  • email is the email of a connected account, URL-encoded in the path.
Request Headers
Authorization: Bearer {API token}
Responses
  • 200 OK

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

    {
      "error": "Path parameter email (not-an-email) is not a valid email",
      "code": 400
    }
    
  • 401 Unauthorized

    Invalid API token.

    {
      "error": "useapi.net ⁝ Unauthorized",
      "code": 401
    }
    
  • 404 Not Found

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