List Assets
curl --request GET \
--url https://app.uselamina.ai/v1/assets \
--header 'x-api-key: <api-key>'import requests
url = "https://app.uselamina.ai/v1/assets"
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/assets', 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/assets",
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/assets"
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/assets")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.uselamina.ai/v1/assets")
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": [
{
"id": "out-001",
"runId": "fc32ae7d-6840-4be3-8fb1-539a60e33fc3",
"nodeLabel": "AI Designer",
"outputType": "image",
"sourceUrl": "https://fal.media/files/generated/output-001.png",
"cdnUrl": "https://media.getmason.io/api/assetlib/abc123.png",
"textContent": null,
"status": "completed",
"createdAt": "2026-04-15T10:32:10.000Z"
},
{
"id": "out-002",
"runId": "fc32ae7d-6840-4be3-8fb1-539a60e33fc3",
"nodeLabel": "Copy Writer",
"outputType": "text",
"sourceUrl": null,
"cdnUrl": null,
"textContent": "Discover our new spring collection -- where comfort meets style.",
"status": "completed",
"createdAt": "2026-04-15T10:31:55.000Z"
}
],
"pagination": {
"total": 2,
"limit": 25,
"offset": 0
}
}{
"error": "Invalid API key"
}"Too many requests from this IP, please try again in a minute"Track
List Assets
List generated assets (images, videos, audio, text) from completed executions in your workspace.
Use this to browse all content your workspace has produced, filter by execution or output type, and retrieve CDN URLs for downstream use (publishing, further processing, etc.).
Only assets from completed executions with status completed are returned.
Results are ordered by creation time, newest first.
GET
/
v1
/
assets
List Assets
curl --request GET \
--url https://app.uselamina.ai/v1/assets \
--header 'x-api-key: <api-key>'import requests
url = "https://app.uselamina.ai/v1/assets"
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/assets', 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/assets",
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/assets"
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/assets")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.uselamina.ai/v1/assets")
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": [
{
"id": "out-001",
"runId": "fc32ae7d-6840-4be3-8fb1-539a60e33fc3",
"nodeLabel": "AI Designer",
"outputType": "image",
"sourceUrl": "https://fal.media/files/generated/output-001.png",
"cdnUrl": "https://media.getmason.io/api/assetlib/abc123.png",
"textContent": null,
"status": "completed",
"createdAt": "2026-04-15T10:32:10.000Z"
},
{
"id": "out-002",
"runId": "fc32ae7d-6840-4be3-8fb1-539a60e33fc3",
"nodeLabel": "Copy Writer",
"outputType": "text",
"sourceUrl": null,
"cdnUrl": null,
"textContent": "Discover our new spring collection -- where comfort meets style.",
"status": "completed",
"createdAt": "2026-04-15T10:31:55.000Z"
}
],
"pagination": {
"total": 2,
"limit": 25,
"offset": 0
}
}{
"error": "Invalid API key"
}"Too many requests from this IP, please try again in a minute"Returns generated assets (images, videos, text) from past executions in your workspace.
Use this endpoint when you need to browse outputs across multiple executions, build a media library view, or let users pick previously generated assets as inputs for new runs. Results are paginated and can be filtered by media type.
Authorizations
Workspace API key. Prefix: lma_. Example: lma_abc123...
Query Parameters
Filter assets to a specific run. Returns only outputs from that run.
Filter by output type. Omit to return all types.
Available options:
image, video, audio, text Maximum number of assets to return per page.
Required range:
x <= 100Number of assets to skip (for pagination).