Atelier201 websiteJoin the waitlist
Media, import and exportMake an image or video with AI
media

Make an image or video with AI

Paid in the workspace's credits at a fixed price per model. First call with estimate_only: true (free) for the exact price, then again with max_credits set to it. An image is usually done within wait_seconds; a video takes one to five minutes: GET the generation by its id. A failed generation gives its credits back.

POST/v1/sites/{site_id}/media/generations

Requires media:generate, a permission of its own: a credential that can edit sites cannot spend credits unless it was given this one too. Spends the workspace’s credits.

  1. Call it with estimate_only: true. It costs nothing and answers estimated_credits (the exact price) and balance.
  2. Call it again with max_credits set to that price. Without max_credits the call is refused. A price above it is refused with nothing charged: invalid_parameter on max_credits, with details.reason price_above_max_credits, details.estimated_credits and details.max_credits.

The credits are charged when the generation starts. If it fails, they are given back. An image is usually done within wait_seconds (50 by default) and comes back with status: succeeded and its media. A video takes one to five minutes: the answer is status: running with an id; get the generation until it finishes.

The file lands in the site’s media like an upload, with credit set to the model that made it. Never present a generated image as a photograph of the business, its products, its people or its premises.

At most 10 generations a minute per workspace (429 rate_limited above that, with details.retry_after_seconds). Not enough credits: 402 insufficient_credits with details.needed and details.balance. A model that is busy fails the generation with its credits given back: try again in a minute.

Authorizations

Authorizationbearerin headerrequired

Path parameters

site_idstringrequired

The site's id, or its slug (the address before .atelier201.page).

Body

application/jsonrequired
modelenum<string>requiredone of: gpt-image, nano-banana, flux, p-image, wan, minimax, seedance, p-video

GET /v1/media/models lists each model, what it is best at and its prices in credits.

promptstringrequiredlength: 1–4000 chars

What to show: subject, setting, light, framing, style.

aspect_ratioenum<string>one of: 16:9, 1:1, 9:16, 4:3, 3:4, 3:2, 2:3

Width to height. Each model accepts the ratios list_media_models gives; default its first (16:9 for most).

qualityenum<string>one of: draft, standard, high

Images: draft, standard (default) or high.

durationintegerrange: 1–10

Videos: seconds.

resolutionenum<string>one of: 480p, 720p, 768p, 1080p, 2k

Videos: default the model's (720p, or 768p for minimax and p-video).

audioboolean

Videos: with sound (seedance only).

filenamestringlength: 1–100 chars

A name without extension.

altstringlength: ≤ 300 chars
estimate_onlyboolean

true: the exact price in credits and the balance. Free, nothing runs.

max_creditsintegerrange: ≤ 9007199254740991

Required to run: the most you agree to spend. Refused, and nothing charged, when the price is higher. Take it from an estimate_only call.

wait_secondsintegerrange: 0–55

How long to wait for the result. Default 50 for an image, 0 for a video.

Response

application/json

Make an image or video with AI

dataRecord<string, object>required
request_idstringrequired

Use these docs with your AI tools

An AI agent can read this documentation directly. You do not need an account or an API key. Everything here is public and read-only.

Query these docs via MCP

Recommended

Add this server to Claude, Claude Code, Cursor, Mistral, or any tool that supports MCP. Your agent can then search Atelier201 Docs documentation and read it in full, instead of answering from memory.

https://atelier201.com/docs/mcp
  • searchFind the passages that answer a question.
  • fetchRead one page in full, as Markdown.
  • list_pagesSee every page in this documentation.

Query these docs over HTTP

The same tools also work as plain web requests. Use this for scripts, or for any tool that does not support MCP. There is one endpoint per tool. Arguments go in the query string, and the answer comes back as JSON.

https://atelier201.com/docs/api/docs/search?query=custom+domain

Read the OpenAPI description. It is built from the same definitions as the tools, so it always matches what the endpoints do.

Read these docs as Markdown

Add .md to any page URL to get its Markdown source. You can also send the headerAccept: text/markdown to the page URL itself.

To read the whole documentation in one file, open llms-full.txt. For a short index of every page, open llms.txt.