Skip to content

Reference

Credits & limits

What each model-backed action costs, what is always free, and the limits every request is checked against.

Credits pay for model work: the moments Claude draws, rebuilds, choreographs or edits something new. Prices are fixed per action, so you know the cost before you send the request. Moving, recolouring and exporting what you already have never costs anything. One credit is worth $0.01.

Prices per action#

ActionCreditsRetail valueEndpoint
New character from a prompt80$0.80POST /mascots { prompt }
New character, high detail250$2.50POST /mascots { prompt, detail: "high" }
Rebuild an upload as a rig120$1.20POST /mascots { upload_id | image_url }
Edit by instruction40$0.40POST /mascots/{id}/edit
Look variant60$0.60POST /mascots/{id}/variants
Custom motion (words or reference video), per prompt in a batch20$0.20POST /mascots/{id}/animations { prompt | reference_upload_id }
Illustrated scene50$0.50POST /mascots/{id}/scenes
Animation suggestions5$0.05POST /mascots/{id}/suggestions
Mascot concepts from a website5$0.05POST /analyze

GET /credits returns these same prices under prices, keyed by action name, so clients can show a cost before the user confirms.

Plans#

Each plan grants a monthly allowance. Here is what an allowance buys if you spend it all on one kind of action:

PlanPriceCredits / monthNew charactersRebuildsCustom motionsEditsAPI requests / minSeats
FreeFree20021105601
Maker$12/mo1,200151060301201
Studio$36/mo3,6004530180906003
  • Allowances reset monthly. At the start of each calendar month the balance is set back to the plan's allowance. Unused credits don't roll over.
  • Rate limits apply to API keys. Requests authenticated with a key (REST, MCP, CLI, SDK) count against a one-minute window per workspace. Over it, you get 429 rate_limited with a Retry-After header. The studio in your browser isn't limited.
  • Credits belong to the workspace. Everyone in a team workspace spends from one balance; seats cap how many people that is (pending invites count). See Workspaces, roles and seats.
  • Extra credit packs: coming soon. There is no way to buy credits on top of a plan yet.

Plan features beyond credits are on the pricing page.

Always free#

These never touch your balance, on any plan:

  • Presets: all fifteen, fitted to your rig (POST /mascots/{id}/animations { preset }).
  • Recolor by palette token.
  • Canvases: creating, editing and running state machines.
  • Exports in every format, at every size.
  • Previews: rendered stills from GET /mascots/{id}/preview.
  • Embeds: bundles for <lumorig-player>, however many views they get.

Also free: uploads, importing a spec you wrote, restoring versions, share links, and reading anything.

Holds, refunds and ceilings#

  1. Hold. When a model-backed job starts, its full price is taken from the balance. Without enough credits the request fails with 402 insufficient_credits and nothing is created. A batch of motions checks the total for every prompt before starting any of them.
  2. Refund. If the job fails or is canceled, the credits are returned automatically. A succeeded job keeps the charge.
  3. Ceiling. Every job has a hard cost ceiling on its model spend: price × $0.01 × 0.7. A job that passes it is stopped (and refunded). Suggestions and website analysis make a single short model call, so their spend is recorded when it returns rather than checked mid-call. Pass max_cost_usd to set a lower ceiling for one job; a higher value is ignored.
ActionDefault ceiling
New character from a prompt$0.56
New character, high detail$1.75
Rebuild an upload as a rig$0.84
Edit by instruction$0.28
Look variant$0.42
Custom motion (words or reference video), per prompt in a batch$0.14
Illustrated scene$0.35
Animation suggestions$0.03
Mascot concepts from a website$0.03
POST /api/v1/mascots
{ "prompt": "a cheerful lighthouse keeper", "max_cost_usd": 0.4 }

Every job also reports what it actually spent in cost_usd, and GET /usage totals model spend by job type.

Checking your balance#

curl
curl https://lumorig.com/api/v1/credits \
  -H "Authorization: Bearer $LUMORIG_API_KEY"
200 OK
{
  "object": "credits",
  "billing": true,
  "plan": { "id": "free", "label": "Free", "price_usd": 0, "monthly_credits": 200 },
  "balance": 120,
  "prices": {"generate":80,"generate_detailed":250,"reconstruct":120,"edit":40,"variant":60,"animate":20,"scene":50,"suggest":5,"analyze":5},
  "credit_usd": 0.01,
  "free": ["presets", "recolor", "canvases", "exports", "previews", "embeds"]
}

Limits#

Requests outside these bounds fail with 400 invalid_request.

WhatLimit
Upload size15 MB (PNG, JPG, WebP, GIF, SVG; MP4, MOV or WebM for reference videos)
Mascot prompt3–2,000 characters (style ≤ 400, notes ≤ 1,000, name ≤ 80)
Motion prompt3–1,000 characters
Animation duration0.3–20 s (reference-video motions: 0.3–12 s)
Preset intensity0.25–2
Batch of motions1–8 prompts
Edit or variant instruction2–2,000 characters (variant name ≤ 60)
Scene prompt3–1,000 characters
Export size · fps64–2,048 px · 6–60 fps
Long-pollGET /jobs/{id}?wait= up to 120 s
Share link lifetimeDefault 1 hour, maximum 30 days
GET /mascotsThe 200 most recent mascots