Media generation
Generate images synchronously and video, music, code builds, and research as jobs.
Images (sync)
Image generation is synchronous: the response carries the finished image. Pick an engine or let auto route by prompt:
promptrequiredstringengineauto | theo-creative | theo-imagine | theo-photo | theo-rapid | theo-design | theo-studio | theo-type | theo-ultraaspectRatio1:1 | 16:9 | 9:16 | 4:3 | 3:4stylestringreferenceImageUrlsarray<uri> (max 5)includeBase64booleancurl https://www.opencharts.com/api/v1/images \
-H "Authorization: Bearer $OPENCHARTS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "prompt": "Isometric pixel-art data center, neon accents", "aspectRatio": "16:9" }'Videos
Video renders return a 202 job envelope immediately:
promptrequiredstringaspectRatio16:9 | 9:16modelTierfast | maxreferenceImageUrluriSongs
stylerequiredstringtitlestringlyricsstringautoLyricsbooleaninstrumentalbooleantierauto | premium | fastCompleted jobs return two versions, each with audio, cover art, and a Theo-branded engine label.
Code builds
Build a full Code Canvas project (site or app) from a prompt; the finished project opens in the OpenCharts editor:
promptrequiredstringnamestringframeworkhtml | react | autoplanFirstbooleanDeep research
Multi-step web research with citations, returned as a markdown report plus sources:
/researchStart a deep-research job (returns a res_-prefixed job id).GET/research/{jobId}Legacy poll alias (accepts raw or res_-prefixed ids).Poll research like every other job at GET /jobs/{id} using the returned res_… id. The legacy GET /research/{jobId} path stays for older integrations: it accepts both id forms and returns its original (pre-jobs) response shape.
curl https://www.opencharts.com/api/v1/research \
-H "Authorization: Bearer $OPENCHARTS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "query": "State of AI-native documentation tooling in 2026" }'Idempotent retries
Every generation POST accepts Idempotency-Key
Retries with the same key replay the original response: the async job creators return the same job (billed once), and the synchronous /images + /extract-flowchart replay the original finished result. Pair with webhooks for a fully event-driven pipeline. See Idempotency.