Colora API
The API is the app's own /v1 API opened to API keys: the same pages, characters, books, credits and limits. API keys come with the Creator and Pro plans. AI assistants should use the MCP connector instead.
- Base URL:
https://colora-api.norvane-studio.com - OpenAPI 3.1: /openapi.json
- MCP:
https://colora-api.norvane-studio.com/mcp(OAuth)
Authentication
Create a key in the app under Account → API keys and send it as a bearer token:
curl https://colora-api.norvane-studio.com/v1/me \
-H "Authorization: Bearer co_live_..."
Make a page
curl -X POST https://colora-api.norvane-studio.com/v1/pages \
-H "Authorization: Bearer co_live_..." -H "Content-Type: application/json" \
-d '{"subject": "a friendly dragon reading a book", "level": "kids", "aspect": "3:4"}'
The answer is 202 Accepted with the queued page and a Location header. Poll GET /v1/pages/{id} every 2 seconds until status is succeeded (then imageUrl is a 15-minute link to the PNG) or failed (the credit is refunded). A page takes about 5 seconds. The same request within 2 minutes returns the same page without charging again.
Endpoints
| Method and path | What it does | Cost |
|---|---|---|
POST /v1/pages | A page from a description (subject, level, aspect, frame, characterId, count 1–4) | 1 credit per page |
POST /v1/pages/photo | A page traced from a photo uploaded with /v1/files | 1 credit |
POST /v1/ideas | Page ideas for a theme | Free (daily allowance) |
POST /v1/pages/batch | One page per idea (Creator 10, Pro 50 per request) | 1 credit per page |
GET /v1/pages, GET /v1/pages/{id} | The library; one page | Free |
POST /v1/pages/{id}/edit, /again | A change in words; another version | 1 credit |
GET /v1/pages/{id}/download, /versions; DELETE /v1/pages/{id} | Download link; versions; delete | Free |
GET/POST /v1/characters | List; save a character from a page | Free |
GET /v1/books, GET /v1/books/{id} | Books and signed links to their pages | Free |
POST /v1/files/upload-url, /confirm | Upload a photo straight to storage | Free |
Levels: kids, medium, detailed. Shapes: 3:4 (Letter, A4), 4:5 (8×10), 2:3 (6×9), 1:1, 4:3. Put words in quotes in the subject to have them lettered on the page.
Limits and errors
1,200 requests an hour per key, polling included; every answer carries RateLimit-Policy and RateLimit headers, and a 429 has Retry-After. Errors are JSON: {"error": "no_credits", "message": "..."}. Common codes: no_credits (402), plan_required (403), content_refused (422), capacity (503).
PDF and SVG are made on the device in the app; through the API you get the PNG (about 1 megapixel).