Execute inference
Viewing v1— superseded by v2
curl --request POST \ --url https://api.app.layer.ai/api/v1/workspaces/:workspace_id/inferences \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "model_id": "<uuid>", "weight": 1, "prompt": "<string>", "width": 0, "height": 0, "batch_size": 4, "num_inference_steps": 0, "guidance_scale": 0, "prompt_strength": 0, "quality": "low", "sharpness": 0, "duration_seconds": 0, "generate_audio": true, "keep_audio": true, "instrumental": true, "loop": true, "output_format": "mp3", "lyrics": "<string>", "composition_plan": { "positive_styles": [], "negative_styles": [], "sections": [ { "name": null, "duration_seconds": null, "positive_styles": null, "negative_styles": null, "lines": null } ], "respect_section_durations": true }, "fps": 0, "video_effects": [], "use_ta_pose": true, "pose_mode": "A_POSE", "include_textures": true, "detailed_geometry": true, "remesh_geometry": true, "texture_resolution": "RES_2K", "remove_lighting": true, "mesh_density": "ULTRA", "preserve_uvs": true, "segment_by": "AUTO", "segment_part_names": [ "<string>" ], "quad_mesh": true, "pbr_materials": true, "low_poly": true, "generate_parts": true, "face_limit": 0, "stability": 0, "use_speaker_boost": true, "similarity_boost": 0, "style_exaggeration": 0, "speed": 0, "upscale_ratio": 0, "creativity": 0, "resemblance": 0, "vectorize": true, "remove_background": true, "reframe": true, "refill": true, "seed": -1, "guidance_files": [], "mask": { "file_id": "<uuid>", "for_transparency": true, "for_nontransparency": true, "edge_radius": 0 }, "session_name": "<string>"}'import requests
url = "https://api.app.layer.ai/api/v1/workspaces/:workspace_id/inferences"
payload = { "model_id": "<uuid>", "weight": 1, "prompt": "<string>", "width": 0, "height": 0, "batch_size": 4, "num_inference_steps": 0, "guidance_scale": 0, "prompt_strength": 0, "quality": "low", "sharpness": 0, "duration_seconds": 0, "generate_audio": True, "keep_audio": True, "instrumental": True, "loop": True, "output_format": "mp3", "lyrics": "<string>", "composition_plan": { "positive_styles": [], "negative_styles": [], "sections": [ { "name": None, "duration_seconds": None, "positive_styles": None, "negative_styles": None, "lines": None } ], "respect_section_durations": True }, "fps": 0, "video_effects": [], "use_ta_pose": True, "pose_mode": "A_POSE", "include_textures": True, "detailed_geometry": True, "remesh_geometry": True, "texture_resolution": "RES_2K", "remove_lighting": True, "mesh_density": "ULTRA", "preserve_uvs": True, "segment_by": "AUTO", "segment_part_names": ["<string>"], "quad_mesh": True, "pbr_materials": True, "low_poly": True, "generate_parts": True, "face_limit": 0, "stability": 0, "use_speaker_boost": True, "similarity_boost": 0, "style_exaggeration": 0, "speed": 0, "upscale_ratio": 0, "creativity": 0, "resemblance": 0, "vectorize": True, "remove_background": True, "reframe": True, "refill": True, "seed": -1, "guidance_files": [], "mask": { "file_id": "<uuid>", "for_transparency": True, "for_nontransparency": True, "edge_radius": 0 }, "session_name": "<string>"}headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.json())const url = 'https://api.app.layer.ai/api/v1/workspaces/:workspace_id/inferences';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"model_id":"<uuid>","weight":1,"prompt":"<string>","width":0,"height":0,"batch_size":4,"num_inference_steps":0,"guidance_scale":0,"prompt_strength":0,"quality":"low","sharpness":0,"duration_seconds":0,"generate_audio":true,"keep_audio":true,"instrumental":true,"loop":true,"output_format":"mp3","lyrics":"<string>","composition_plan":{"positive_styles":[],"negative_styles":[],"sections":[{"name":null,"duration_seconds":null,"positive_styles":null,"negative_styles":null,"lines":null}],"respect_section_durations":true},"fps":0,"video_effects":[],"use_ta_pose":true,"pose_mode":"A_POSE","include_textures":true,"detailed_geometry":true,"remesh_geometry":true,"texture_resolution":"RES_2K","remove_lighting":true,"mesh_density":"ULTRA","preserve_uvs":true,"segment_by":"AUTO","segment_part_names":["<string>"],"quad_mesh":true,"pbr_materials":true,"low_poly":true,"generate_parts":true,"face_limit":0,"stability":0,"use_speaker_boost":true,"similarity_boost":0,"style_exaggeration":0,"speed":0,"upscale_ratio":0,"creativity":0,"resemblance":0,"vectorize":true,"remove_background":true,"reframe":true,"refill":true,"seed":-1,"guidance_files":[],"mask":{"file_id":"<uuid>","for_transparency":true,"for_nontransparency":true,"edge_radius":0},"session_name":"<string>"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://api.app.layer.ai/api/v1/workspaces/:workspace_id/inferences"
payload := strings.NewReader("{\n \"model_id\": \"<uuid>\",\n \"weight\": 1,\n \"prompt\": \"<string>\",\n \"width\": 0,\n \"height\": 0,\n \"batch_size\": 4,\n \"num_inference_steps\": 0,\n \"guidance_scale\": 0,\n \"prompt_strength\": 0,\n \"quality\": \"low\",\n \"sharpness\": 0,\n \"duration_seconds\": 0,\n \"generate_audio\": true,\n \"keep_audio\": true,\n \"instrumental\": true,\n \"loop\": true,\n \"output_format\": \"mp3\",\n \"lyrics\": \"<string>\",\n \"composition_plan\": {\n \"positive_styles\": [],\n \"negative_styles\": [],\n \"sections\": [\n {\n \"name\": null,\n \"duration_seconds\": null,\n \"positive_styles\": null,\n \"negative_styles\": null,\n \"lines\": null\n }\n ],\n \"respect_section_durations\": true\n },\n \"fps\": 0,\n \"video_effects\": [],\n \"use_ta_pose\": true,\n \"pose_mode\": \"A_POSE\",\n \"include_textures\": true,\n \"detailed_geometry\": true,\n \"remesh_geometry\": true,\n \"texture_resolution\": \"RES_2K\",\n \"remove_lighting\": true,\n \"mesh_density\": \"ULTRA\",\n \"preserve_uvs\": true,\n \"segment_by\": \"AUTO\",\n \"segment_part_names\": [\n \"<string>\"\n ],\n \"quad_mesh\": true,\n \"pbr_materials\": true,\n \"low_poly\": true,\n \"generate_parts\": true,\n \"face_limit\": 0,\n \"stability\": 0,\n \"use_speaker_boost\": true,\n \"similarity_boost\": 0,\n \"style_exaggeration\": 0,\n \"speed\": 0,\n \"upscale_ratio\": 0,\n \"creativity\": 0,\n \"resemblance\": 0,\n \"vectorize\": true,\n \"remove_background\": true,\n \"reframe\": true,\n \"refill\": true,\n \"seed\": -1,\n \"guidance_files\": [],\n \"mask\": {\n \"file_id\": \"<uuid>\",\n \"for_transparency\": true,\n \"for_nontransparency\": true,\n \"edge_radius\": 0\n },\n \"session_name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>") req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [ CURLOPT_URL => "https://api.app.layer.ai/api/v1/workspaces/:workspace_id/inferences", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode([ 'model_id' => '<uuid>', 'weight' => 1, 'prompt' => '<string>', 'width' => 0, 'height' => 0, 'batch_size' => 4, 'num_inference_steps' => 0, 'guidance_scale' => 0, 'prompt_strength' => 0, 'quality' => 'low', 'sharpness' => 0, 'duration_seconds' => 0, 'generate_audio' => null, 'keep_audio' => null, 'instrumental' => null, 'loop' => null, 'output_format' => 'mp3', 'lyrics' => '<string>', 'composition_plan' => [ 'positive_styles' => [
], 'negative_styles' => [
], 'sections' => [ [ 'name' => null, 'duration_seconds' => null, 'positive_styles' => null, 'negative_styles' => null, 'lines' => null ] ], 'respect_section_durations' => null ], 'fps' => 0, 'video_effects' => [
], 'use_ta_pose' => null, 'pose_mode' => 'A_POSE', 'include_textures' => null, 'detailed_geometry' => null, 'remesh_geometry' => null, 'texture_resolution' => 'RES_2K', 'remove_lighting' => null, 'mesh_density' => 'ULTRA', 'preserve_uvs' => null, 'segment_by' => 'AUTO', 'segment_part_names' => [ '<string>' ], 'quad_mesh' => null, 'pbr_materials' => null, 'low_poly' => null, 'generate_parts' => null, 'face_limit' => 0, 'stability' => 0, 'use_speaker_boost' => null, 'similarity_boost' => 0, 'style_exaggeration' => 0, 'speed' => 0, 'upscale_ratio' => 0, 'creativity' => 0, 'resemblance' => 0, 'vectorize' => null, 'remove_background' => null, 'reframe' => null, 'refill' => null, 'seed' => -1, 'guidance_files' => [
], 'mask' => [ 'file_id' => '<uuid>', 'for_transparency' => null, 'for_nontransparency' => null, 'edge_radius' => 0 ], 'session_name' => '<string>' ]), CURLOPT_HTTPHEADER => [ "Authorization: Bearer <token>", "Content-Type: application/json" ],]);
$response = curl_exec($curl);$err = curl_error($curl);
curl_close($curl);
if ($err) { echo "cURL Error #:" . $err;} else { echo $response;}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");RequestBody body = RequestBody.create(mediaType, "{\n \"model_id\": \"<uuid>\",\n \"weight\": 1,\n \"prompt\": \"<string>\",\n \"width\": 0,\n \"height\": 0,\n \"batch_size\": 4,\n \"num_inference_steps\": 0,\n \"guidance_scale\": 0,\n \"prompt_strength\": 0,\n \"quality\": \"low\",\n \"sharpness\": 0,\n \"duration_seconds\": 0,\n \"generate_audio\": true,\n \"keep_audio\": true,\n \"instrumental\": true,\n \"loop\": true,\n \"output_format\": \"mp3\",\n \"lyrics\": \"<string>\",\n \"composition_plan\": {\n \"positive_styles\": [],\n \"negative_styles\": [],\n \"sections\": [\n {\n \"name\": null,\n \"duration_seconds\": null,\n \"positive_styles\": null,\n \"negative_styles\": null,\n \"lines\": null\n }\n ],\n \"respect_section_durations\": true\n },\n \"fps\": 0,\n \"video_effects\": [],\n \"use_ta_pose\": true,\n \"pose_mode\": \"A_POSE\",\n \"include_textures\": true,\n \"detailed_geometry\": true,\n \"remesh_geometry\": true,\n \"texture_resolution\": \"RES_2K\",\n \"remove_lighting\": true,\n \"mesh_density\": \"ULTRA\",\n \"preserve_uvs\": true,\n \"segment_by\": \"AUTO\",\n \"segment_part_names\": [\n \"<string>\"\n ],\n \"quad_mesh\": true,\n \"pbr_materials\": true,\n \"low_poly\": true,\n \"generate_parts\": true,\n \"face_limit\": 0,\n \"stability\": 0,\n \"use_speaker_boost\": true,\n \"similarity_boost\": 0,\n \"style_exaggeration\": 0,\n \"speed\": 0,\n \"upscale_ratio\": 0,\n \"creativity\": 0,\n \"resemblance\": 0,\n \"vectorize\": true,\n \"remove_background\": true,\n \"reframe\": true,\n \"refill\": true,\n \"seed\": -1,\n \"guidance_files\": [],\n \"mask\": {\n \"file_id\": \"<uuid>\",\n \"for_transparency\": true,\n \"for_nontransparency\": true,\n \"edge_radius\": 0\n },\n \"session_name\": \"<string>\"\n}");Request request = new Request.Builder() .url("https://api.app.layer.ai/api/v1/workspaces/:workspace_id/inferences") .post(body) .addHeader("Authorization", "Bearer <token>") .addHeader("Content-Type", "application/json") .build();
Response response = client.newCall(request).execute();require 'uri'require 'net/http'
url = URI("https://api.app.layer.ai/api/v1/workspaces/:workspace_id/inferences")
http = Net::HTTP.new(url.host, url.port)http.use_ssl = true
request = Net::HTTP::Post.new(url)request["Authorization"] = 'Bearer <token>'request["Content-Type"] = 'application/json'request.body = "{\n \"model_id\": \"<uuid>\",\n \"weight\": 1,\n \"prompt\": \"<string>\",\n \"width\": 0,\n \"height\": 0,\n \"batch_size\": 4,\n \"num_inference_steps\": 0,\n \"guidance_scale\": 0,\n \"prompt_strength\": 0,\n \"quality\": \"low\",\n \"sharpness\": 0,\n \"duration_seconds\": 0,\n \"generate_audio\": true,\n \"keep_audio\": true,\n \"instrumental\": true,\n \"loop\": true,\n \"output_format\": \"mp3\",\n \"lyrics\": \"<string>\",\n \"composition_plan\": {\n \"positive_styles\": [],\n \"negative_styles\": [],\n \"sections\": [\n {\n \"name\": null,\n \"duration_seconds\": null,\n \"positive_styles\": null,\n \"negative_styles\": null,\n \"lines\": null\n }\n ],\n \"respect_section_durations\": true\n },\n \"fps\": 0,\n \"video_effects\": [],\n \"use_ta_pose\": true,\n \"pose_mode\": \"A_POSE\",\n \"include_textures\": true,\n \"detailed_geometry\": true,\n \"remesh_geometry\": true,\n \"texture_resolution\": \"RES_2K\",\n \"remove_lighting\": true,\n \"mesh_density\": \"ULTRA\",\n \"preserve_uvs\": true,\n \"segment_by\": \"AUTO\",\n \"segment_part_names\": [\n \"<string>\"\n ],\n \"quad_mesh\": true,\n \"pbr_materials\": true,\n \"low_poly\": true,\n \"generate_parts\": true,\n \"face_limit\": 0,\n \"stability\": 0,\n \"use_speaker_boost\": true,\n \"similarity_boost\": 0,\n \"style_exaggeration\": 0,\n \"speed\": 0,\n \"upscale_ratio\": 0,\n \"creativity\": 0,\n \"resemblance\": 0,\n \"vectorize\": true,\n \"remove_background\": true,\n \"reframe\": true,\n \"refill\": true,\n \"seed\": -1,\n \"guidance_files\": [],\n \"mask\": {\n \"file_id\": \"<uuid>\",\n \"for_transparency\": true,\n \"for_nontransparency\": true,\n \"edge_radius\": 0\n },\n \"session_name\": \"<string>\"\n}"
response = http.request(request)puts response.read_bodyvar client = new RestClient("https://api.app.layer.ai/api/v1/workspaces/:workspace_id/inferences");var request = new RestRequest("", Method.Post);request.AddHeader("Authorization", "Bearer <token>");request.AddHeader("Content-Type", "application/json");request.AddParameter("application/json", "{\n \"model_id\": \"<uuid>\",\n \"weight\": 1,\n \"prompt\": \"<string>\",\n \"width\": 0,\n \"height\": 0,\n \"batch_size\": 4,\n \"num_inference_steps\": 0,\n \"guidance_scale\": 0,\n \"prompt_strength\": 0,\n \"quality\": \"low\",\n \"sharpness\": 0,\n \"duration_seconds\": 0,\n \"generate_audio\": true,\n \"keep_audio\": true,\n \"instrumental\": true,\n \"loop\": true,\n \"output_format\": \"mp3\",\n \"lyrics\": \"<string>\",\n \"composition_plan\": {\n \"positive_styles\": [],\n \"negative_styles\": [],\n \"sections\": [\n {\n \"name\": null,\n \"duration_seconds\": null,\n \"positive_styles\": null,\n \"negative_styles\": null,\n \"lines\": null\n }\n ],\n \"respect_section_durations\": true\n },\n \"fps\": 0,\n \"video_effects\": [],\n \"use_ta_pose\": true,\n \"pose_mode\": \"A_POSE\",\n \"include_textures\": true,\n \"detailed_geometry\": true,\n \"remesh_geometry\": true,\n \"texture_resolution\": \"RES_2K\",\n \"remove_lighting\": true,\n \"mesh_density\": \"ULTRA\",\n \"preserve_uvs\": true,\n \"segment_by\": \"AUTO\",\n \"segment_part_names\": [\n \"<string>\"\n ],\n \"quad_mesh\": true,\n \"pbr_materials\": true,\n \"low_poly\": true,\n \"generate_parts\": true,\n \"face_limit\": 0,\n \"stability\": 0,\n \"use_speaker_boost\": true,\n \"similarity_boost\": 0,\n \"style_exaggeration\": 0,\n \"speed\": 0,\n \"upscale_ratio\": 0,\n \"creativity\": 0,\n \"resemblance\": 0,\n \"vectorize\": true,\n \"remove_background\": true,\n \"reframe\": true,\n \"refill\": true,\n \"seed\": -1,\n \"guidance_files\": [],\n \"mask\": {\n \"file_id\": \"<uuid>\",\n \"for_transparency\": true,\n \"for_nontransparency\": true,\n \"edge_radius\": 0\n },\n \"session_name\": \"<string>\"\n}", ParameterType.RequestBody);var response = client.Execute(request);v1 is superseded. v1 was superseded by v2 on 2026-08-26. A sunset date has not been announced yet; v1 will be deprecated as a whole before removal. Migrate with the v2 migration guide.
Start an AI inference (image, video, 3D, or audio). Returns immediately with an ID. Poll with GET /workspaces/{workspace_id}/inferences/{inference_id} for results. Creative Units are not checked here: an underfunded workspace is still accepted and the run then reports FAILED with error_code INSUFFICIENT_BALANCE. Use the estimate endpoint’s has_sufficient_creative_units to check before submitting.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Id of the workspace that owns the resource.
Id of the workspace that owns the resource.
Header Parameters
Section titled “Header Parameters”Opaque key making a retry of this request return the first result. A 2xx response is replayed for 24 hours with Idempotent-Replayed: true. A 4xx releases the key. A 5xx, or a request still running, holds the key for 120 seconds, during which a retry gets 409; after that a retry executes again. The key covers the method, path, query, and byte-identical body it was first used with; reusing it for a different request is rejected with 422. Protection is best effort: if the key store is unavailable, or a record is lost early, a retry can execute again even after an earlier 409. See the Idempotency section of the API description.
Request Bodyrequired
Section titled “Request Bodyrequired”REST request body for executing an inference. workspace_id comes from path.
object
Model/style ID to use for generation.
Style/LoRA strength applied to the model. 1.0 = as trained; lower weakens, higher over-applies the style. Only affects LoRA/adapter-backed styles; ignored for models without a trainable adapter.
Text prompt.
Output width in pixels. If not specified, a default resolution based on the model will be applied.
Output height in pixels. If not specified, a default resolution based on the model will be applied.
Number of outputs (1-16).
Number of diffusion steps.
Guidance scale (CFG).
How closely the generated audio follows the text prompt (0-1); higher means less variation. Honored by ElevenLabs Sound Effects and the Sonilo video-to-music models, and ignored by every other model. To control how closely an image or video generation follows an input image, set guidance_files[].weight instead.
Quality level: low, medium, or high.
Output sharpness.
Output length in seconds — a video clip’s duration, or the clip length for audio models whose capabilities report duration_seconds_min and duration_seconds_max. A value outside a model’s supported range is refused.
Generate audio with video.
Keep audio from input video.
Guarantee a track with no vocals, on models whose capabilities report instrumental. Asking for one in the prompt is only a suggestion.
Compose the clip to repeat with no audible seam, on models whose capabilities report loop.
Container for a delivered audio file.
Providers name these their own way and Layer never re-encodes what one returns, so the format a caller asks for is only keepable on models whose capabilities list it. Members are named for their wire value: the frontend artifacts preserve enum names, and a name that differed from the value would hand clients a format string the request API rejects.
Words to be sung, for models whose capabilities report lyrics. A separate input from the prompt, which describes the music itself.
A track authored as an ordered list of sections rather than as one description.
The split is load-bearing: the plan’s own styles carry what must hold for the whole track, genre, era, production character, palette, and each section carries only what changes. Reversing it produces a track that either drifts or never moves.
A plan replaces the prompt rather than supplementing it. Providers taking a plan ignore the prompt, the requested length and the vocal-free flag, because the plan already states all three.
object
One section of a planned track, carrying its own length, styles and sung lines.
positive_styles/negative_styles are the section’s delta: what enters or leaves
here, against the palette the plan holds for the whole track. A section’s exclusions are
what keep it empty of something the rest of the track has, the plan-wide negatives
cannot express “no percussion until the second section”.
object
FPS for LTX video generation (e.g. 25 or 50).
Video effects to apply.
object
Video effect type. See model capabilities for supported effects per model.
Effect strength (0-100).
Deprecated: use pose_mode. Legacy rig-ready-pose toggle for 3D.
Canonical rest pose a character-mesh model is asked to generate in.
A_POSE places the arms angled down at roughly 45°; T_POSE holds them
straight out to the sides. Only meaningful for models that advertise the
pose_modes capability (e.g. Meshy V7).
Deliberately a light top-level module (like base_model_id), NOT under
pkg.models.inference: the Blueprint definition layer registers this as a
BlueprintType and migrates legacy node ports, and must do so without pulling
in the heavy pkg.models.inference package, which would perturb the Temporal
workflow-sandbox import graph and split pydantic class identity.
Include textures in 3D output.
Denser, more detailed geometry (Meshy V7 ultra mode). Costs extra; support varies by model.
Set false to skip the provider’s remesh phase and keep its raw geometry. Support varies by model.
Edge length of a generated mesh’s base color texture.
Offered where the model’s texture_resolutions capability lists it (Meshy’s own API).
Strip baked highlights and shadows from the texture. Support varies by model.
How many faces a mesh keeps, as a level the provider sizes adaptively.
Stands in for a fixed face limit where the model’s mesh_densities capability offers it.
Keep the mesh’s own UV layout when retexturing. Support varies by model.
Parts to split along when segment_by is PARTS, at most 10.
Generate quad mesh.
Generate PBR materials.
Generate low-poly mesh.
Generate separate parts.
Face/polygon limit for 3D mesh.
Audio stability (0-1).
Boost speaker clarity.
Voice similarity boost (0-1).
Style exaggeration (0-1).
Speech speed multiplier.
Upscale factor (e.g. 2.0, 4.0).
Creative variation strength for upscaling.
Resemblance to original for upscaling.
Vectorize the output image.
Remove background from output.
Reframe/extend the image.
Outpaint/refill transparent areas.
Random seed. -1 for random.
Reference images/files to guide generation.
object
File ID of an uploaded file.
Guidance type. See model capabilities for supported types per model.
Influence weight (0-1). Defaults to 0.5 for init, 1 for others.
The view a source image shows, for 3D models that read their sources by view.
object
Mask image file ID.
Use the init image’s transparent areas as the mask. As the only mask source, a fully opaque init used as stored (no transform, padding or target) is refused; a mask file works on any init.
Use non-transparent areas as mask.
Mask edge blur radius in pixels.
Session name.
Responses
Section titled “Responses”Successful Response
object
Unique identifier for this forge run.
Current status: IN_PROGRESS.
Estimated price in Creative Units.
Suggested polling interval in seconds.
Timestamp of when the run was created.
Session ID the run was added to, if a session was specified.
Inference parameters after model-specific normalization.
These reflect the actual values used for generation, including model defaults applied for any parameters not explicitly set.
object
Resolved output width in pixels.
Resolved output height in pixels.
Number of outputs to generate.
Resolved number of diffusion steps.
Resolved guidance scale.
Resolved output length in seconds — video duration or audio clip length.
Resolved FPS.
Example
{ "status": "in_progress"}Unauthenticated — missing or invalid Bearer token.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}Forbidden — insufficient permissions, or the access token lacks the scope the operation requires.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}Resource not found.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}The outcome of the request with this Idempotency-Key is not known yet: it is still running, or it failed without a stored response. Retry after the number of seconds in Retry-After.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}Invalid input parameters, or an Idempotency-Key reused for a different request.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}Rate limited — retry after the number of seconds in Retry-After.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}Internal server error.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}