Current Executable API Surface
These are the real public endpoints available today:GET /v1/appsGET /v1/apps/{appId}GET /v1/apps/{appId}/workflowPOST /v1/apps/{appId}/executionsGET /v1/executions/{executionId}GET /v1/webhooks/signing-key
Core Contract
| Capability need | Current executable Lamina endpoint |
|---|---|
| Start image, catalog, try-on, or video work | POST /v1/apps/{appId}/executions |
| Check job status | GET /v1/executions/{executionId} |
| Discover which app to call | GET /v1/apps |
| Verify the exact input schema | GET /v1/apps/{appId} |
Authentication
Rate Limits
All/v1/* endpoints are currently limited to 100 requests per minute per IP.
On 429 Too Many Requests, read these headers before retrying:
RateLimit-LimitRateLimit-RemainingRateLimit-ResetRetry-After
Common Status Codes
| Status | Meaning |
|---|---|
200 | Successful read |
202 | Execution accepted and queued |
400 | Invalid request body, webhook URL, or inputs |
401 | Missing or invalid API key |
403 | Workspace or app access denied |
404 | App or execution not found |
429 | Rate limit exceeded |
500 | Unexpected server-side failure |
Example Public Apps By Capability
These are example public apps observed on April 11, 2026. Use them as capability anchors in docs or demos, but pin the exactappId you want to support in production and re-check its schema with GET /v1/apps/{appId} before you ship against it.
| Capability | Example public app | Example appId |
|---|---|---|
| Single image generation | Product Shots with Mood Board | ec7ec3ce-69b4-43c9-8eea-fe9752d679a4 |
| Batch catalog generation | Premium Catalog 1.0 | bbb17293-5fe7-4645-8c6e-0745bc28254d |
| Batch catalog generation | Swift Catalog Generation | de5cca6b-73aa-4e27-a714-3339024db15d |
| Virtual try-on | Product Try on | a76e85ec-20b4-4fbc-99ad-055423a868a2 |
| Video generation | Eyewear Shoot (Multi-Shot 21s Video) | 1afc70fd-cb66-4f44-847d-bdaf7e237be4 |
| Video generation | Performance Marketing Video (V3) Sample | ec9b3525-4b72-4083-a6cb-00371672e128 |
Image Generation Recipe
Use this capability for:- product shots
- background swaps
- lifestyle scenes
- hero images
Product Shots with Mood Board
How it works today
Batch Catalog Recipe
Catalog docs should still tell the same truth: pick the catalog app, fetch its schema, then execute it asynchronously. Recommended backing app examples:Premium Catalog 1.0Swift Catalog Generation
- front image URL
- back image URL
- model/style options such as gender, ethnicity, body type, and location
Virtual Try-On Recipe
For try-on docs, treat the app as the capability container. Recommended backing app example:Product Try on
Suggested discovery query:
- one or more person/selfie image URLs
- one or more garment image URLs
- optional fit, pose, or styling fields depending on the app
Video Generation Recipe
Video generation follows the same start-then-poll pattern. The only difference is the app you pick and the media-heavy input/output expectations. Recommended backing app examples:Eyewear Shoot (Multi-Shot 21s Video)Performance Marketing Video (V3) Sample
- one or more source image URLs
- optional product or motion brief text
- optional aspect ratio, duration, or style fields from app metadata
Job Status Recipe
Every capability above resolves to the same status check:executionId returned from POST /v1/apps/{appId}/executions. Poll every 3-5 seconds until the execution reaches completed or failed.
If you are using webhooks, verify the callback signature with:
Important Documentation Rule
Do not document endpoints that do not exist yet. If you want a future wrapper API such as/v1/images/generate, build and ship that backend contract first. Until then, public docs should describe the real Lamina Apps API endpoints above.
Recommended Publishing Pattern
For a polished public docs experience with the current backend:- keep the API Reference limited to the real
/v1/...endpoints - use this page to explain business use cases like image generation or try-on
- pin one or more production-ready
appIdvalues for each documented use case - keep examples synchronized with the actual parameter schema from
GET /v1/apps/{appId}