Retrieve a Muse account
October 12, 2026
Table of contents
Get one added account with a live read from Muse: its plan and how much of the weekly allowance it has used. The read uses the stored session, as a job does, and every call goes to Muse. The result is also saved, so GET /accounts and the choice of account for new jobs use it.
Muse meters each account weekly. GET /accounts/email returns the plan and usage in quota: tier, percentUsed, resetsAt and quotaStatus.
| Plan | Price | Weekly allowance |
|---|---|---|
| Free | $0 | not published |
| Power | $20/month | 500 million Muse tokens |
| Maximum | $100/month | 3 billion Muse tokens |
Source: Meta, About Muse subscriptions, October 2026. Availability can differ by region.
- On the free plan, a video used 2 to 3 percent of the weekly allowance in our tests and an image 0 to 1 percent. Meta does not publish per-job token costs.
- The allowance resets at
resetsAt. Once it is used up, new jobs go to your other accounts, and a job pinned to the account answers412.
If Muse no longer accepts the session, the API signs the account in again once, the same as on any other request, and then reads it. A paused account (one whose health is not OK) is returned as stored, without a call to Muse.
https://api.useapi.net/v1/muse/accounts/
emailis the email of an added 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]", "maxJobs": 3, "added": "2026-10-12T00:34:19.139Z", "updated": "2026-10-12T01:29:14.234Z", "sessionExpiresAt": "2026-11-11T00:34:18.820Z", "quota": { "tier": "HATCH_FREE", "percentUsed": 3, "resetsAt": "2026-10-19T01:13:18.000Z", "quotaStatus": "SUFFICIENT", "topupBalance": 0, "readAt": "2026-10-12T01:29:14.794Z" }, "health": "OK", "session": "signed-in" }sessionissigned-inafter a live read. It ischeckpointwhen Meta asks for a security check on the account (the account is paused from then on andhealthsays what to do), andunknownwhen Muse did not answer the read:quotaErrorthen says why andquotais the last saved one.- A paused account is returned as stored, without
session.
-
400 Bad Request — the
emailin the path is not a valid email.{ "error": "Path parameter email (not-an-email) not a valid email", "code": 400 } -
Invalid API token.
{ "error": "useapi.net ⁝ Unauthorized", "code": 401 } -
404 Not Found — no account is added for this
email.{ "error": "Account [email protected] not found", "code": 404 } -
503 Service Unavailable — Muse did not accept the session and signing in again could not finish right now. Retry in a few minutes.
{ "error": "Muse refused account [email protected]'s new session, please retry in a few minutes", "code": 503 } -
596 Account Error
The account needs your attention, and it is paused until you add it again. You receive an email when this happens. There are two causes.
Meta asks for a security check on the account. Sign in once at muse.ai in a browser, complete the check, then add the account again with POST /accounts using the same email and password. The API keeps using its session, so no new sign-in is needed.
{ "error": "Account [email protected]: Meta asks for a security check on account [email protected] (\"This account must complete a security checkpoint on the web\"). Sign in once at https://muse.ai in a browser, complete the check, then add the account again with POST /accounts", "code": 596 }Or Muse refused to sign the account in again when its session needed renewing, most often because the password was changed. Add the account again with the current password.
{ "error": "Account [email protected]: Muse refused to sign in account [email protected] (…). Update its password with POST /accounts, or sign in at https://muse.ai to clear the block, then re-add it", "code": 596 }
Model
{ // TypeScript, all fields are optional
email: string
maxJobs: number // jobs this account may run at the same time
added: string // ISO 8601, when the account was first added
updated?: string // ISO 8601, the last re-add or maxJobs change
sessionExpiresAt: string // ISO 8601, when the Muse session expires (30 days, renewed by the API)
quota?: { // the account's Muse plan and weekly usage, as last read
tier: string | null // Muse plan, e.g. HATCH_FREE
percentUsed: number | null // share of the weekly allowance used, in whole percent
resetsAt: string | null // ISO 8601, when the weekly allowance resets
quotaStatus: string | null // SUFFICIENT while jobs may run
topupBalance: number | null
readAt: string // ISO 8601, when this was read from Muse
}
health: string // 'OK', or why the account needs attention (596)
session?: 'signed-in' | 'checkpoint' | 'unknown'
quotaError?: string // session 'unknown': why Muse did not answer the read
error?: string // errors only
code?: number // errors only
}
Examples
-
curl "https://api.useapi.net/v1/muse/accounts/example%40gmail.com" \ -H "Authorization: Bearer …" -
const token = "API token"; const email = "Previously added account email"; const apiUrl = `https://api.useapi.net/v1/muse/accounts/${encodeURIComponent(email)}`; const response = await fetch(apiUrl, { headers: { "Authorization": `Bearer ${token}`, }, }); const result = await response.json(); console.log("response", {response, result}); -
import requests from urllib.parse import quote token = "API token" email = "Previously added account email" apiUrl = f"https://api.useapi.net/v1/muse/accounts/{quote(email, safe='')}" headers = { "Authorization" : f"Bearer {token}" } response = requests.get(apiUrl, headers=headers) print(response, response.json())