Get Run Status
curl --request GET \
--url https://app.uselamina.ai/v1/runs/{runId} \
--header 'x-api-key: <api-key>'import requests
url = "https://app.uselamina.ai/v1/runs/{runId}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://app.uselamina.ai/v1/runs/{runId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.uselamina.ai/v1/runs/{runId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.uselamina.ai/v1/runs/{runId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.uselamina.ai/v1/runs/{runId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.uselamina.ai/v1/runs/{runId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"runId": "fc32ae7d-6840-4be3-8fb1-539a60e33fc3",
"workflowId": "80d4d454-8844-489f-b903-2ad65a414482",
"status": "queued",
"outputs": [
{
"id": "aiDesignerNode-1773051929782-5yzqjkwpm",
"label": "AI Designer",
"type": "pending",
"value": null,
"status": "pending",
"error": null
}
],
"errorMessage": null,
"startedAt": null,
"completedAt": null,
"createdAt": "2026-03-23T12:22:40.552Z"
}
}Track
Get Run Status
Poll this endpoint to check execution progress and retrieve results.
Execution status: queued -> running -> completed or failed
Output status: pending -> completed or error
Output type: pending while processing, then image, video, or text once produced.
Poll every 3-5 seconds. Stop when execution status is completed or failed.
GET
/
v1
/
runs
/
{runId}
Get Run Status
curl --request GET \
--url https://app.uselamina.ai/v1/runs/{runId} \
--header 'x-api-key: <api-key>'import requests
url = "https://app.uselamina.ai/v1/runs/{runId}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://app.uselamina.ai/v1/runs/{runId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.uselamina.ai/v1/runs/{runId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.uselamina.ai/v1/runs/{runId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.uselamina.ai/v1/runs/{runId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.uselamina.ai/v1/runs/{runId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"runId": "fc32ae7d-6840-4be3-8fb1-539a60e33fc3",
"workflowId": "80d4d454-8844-489f-b903-2ad65a414482",
"status": "queued",
"outputs": [
{
"id": "aiDesignerNode-1773051929782-5yzqjkwpm",
"label": "AI Designer",
"type": "pending",
"value": null,
"status": "pending",
"error": null
}
],
"errorMessage": null,
"startedAt": null,
"completedAt": null,
"createdAt": "2026-03-23T12:22:40.552Z"
}
}Check the current status and outputs of an execution.
For agents, prefer
GET /v1/runs/{id}/wait — it blocks until the execution finishes, so you don’t need a polling loop. Use this endpoint when you need to check status without blocking, or as a fallback.
Status progresses: queued → running → completed or failed. Outputs start as pending placeholders and resolve to image, video, or text with a URL or content value.Authorizations
Workspace API key. Prefix: lma_. Example: lma_abc123...
Path Parameters
The run ID returned from the Run App or Content Create endpoint
Response
Run status with output values
Poll until status is completed or failed.
Show child attributes
Show child attributes