API reference
Skill runs
Run a skill and read its result.
GET
header
AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
limit?integerRange
1 <= value <= 100Default
50cursor?stringLength
1 <= length <= 500status?array<>Items
1 <= items <= 6skill?stringLength
1 <= length <= 200OK
application/json- response
runs*array<>next?stringcurl -X GET 'https://api.us.webagent.lookover.ai/v1/skill-runs'Example Response
{ "runs": [ { "runId": "string", "skill": { "name": "string", "version": "string" }, "sessionId": "string", "status": "running", "startedAt": 0, "ms": 0, "summary": "string", "counts": { "property1": 0, "property2": 0 }, "engineRef": { "id": "string", "version": "string", "name": "string" } } ], "next": "string"}GET
header
AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
id*stringMatch
^run_(us|in)_[0-9a-z]{24}$OK
application/json- response
runId*stringMatch
^run_(us|in)_[0-9a-z]{24}$skill*sessionId*stringMatch
^sess_(us|in)_[0-9a-z]{24}$status*stringValue in
"running""passed""failed""error""cancelled""denied"startedAt*integerRange
0 <= value <= 9007199254740991ms*|nullsummary*string|nullcounts*|nullengineRef?result*|nullhasReport*booleancurl -X GET 'https://api.us.webagent.lookover.ai/v1/skill-runs/string'Example Response
{ "runId": "string", "skill": { "name": "string", "version": "string" }, "sessionId": "string", "status": "running", "startedAt": 0, "ms": 0, "summary": "string", "counts": { "property1": 0, "property2": 0 }, "engineRef": { "id": "string", "version": "string", "name": "string" }, "result": { "property1": null, "property2": null }, "hasReport": true}GET
header
AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
id*stringMatch
^run_(us|in)_[0-9a-z]{24}$Redirect to a short-lived URL of report.html
curl -X GET 'https://api.us.webagent.lookover.ai/v1/skill-runs/string/report'Example Response
Empty
GET
The run's test report as JSON (verdict, plain-language summary, failed steps with screenshot links, findings, console errors, failed network calls). running while it has not finished. 404 not_found for an unknown or another project's run. GET /v1/skill-runs/{id}/report is the HTML report
header
AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
id*stringMatch
^run_(us|in)_[0-9a-z]{24}$OK
application/json- response
id*|kind*stringValue in
"task""skill_run"sessionId*stringMatch
^sess_(us|in)_[0-9a-z]{24}$name*stringLength
length <= 300verdict*stringValue in
"pass""fail""error""running"outcome*stringLength
length <= 40summary*stringLength
length <= 1500url?stringLength
length <= 2000finalUrl?stringLength
length <= 2000startedAt*stringMatch
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$Format
date-timeendedAt?stringMatch
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$Format
date-timedurationMs?numberRange
0 <= valuecounts*steps*array<>Items
items <= 50findings*array<>Items
items <= 30consoleErrors*array<>Items
items <= 15networkFailures*array<>Items
items <= 20evidence*notes*array<>Items
items <= 8curl -X GET 'https://api.us.webagent.lookover.ai/v1/skill-runs/string/report.json'Example Response
{ "id": "string", "kind": "task", "sessionId": "string", "name": "string", "verdict": "pass", "outcome": "string", "summary": "string", "url": "string", "finalUrl": "string", "startedAt": "2019-08-24T14:15:22Z", "endedAt": "2019-08-24T14:15:22Z", "durationMs": 0, "counts": { "steps": 0, "failedSteps": 0, "findings": 0, "consoleErrors": 0, "networkFailures": 0 }, "steps": [ { "index": 0, "title": "string", "kind": "string", "status": "pass", "error": "string", "ms": 0, "screenshotUrl": "string" } ], "findings": [ { "rule": "string", "severity": "info", "title": "string", "url": "string", "fix": "string", "detail": "string" } ], "consoleErrors": [ { "source": "console", "text": "string", "url": "string" } ], "networkFailures": [ { "kind": "http_error", "method": "string", "url": "string", "status": -9007199254740991, "error": "string" } ], "evidence": { "reportPath": "string", "reportSignedUrl": "string", "recordingPath": "string", "logsPath": "string", "urlsExpireAt": "2019-08-24T14:15:22Z" }, "notes": [ "string" ]}POST
header
AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
name*stringMatch
^[a-z][a-z0-9-]*$Idempotency-Key?stringRetry safely: the same key and body replay the first answer.
Length
1 <= length <= 255application/json- body
version?stringinputs?Default
{}engineId?stringMatch
^eng_(us|in)_[0-9a-z]{24}$grant?array<>session?OK
application/json- response
runId*stringMatch
^run_(us|in)_[0-9a-z]{24}$sessionId*stringMatch
^sess_(us|in)_[0-9a-z]{24}$status*stringcurl -X POST 'https://api.us.webagent.lookover.ai/v1/skills/string/run' \ -H 'Content-Type: application/json' \ -d '{}'Example Response
{ "runId": "string", "sessionId": "string", "status": "running"}