Skip to content

Get inference run

Viewing v2— current version

GET
/v2/workspaces/{workspace_id}/inferences/{inference_id}
curl --request GET \
--url https://api.app.layer.ai/api/v2/workspaces/:workspace_id/inferences/:inference_id \
--header 'Authorization: Bearer <token>'

Changed in v2. This endpoint’s contract differs from v1. See the v2 migration guide for the request and response changes before you switch.

Get the status and results of an inference run, plus what each attached reference set contributed to it.

workspace_id
required
Workspace Id

Id of the workspace that owns the resource.

string format: uuid

Id of the workspace that owns the resource.

inference_id
required
Inference Id

Id of the generation.

string format: uuid

Id of the generation.

Successful Response

Media typeapplication/json
GetInferenceRunV2Output
object
inference_id
required
Inference Id

Unique identifier for this inference run.

string format: uuid
status
required
InferenceStatus

Current status: in_progress, complete, failed, cancelled, or deleted.

string
Allowed values: in_progress complete failed cancelled deleted
poll_interval_seconds
Poll Interval Seconds

Suggested polling interval in seconds. Present while IN_PROGRESS.

integer
nullable
completed_at
Completed At

Completion timestamp. Present only on COMPLETE.

string format: date-time
nullable
outputs
Outputs

Generated assets. Present only on COMPLETE.

Array<object>
nullable
ForgeRunAsset
object
file_id
required
File Id

File ID for the generated asset.

string format: uuid
url
required
Url

Download URL for the asset.

string
content_type
required
Content Type

MIME type, e.g. image/png or video/mp4.

string
preview_url
Preview Url

Thumbnail/preview URL.

string
nullable
width
Width

Width in pixels.

integer
nullable
height
Height

Height in pixels.

integer
nullable
duration_seconds
Duration Seconds

Duration for video/audio assets.

number
nullable
file_size_bytes
File Size Bytes

File size in bytes.

integer
nullable
metadata
Any of:
FileMetadataView

What an engine needs beyond the image to build a resource from a file. Each kind is null when absent.

object
tile
Any of:
TileMetadataView

Where a game tile’s sprite sits on its grid, in the sprite’s own pixels from its top-left corner.

object
shape
required
TileShape

The outline of one grid cell seen from straight above.

string
Allowed values: SQUARE HEXAGON
orientation
required
TileOrientation

How the cell is turned to the camera: DIAMOND or ALIGNED for a square, POINTY_TOP or FLAT_TOP for a hexagon.

string
Allowed values: DIAMOND ALIGNED POINTY_TOP FLAT_TOP
elevation
required
Elevation

Camera tilt in degrees above the ground plane; 90 is straight down.

number
facing
required
Facing

Quarter turn of the camera around the tile, in degrees clockwise seen from above: 0, 90, 180, or 270. A hexagon is only drawn facing 0.

integer
footprint_width
required
Footprint Width

Cells the footprint covers across (the base’s right-hand edge) at facing 0.

integer
footprint_depth
required
Footprint Depth

Cells the footprint covers deep (the base’s left-hand edge) at facing 0.

integer
height
required
Height

Wall height in cell sides: 0 is a flat ground tile, 1 a cube on a square.

number
tile_width
required
Tile Width

Width in pixels of one cell’s base outline in the sprite.

integer
tile_height
required
Tile Height

Height in pixels of one cell’s base outline in the sprite.

integer
anchor
required
TilePointView

The point the tile is placed by: the bottom centre of the cell it stands on (the front cell of a footprint wider than one).

object
x
required
X

Pixels right of the sprite’s left edge.

number
y
required
Y

Pixels down from the sprite’s top edge.

number
cell_center
required
TilePointView

The centre of the anchor’s cell. Godot and Unity pin a tile here rather than at the anchor.

object
x
required
X

Pixels right of the sprite’s left edge.

number
y
required
Y

Pixels down from the sprite’s top edge.

number
base_outline
required
Base Outline

The footprint’s whole base outline, clockwise on screen from the anchor’s vertex or edge.

Array<object>
TilePointView
object
x
required
X

Pixels right of the sprite’s left edge.

number
y
required
Y

Pixels down from the sprite’s top edge.

number
subject_id
Subject Id

What the tile shows. Every facing of one subject shares it, so a tileset can group them.

string format: uuid
nullable
nine_slice
Any of:
NineSliceMetadataView

The insets a 9-slice draws a UI element by, in the image’s own pixels in from each edge.

The corners are drawn at their own size, the edges stretch along their length, and the centre stretches both ways.

object
left
required
Left

Pixels in from the left edge.

integer
top
required
Top

Pixels in from the top edge.

integer
right
required
Right

Pixels in from the right edge.

integer
bottom
required
Bottom

Pixels in from the bottom edge.

integer
source
required
NineSliceSource

DETECTED when measured off the pixels, USER when a person set the insets.

string
Allowed values: DETECTED USER
sprite_sheet
Any of:
SpriteSheetMetadataView

The frame grid a sprite sheet was packed on, in the sheet’s own pixels from its top-left corner.

Cells start margin pixels in from the sheet’s edges with spacing pixels between them.

object
columns
required
Columns

Cells across.

integer
rows
required
Rows

Cells down.

integer
cell_width
required
Cell Width

Width of one cell in pixels.

integer
cell_height
required
Cell Height

Height of one cell in pixels.

integer
margin
required
Margin

Pixels between the sheet’s edges and the outer cells.

integer
spacing
required
Spacing

Pixels between neighbouring cells.

integer
frames
required
Frames

The frames, in play order: left to right, then top to bottom, unless the list orders them otherwise.

Array<object>
SpriteSheetFrameView

One frame’s rect on the sheet, in the sheet’s own pixels from its top-left corner.

object
index
required
Index

The frame’s cell in reading order over the whole grid (left to right, then top to bottom). Cells that hold no frame are left out, so indexes can skip.

integer
x
required
X

The frame’s left edge on the sheet, in pixels.

integer
y
required
Y

The frame’s top edge on the sheet, in pixels.

integer
w
required
W

The frame’s width in pixels.

integer
h
required
H

The frame’s height in pixels.

integer
anchor
Any of:
TilePointView
object
x
required
X

Pixels right of the sprite’s left edge.

number
y
required
Y

Pixels down from the sprite’s top edge.

number
animations
required
Animations

Named animations over the frames. When empty, play the sheet as one animation named default over every frame in frames order, at 12 fps, looping.

Array<object>
SpriteSheetAnimationView
object
name
required
Name

The animation’s name.

string
frames
required
Frames

Frame indexes (frames[].index), in play order.

Array<integer>
fps
required
Fps

Frames per second.

number
loop
required
Loop

Whether the animation restarts after its last frame.

boolean
actual_price_creative_units
Actual Price Creative Units

Actual Creative Units charged. Present only on COMPLETE.

number
nullable
error
Error

Error message. Present only on FAILED.

string
nullable
error_code
Error Code

Machine-readable error code. Present only on FAILED. Balance-related values: INSUFFICIENT_BALANCE (the workspace ran out of Creative Units — top up and resubmit), BALANCE_UNAVAILABLE (the balance could not be verified, retry later) and USAGE_LIMIT_EXCEEDED (the member is past their usage limit: ask a workspace admin for more, or wait for it to reset).

string
nullable
base_model_id
Base Model Id

Base model the run used, resolved or auto-picked.

string
nullable
reference_set_contributions
Reference Set Contributions

Per-set summary of what each reference set contributed.

Array<object>
default:
ForgeReferenceSetContribution
object
set_id
Set Id

Reference Set ID this contribution belongs to, if any.

string format: uuid
nullable
lora_applied
Lora Applied

True when a LoRA finetune was applied for this set.

boolean
animation_applied
Animation Applied

True when an animation (Meshy rigging action) finetune was applied for this set.

boolean
voice_applied
Voice Applied

True when a voice (ElevenLabs) finetune was applied for this set.

boolean
mapped_asset_count
Mapped Asset Count

Number of assets successfully mapped to guidance inputs.

integer
0
palette_applied
Palette Applied

True when the set’s color palette was appended to the prompt.

boolean
prompt_fallback_applied
Prompt Fallback Applied

True when the set fell back to prompt-only representation.

boolean
auto_prompt_applied
Auto Prompt Applied

True when the set’s auto prompt addition was appended to the prompt. Informational: the text rides on top of whatever else the set contributed and is not a degradation.

boolean
lora_available_but_incompatible
Lora Available But Incompatible

True when SBMC has a LoRA for this set on another base model but not the one used.

boolean
skipped_not_applicable
Skipped Not Applicable

True when the set isn’t applicable to the chosen model (its modality / applicable base models exclude it) so no LoRA or assets were applied.

boolean
skipped_irrelevant_category
Skipped Irrelevant Category

True when the set’s category means nothing for the chosen model’s modality (a camera move on an image model), so it was dropped entirely, prompt text included. Implies skipped_not_applicable.

boolean
reference_sets_degraded
Reference Sets Degraded

True when at least one attached reference set did not meaningfully contribute. The run still costs Creative Units.

boolean
reference_sets_warning
Reference Sets Warning

Names each degraded reference set and why, or null when none is degraded.

string
nullable
webhook
Any of:
WebhookStatusView

What a job’s GET reports about the callback attached to it.

The URL is echoed so a caller can tell which of its endpoints a run was aimed at; the rest is how the delivery went, which is the only place a failed delivery is visible.

object
url
required
Url

The callback URL this run was submitted with.

string
status
required
WebhookDeliveryStatus

Pending until a delivery settles, then delivered or failed.

string
Allowed values: pending delivered failed
attempts
required
Attempts

How many delivery attempts have been made.

integer
last_attempt_at
Last Attempt At

When the last attempt was made.

string format: date-time
nullable
last_response_status
Last Response Status

HTTP status the receiver returned on the last attempt, if it responded.

integer
nullable
last_error
Last Error

Why the last attempt did not succeed. Null once delivered.

string
nullable
Example
{
"status": "in_progress",
"outputs": [
{
"metadata": {
"tile": {
"shape": "SQUARE",
"orientation": "DIAMOND"
},
"nine_slice": {
"source": "DETECTED"
}
}
}
],
"reference_set_contributions": [],
"reference_sets_degraded": false,
"webhook": {
"status": "pending"
}
}

Unauthenticated — missing or invalid Bearer token.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
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.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}

Resource not found.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
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.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
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.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
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.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}

Internal server error.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}