Skip to main content
POST
/
api
/
apps
/
{appId}
/
executions
Run an app
curl --request POST \
  --url https://app.uselamina.ai/api/apps/{appId}/executions \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "inputs": {
    "Upload": "https://example.com/my-photo.jpg",
    "Style": "Disney / Pixar",
    "Aspect Ratio": "1:1"
  }
}
'
{
  "data": {
    "executionId": "fc32ae7d-6840-4be3-8fb1-539a60e33fc3",
    "workflowId": "80d4d454-8844-489f-b903-2ad65a414482",
    "workflowName": "test sync",
    "status": "queued",
    "webhookUrl": "https://your-server.com/lamina-callback",
    "outputs": [
      {
        "id": "aiDesignerNode-1773051929782-5yzqjkwpm",
        "label": "AI Designer",
        "type": "pending",
        "value": null,
        "status": "pending",
        "error": null
      },
      {
        "id": "aiDesignerNode-1773132653203-v9hn959pe",
        "label": "AI Designer",
        "type": "pending",
        "value": null,
        "status": "pending",
        "error": null
      }
    ]
  }
}
Starts an asynchronous execution and returns an executionId.

Getting results

Option 1 — Webhook (recommended): Pass ?webhook=https://your-server.com/callback as a query parameter. When the execution completes, we POST the results to your URL with the same structure as the polling response.
POST /api/apps/{appId}/executions?webhook=https://your-server.com/callback
Option 2 — Polling: Use GET /api/executions/{executionId} every 3-5 seconds until status is completed.

Authorizations

x-api-key
string
header
required

Workspace API key. Prefix: lma_. Example: lma_abc123...

Path Parameters

appId
string<uuid>
required

The app ID (UUID) from the List Apps response

Query Parameters

webhook
string<uri>

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

application/json
inputs
object
required

Parameter values keyed by parameter name (from the Get App response). Keys are case-sensitive and must match exactly.

Example:
{
"Upload": "https://example.com/my-photo.jpg",
"Style": "Disney / Pixar",
"Aspect Ratio": "1:1"
}

Response

Execution started. Poll GET /api/executions/{executionId} for results.

data
object

Returned when execution starts. All output values are null initially.