Docs

Documentation

Build with every generator

Every generator is an HTTP address — reachable from your code or from a desktop on the same account and the same credits.

addresses
401
namespaces
16
languages to read an example in
11
A neon-lit alley at night in the rain
Krea 2 Turbo
Harbor Crane Operator Portrait
Qwen-Image-2.0
MiniMax H3
Tidal Turbine Editorial Illustration
Z-Image-Turbo
An editorial portrait in hard sunlight
Krea 2 Turbo
Subsea Cable Engineer Editorial Portrait
FLUX.1.1 [pro]
A turquoise coastline from above
Krea 2 Turbo
Rare Book Conservator Press Portrait
Wan2.7 Image Pro
MiniMax H3
Rooftop Beekeeping Suit Try-On
FLUX.1 Kontext [max]
A concept car in a white studio
Krea 2 Turbo
Converted Bowling Alley Office Interior
FLUX.1.1 [pro] Ultra
A bowl of ramen from above
Krea 2 Turbo
Coastal Radar Station Rental Interior
FLUX.1 [dev]

Start here

Pick a path

One request, 11 languages

Your first render, in your language

The same call in cURL, both SDKs, an MCP tool call and 7 more languages. Pick one and every example in these docs follows it.

curl -X POST https://queue.auray.run/auray-ai/krea-2-turbo/text-to-image \
  -H "Authorization: Bearer $AURAY_API_KEY" \
  -H "content-type: application/json" \
  -d '{
  "prompt": "a brass orrery on a walnut desk, morning light",
  "aspect_ratio": "16:9",
  "resolution": 1024
}'

Model catalogue

Every model is an address

Each has its own page: what it takes, its rules, and the example in every language.

Browse by task

For agents

16 tools, one URL

Point Claude, Cursor or any MCP client at the server and the catalogue is theirs to search, price and run.

https://mcp.auray.ai/mcp
search_modelsget_pricingrun_modelcheck_jobcancel_jobrecommend_modelread_chatget_account
get_model_schemasearch_docssubmit_jobget_job_resultupload_filechatembedsearch_community
Connect an agent

Introduction

Every generator here is an address you can POST to, and there are two ways to reach them.

The API is the one the rest of this documentation is about. Photos, music, video, 3D models, chat and code, each at its own URL, charged to one balance of credits. There is no private path: the desktop submits through the same route your code does.

The app runs in a browser, on a computer or a phone, over those same generators. Nothing to install, and nothing it can make that your code cannot.

TL;DR

Open the desktop at app.auray.ai, mint a key in Account → API Keys, and POST your first job to queue.auray.run/<address>. Quickstart takes you from there to a finished render, with every response shown as it really comes back.

#The four terms

Four words carry the whole product.

TermWhat it is
CreditThe unit of spend. One balance per account, shared by the desktop and the API.
AddressA model's name is its URL. auray-ai/krea-2-turbo/text-to-image is both.
JobOne generation. You submit it, it runs, you poll it or get a webhook.
KeyWhat authenticates a request, with its own scopes and its own monthly spend ceiling.

#What you get

One balance, not one per product. Credits spend on whatever you make — an image, a song, a video, a mesh — from the desktop or from your own code. Nothing is charged per user, per project or per seat.

One URL scheme for every model. 401 addresses across 16 namespaces, all reached the same way: POST queue.auray.run/<address>. No API version in the path, no model field in the body, no per-model client — and where a maker versions a model, each version is an address of its own.

Every address describes itself. GET api.auray.ai/v1/models/<address>/openapi.json is that model's contract, and /llms.txt beside it is the same thing written for an agent. Neither needs a key.

Jobs that survive you. Submit and disconnect. A job keeps running, and you collect it later by polling or by webhook — signed, so you can verify it really came from us.

A key you can constrain. Scope a key to one product, cap what it may spend, and revoke it without touching the others.

#Where to go next

Start typing to search every page of the documentation.

Up arrow Down arrow to moveEnter to openEscape to close