runs_get
Free tool to get one run's looot status, result and cost once settled, separate from the provider's own response status.
Return a run’s looot lifecycle status separately from the provider’s own response status, plus
result and cost once settled. Free and read-only. Use it after run when you did not wait, or to
re-check a run later. It also follows a workflow run started via run with
endpointId: "workflow:<id>", by its returned workflowRunId.
Inputs
| Argument | Type | Required | Default | Limits | Meaning |
|---|---|---|---|---|---|
runId |
string | Yes | - | - | A run id from run or runs_list. |
fields |
string[] | No | all of result |
At most 50 paths, 200 characters each | Dotted paths of result to keep, for example items.name. Lists on a path are walked item by item. A path the result does not have is a validation_error. |
max_items |
integer | No | no cap | 1 to 10000 | Keep only the first N entries of every list in result, at any depth. |
On a failed run, error carries {code, providerStatus, message, requestId, whoseError, retryable, retryHint},
never secrets or raw provider headers. A completed run can carry an optional normalized object
next to result (fixed field names per job); it is absent, never null, when it does not apply.
Both options are optional and only change the copy you get back: the charge, the stored result and a later call without
options are the same. When something was cut, the answer carries trimmed:
{"truncated": true, "fields": ["items.name"], "max_items": 2, "arrays": [{"path": "$.items", "kept": 2, "total": 40}]}.
status, outcome, route, normalized and the cost fields are never trimmed. run accepts the
same two arguments; there, an unknown path is listed in trimmed.unmatched and the full result comes back, because the
run is already paid. REST: GET /v1/runs/{runId}?fields=items.name&max_items=2.
Example call
{
"runId": "run_807967cc4b7f468fa5d7dbcaefdee859"
}
Example answer
Abridged: result is the provider’s own payload and varies by endpoint.
{
"runId": "run_807967cc4b7f468fa5d7dbcaefdee859",
"endpointId": "linkup-search",
"status": "completed",
"providerResponseStatus": "ok",
"createdAt": "2026-09-24T21:14:36.435Z",
"startedAt": "2026-09-24T21:14:36.781Z",
"completedAt": "2026-09-24T21:14:37.377607+00:00",
"input": {
"q": "looot api gateway",
"depth": "standard",
"outputType": "searchResults"
},
"error": null
}
Errors
Free and read-only; no runs.execute needed. A missing runId returns validation_error:
Invalid input: expected string, received undefined at runId. An unknown runId in this
workspace returns not_found with the id you sent, not a generic lookup failure.
REST and CLI
- REST:
GET /v1/runs/{runId} - CLI:
looot runs get <run-id>