Run App
Start an asynchronous app execution. Returns immediately with an execution ID and pre-created output placeholders.
Providing inputs:
- Use the
inputsobject with parameter names as keys (from the Get App response) - For
optionsparameters, send the option label (e.g."Caucasian", not an internal value) - For
urlparameters, send a publicly accessible URL - For
textparameters, send a string value - Omit optional parameters to use their defaults
After starting:
You can poll GET /v1/runs/{runId} every 3-5 seconds, use a webhook
to receive results automatically, stream via GET /v1/runs/{runId}/stream,
or combine approaches — they all work side by side.
Webhook (optional, recommended for agents):
Pass ?webhook=https://your-server.com/callback as a query parameter. When the execution
completes, we POST the results to your URL — same structure as the polling response, signed
with ED25519 for verification. The polling endpoint still works regardless, so you can use
it as a fallback or for safety checks. See the Webhook Verification endpoint for details.
Start an execution of a specific app. You choose the app and provide exact inputs. For automatic app selection, useDocumentation Index
Fetch the complete documentation index at: https://docs.uselamina.ai/llms.txt
Use this file to discover all available pages before exploring further.
POST /v1/content/create instead.
Key each field in inputs by parameter name from GET /v1/apps/{appId}.
Getting results
| Method | Best for |
|---|---|
Wait — GET /v1/runs/{id}/wait | Agents. Blocks until done, no polling loop. |
Webhook — pass ?webhook=<url> | Production. Results POST to your URL on completion. |
SSE — GET /v1/runs/{id}/stream | Real-time UIs. Server-Sent Events with per-node progress. |
Poll — GET /v1/runs/{id} every 3-5s | Fallback when none of the above fit. |
Authorizations
Workspace API key. Prefix: lma_. Example: lma_abc123...
Path Parameters
The app ID (UUID) from the List Apps response
Query Parameters
URL to receive execution results when complete. We POST the same payload as the polling endpoint, signed with ED25519. Must be https or http.
Body
Parameter values keyed by parameter name (from the Get App response). Keys are case-sensitive and must match exactly.
{
"Upload": "https://example.com/my-photo.jpg",
"Style": "Disney / Pixar",
"Aspect Ratio": "1:1"
}Response
Run started. Poll GET /v1/runs/{runId} or stream via SSE for results.
Returned when execution starts. All output values are null initially.