Skip to content

Get a training run

Viewing v1— superseded by v2

GET
/v1/workspaces/{workspace_id}/training-runs/{training_run_id}
curl --request GET \
--url https://api.app.layer.ai/api/v1/workspaces/:workspace_id/training-runs/:training_run_id \
--header 'Authorization: Bearer <token>'

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.

Get the status and progress of a training run.

workspace_id
required
Workspace Id

Id of the workspace that owns the resource.

string format: uuid

Id of the workspace that owns the resource.

training_run_id
required
Training Run Id

Id of the training run.

string format: uuid

Id of the training run.

Successful Response

Media typeapplication/json
GetTrainingRunResponse
object
training_run_id
required
Training Run Id
string format: uuid
state
required
State

In_progress, terminal_success, or terminal_failure.

string
Allowed values: in_progress terminal_success terminal_failure
raw_status
required
Raw Status

Fine-grained run status.

string
progress
required
Progress

Training progress in [0, 1]; 1.0 when complete.

number
poll_interval_seconds
Poll Interval Seconds

Suggested polling interval in seconds. Present while in_progress.

integer
nullable
eta_at
Eta At

Estimated completion time, if known.

string format: date-time
nullable
started_at
Started At
string format: date-time
nullable
finished_at
Finished At
string format: date-time
nullable
error
Error

Error message. Present only on terminal_failure.

string
nullable
error_code
Error Code

Machine-readable error code. Present on terminal_failure.

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
{
"state": "in_progress",
"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."
}