Documentation Index
Fetch the complete documentation index at: https://mayatech.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
V1 surface is being redesigned. Resource paths split into
/v1/images + /v1/videos. The legacy /v1/generations + /v1/video-generations paths still work via 308 redirects through 2026-08-04 (Aurous-Deprecated: route, Sunset header). Multi-LoRA stacking (loras: [{ lora, weight }]), opaque IDs, idempotency, signed webhooks, and a /v1/files upload endpoint are landing across the redesign — see the Changelog for each shipped change.1. Authenticate
Create a team in the dashboard and mint a key underSettings → API keys. The plaintext is shown once at creation — store it in a secret manager. Keys look like al_live_<64-hex> (older keys may begin with og_ — both work).
Send the key in the X-Api-Key header on every request. A 5-second proof-of-life:
401 invalid_api_key, double-check the header name (X-Api-Key, not Authorization) and the value.
2. Estimate cost without committing
POST /v1/images/estimate mirrors the body shape of POST /v1/images and returns the credit cost the real call would charge — no row inserted, no balance held. Use it to power “what will this cost?” UIs.
GET /v1/pricing — frozen per Aurous-Version, so price changes are never silently retroactive.
3. Generate an image
Pick a LoRA fromGET /v1/loras and pass its id (or slug) as lora_id. Or omit lora_id entirely and the platform’s dispatcher picks a style based on your prompt.
queued (or processing) state. The Idempotency-Key header is optional but recommended — see Idempotency for how safe retries work.
4. Poll for completion
GET /v1/images/{id} returns the live row. Loop until status is one of the terminal values: succeeded, failed, cancelled, expired, moderation_rejected.
429 — see Rate limits.
5. Read the output
output_urls[0] is a signed proxy URL on api.aurous-labs.com. Fetch it directly — no auth header needed, the signature is in the query string:
410 Gone after that). Save what you want to keep — long-term storage is intentionally not part of the platform.
Skip polling — use webhooks
Polling is fine for prototypes. For production, register a webhook endpoint and we’ll POST a signed payload the moment the generation reachessucceeded / failed / cancelled:
secret — store it. See Webhooks for the full signature-verification cookbook (Node + Python + curl).
Response headers worth knowing
Every response carries:Aurous-Request-Id: req_<26-char ULID>— quote this in any support ticket so we can find your request.Aurous-Version: YYYY-MM-DD— the API version applied to this response. Pin a specific version with theAurous-Versionrequest header to insulate yourself from future changes.X-RateLimit-Limit/X-RateLimit-Remaining/X-RateLimit-Reset— see Rate limits.
Where to next?
- Authentication — key formats, scopes, rotation, the 24h grace window.
- Errors — every type, every code, what to do.
- Idempotency — safe retries on
POST /v1/imagesand/v1/videos. - Rate limits — per-team buckets, headers, what
429means. - Webhooks — signed deliveries, retries, secret rotation.
- API reference — every endpoint, every parameter.