What Is The Creative Engine
Lamina is a headless creative engine. Instead of calling models directly, you call apps — packaged multi-node workflows that may internally chain image generation, video generation, LLM reasoning, compositing, upscaling, and audio synthesis. Each app has a typed input schema. You send inputs, the engine handles orchestration, brand context injection, and output delivery. The parallel to headless CMS is direct. Sanity stores and delivers structured content through schemas, APIs, and delivery endpoints. Lamina creates and delivers structured creative assets through the same pattern — schema-first, API-first, channel-agnostic — applied to generative media instead of documents. The engine sits between your application and the models. Your code never needs to know which providers run behind an app, how nodes are wired, or where outputs are hosted. You work with five primitives, and the engine handles everything else.The Five Primitives
| Primitive | What It Is | CMS Analogy |
|---|---|---|
| App | A packaged workflow with a typed input schema | Content type / document schema |
| Execution | One async run of an app that produces outputs | Document creation / mutation |
| Intelligence | Brand context, predictions, recommendations | Editorial strategy / content rules |
| Template | Pre-configured starting point for a content type | Content template / blueprint |
| Channel | A connected publishing destination | Frontend / delivery endpoint |
Two Ways To Create
One call: let the engine decide
Step by step: you pick the app
The Execution Lifecycle
Every creation in Lamina — whether started viacontent/create or apps/{appId}/runs — follows the same lifecycle:
Running
The workflow nodes are executing. For multi-step apps, individual nodes complete in sequence or parallel.
| Method | When to use |
|---|---|
| Wait endpoint | Simplest. GET /v1/runs/{id}/wait blocks until done. Best for agents. |
| SSE stream | Real-time progress. GET /v1/runs/{id}/stream sends events as nodes complete. |
| Webhook | Production workloads. Pass ?webhook=<url> at execution time. Signed with ED25519. |
| Polling | Fallback. Poll GET /v1/runs/{id} every 3-5 seconds. |
Intelligence Layer
The intelligence endpoints are the editorial brain of the engine. They make creation smarter over time.| Endpoint | What it provides |
|---|---|
GET /v1/intelligence/brand-context | Brand DNA, visual guidelines, tone, creative constraints |
POST /v1/intelligence/predict | Performance prediction before you publish |
GET /v1/intelligence/recommendations | Actionable content suggestions based on brand and performance data |
GET /v1/intelligence/trends | Trend signals for your categories |
POST /v1/content/create, the engine queries brand context automatically and injects it into the execution. When you use the step-by-step path, you can fetch brand context yourself and use it to inform your input choices.
Intelligence is what separates a creative engine from a model proxy. The engine knows your brand, predicts what will perform, and recommends what to create next.
Distribution Layer
Channels are connected publishing destinations — social accounts, CDN endpoints, storage targets.| Endpoint | What it does |
|---|---|
GET /v1/publishing/channels | List connected social accounts and destinations |
POST /v1/publishing/publish | Publish content to one or more channels |
POST /v1/publishing/transfer-asset | Transfer assets to external CDN or storage |
GET /v1/publishing/history | View publish history and job status |
What This Means For Agents
The Creative Engine is designed for programmatic consumption. If you are building an agent — whether with Claude, GPT, LangChain, or your own orchestrator — the API gives you:- Schema-first discovery. Every app has a typed input contract you can inspect at runtime. No guessing.
- Async-native execution. Executions return immediately. Results arrive via webhook, SSE, wait endpoint, or polling.
- Intelligence grounding. Brand context and performance data are API-accessible. Your agent can make informed creative decisions, not blind ones.
- One-call creation.
POST /v1/content/creategoes from a text brief to a finished asset without manual app selection or input mapping. - Structured outputs. Every result is typed (
image,video,text) with a stable schema. Parse once, handle every app.