Mage API · Image model

Chroma API

Open-weights, built on Flux

Get an API keyTry Chroma in the playground
POST https://api.mage.space/v1/chroma/generate

At a glance

The Chroma API runs Chroma through Mage at POST https://api.mage.space/v1/chroma/generate. A request at the default settings costs 35 Gems (about $0.035), with no subscription. Chroma takes no @handle mentions.

Overview

What the Chroma API does

An open-weights general image model on the Flux architecture. Text-to-image, with steps and guidance in your hands.

An open-weights general-purpose image model on the Flux architecture.

It generates from the prompt alone.

Quick start

Call the Chroma API

Set MAGE_API_KEY, submit to /chroma/generate, and poll status_url until the request completes.

cURL
STATUS_URL=$(curl --request POST 'https://api.mage.space/v1/chroma/generate' \
  --header "Authorization: Bearer $MAGE_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "prompt": "Editorial portrait in soft daylight, 35mm film look",
  "aspect_ratio": "4:5",
  "model_id": "chroma-v1-hd"
}' | jq -r '.status_url')

# Repeat until status is "completed"; result.url is the file
curl "$STATUS_URL" --header "Authorization: Bearer $MAGE_API_KEY"
Python
import os, time, requests

headers = {"Authorization": f"Bearer {os.environ['MAGE_API_KEY']}"}
request = requests.post(
    "https://api.mage.space/v1/chroma/generate",
    headers=headers,
    json={
      "prompt": "Editorial portrait in soft daylight, 35mm film look",
      "aspect_ratio": "4:5",
      "model_id": "chroma-v1-hd"
    },
).json()

while request["status"] in ("queued", "in_progress"):
    time.sleep(3)
    request = requests.get(request["status_url"], headers=headers).json()

print(request["status"], request["result"] and request["result"]["url"])
JavaScript
const headers = {
  Authorization: `Bearer ${process.env.MAGE_API_KEY}`,
  'Content-Type': 'application/json',
};
let request = await fetch('https://api.mage.space/v1/chroma/generate', {
  method: 'POST',
  headers,
  body: JSON.stringify({
    "prompt": "Editorial portrait in soft daylight, 35mm film look",
    "aspect_ratio": "4:5",
    "model_id": "chroma-v1-hd"
  }),
}).then((response) => response.json());

while (['queued', 'in_progress'].includes(request.status)) {
  await new Promise((resolve) => setTimeout(resolve, 3000));
  request = await fetch(request.status_url, { headers }).then((r) => r.json());
}

console.log(request.status, request.result?.url);

Models

Chroma model_id values

Send model_id to pick a variant. A request without one runs the default.

model_idNameDefault
chroma-v1-hdChromaYes

Options

Chroma parameters

Allowed values across all variants; a variant may offer fewer. The docs list the options per variant.

FieldValues
aspect_ratio21:9, 16:9, 3:2, 5:4, 1:1, 4:5, 2:3, 9:16, 9:21

More image models

Other image generation APIs on Mage

Image · from 40 Gems

Flux 2 API

Long prompts and multi-reference edits

Image · from 9 Gems

GPT Image 2 API

Precise prompts and readable text

Image · from 75 Gems

Grok Image API

Grok Imagine, in three quality tiers

Image · from 37 Gems

Guava API

Photorealism that passes for a photograph

Image · from 20 Gems

HiDream API

Fast and versatile, with negative prompts

Image · from 20 Gems

Krea 2 API

Gorgeous aesthetics in seconds

FAQ

Frequently asked questions

How much does the Chroma API cost?

A Chroma request at the default settings (Chroma) costs 35 Gems, about $0.035. Other resolutions, durations, and variants change the price; the response reports the exact charge. A generation that fails is refunded; one Mage's content policy blocks is not.

What is the Chroma API endpoint?

POST https://api.mage.space/v1/chroma/generate with an Authorization: Bearer header carrying your Mage API key. The response includes a status_url to poll for the result.

Which Chroma models can I call?

chroma-v1-hd. The default is Chroma.

Does Chroma support reference images or characters?

Chroma takes no image, video, or audio inputs. Chroma takes no @handle mentions.

Can I use Chroma from Claude or ChatGPT?

Yes. Connect the Mage MCP server to Claude, ChatGPT, Claude Code, Grok, or Cursor and ask for Chroma by name. Your assistant reads its options with get_model and quotes the price before it generates.

How long are Chroma results kept?

Results and inputs are kept for 30 days. Download anything you want to keep to your own storage.

Start building with Mage

One account, one Gems balance, every model. Pay only for what you generate.

Get an API keyTry Chroma in the playground

Related