Sessions
Create, inspect, control and stop browser sessions.
List sessions, newest first. Any of cursor, limit, state, since, until, q gives the paged reply { items, nextCursor? }, else { sessions }
AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
limit?integer1 <= value <= 10050cursor?string1 <= length <= 500state?array<>1 <= items <= 5since?integer0 <= value <= 9007199254740991until?integer0 <= value <= 9007199254740991q?stringlength <= 200OK
application/json- response
items*array<>nextCursor?string1 <= length <= 500curl -X GET 'https://api.us.webagent.lookover.ai/v1/sessions'{ "items": [ { "id": "string", "tenantId": "string", "projectId": "string", "homeRegion": "us", "executionRegion": "us", "status": "starting", "engine": "chromium", "browser": "chromium", "engineRef": { "id": "string", "version": "string", "name": "string" }, "pool": "shared", "createdAt": "2019-08-24T14:15:22Z", "endedAt": "2019-08-24T14:15:22Z", "endReason": "closed", "title": "string", "queue": { "position": 1, "etaSeconds": 0, "reason": "vpc_full", "queuedAt": "2019-08-24T14:15:22Z", "expiresAt": "2019-08-24T14:15:22Z" }, "lastUrl": "string", "durationMs": 0, "costMicros": 0, "startedBy": { "kind": "key", "id": "string", "name": "string" } } ], "nextCursor": "string"}Create a browser session (empty body: every default). startUrl opens a page before the session is live; a blocked address is 403 navigation_blocked
AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
Idempotency-Key?stringRetry safely: the same key and body replay the first answer.
1 <= length <= 255application/json- body
engine?string"chromium""firefox""webkit"device?stringblock?headers?array<>items <= 20record?booleanchromePreferences?captureBodies?boolean|initScripts?array<>items <= 10geolocation?reduceMotion?booleaninstrument?array<>1 <= items <= 2cpuThrottle?number1 <= value <= 20network?|cache?string"default""disabled"viewport?userAgent?stringlength <= 512locale?stringlength <= 35timezone?stringlength <= 64blockAds?booleanproxyUrl?stringuriuseProxy?boolean|dedicatedIp?booleanisSelenium?booleanidleTimeoutMs?integer10000 <= value <= 86400000maxDurationMs?integer10000 <= value <= 86400000allowHosts?array<>items <= 100followPopups?booleanstartUrl?stringurilength <= 2048acceptDialogs?booleanmetadata?browser?string"chromium""firefox""webkit"engineId?string^eng_(us|in)_[0-9a-z]{24}$engineVersion?string^\d+\.\d+\.\d+$length <= 40proxyId?string^prx_(us|in)_[0-9a-z]{24}$region?string"us""in"profileId?string^prof_(us|in)_[0-9a-z]{24}$persistProfile?booleanprofileName?string1 <= length <= 100extensionIds?array<>items <= 10credentials?boolean|siteAccess?boolean|botAuth?booleanwaitForCapacityMs?integer0 <= value <= 30000queueForCapacity?OK
application/json- response
id*string^sess_(us|in)_[0-9a-z]{24}$tenantId*string^ten_(us|in)_[0-9a-z]{24}$projectId*string^prj_(us|in)_[0-9a-z]{24}$homeRegion*string"us""in"executionRegion*string"us""in"status*string"starting""live""paused""ended""lost"engine*string"chromium""firefox""webkit"browser?string"chromium""firefox""webkit"engineRef?pool*string"shared""job""isolated""dedicated"createdAt*string^(?:(?:\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))$date-timeendedAt?string^(?:(?:\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))$date-timeendReason?string"closed""idle_timeout""max_duration""runner_lost""error""memory_limit""capacity_timeout"title?stringlength <= 300queue?token*stringtokenExpiresAt*string^(?:(?:\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))$date-timeendpoints*curl -X POST 'https://api.us.webagent.lookover.ai/v1/sessions' \ -H 'Content-Type: application/json' \ -d '{}'{ "id": "string", "tenantId": "string", "projectId": "string", "homeRegion": "us", "executionRegion": "us", "status": "starting", "engine": "chromium", "browser": "chromium", "engineRef": { "id": "string", "version": "string", "name": "string" }, "pool": "shared", "createdAt": "2019-08-24T14:15:22Z", "endedAt": "2019-08-24T14:15:22Z", "endReason": "closed", "title": "string", "queue": { "position": 1, "etaSeconds": 0, "reason": "vpc_full", "queuedAt": "2019-08-24T14:15:22Z", "expiresAt": "2019-08-24T14:15:22Z" }, "token": "string", "tokenExpiresAt": "2019-08-24T14:15:22Z", "endpoints": { "http": "http://example.com", "cdp": "http://example.com", "bidi": "http://example.com", "playwright": "http://example.com", "live": "http://example.com" }}Get a session record (with endpoints while it is starting, live or paused)
AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
id*string^sess_(us|in)_[0-9a-z]{24}$OK
application/json- response
id*string^sess_(us|in)_[0-9a-z]{24}$tenantId*string^ten_(us|in)_[0-9a-z]{24}$projectId*string^prj_(us|in)_[0-9a-z]{24}$homeRegion*string"us""in"executionRegion*string"us""in"status*string"starting""live""paused""ended""lost"engine*string"chromium""firefox""webkit"browser?string"chromium""firefox""webkit"engineRef?pool*string"shared""job""isolated""dedicated"createdAt*string^(?:(?:\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))$date-timeendedAt?string^(?:(?:\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))$date-timeendReason?string"closed""idle_timeout""max_duration""runner_lost""error""memory_limit""capacity_timeout"title?stringlength <= 300queue?endpoints?startedBy?|||||curl -X GET 'https://api.us.webagent.lookover.ai/v1/sessions/string'{ "id": "string", "tenantId": "string", "projectId": "string", "homeRegion": "us", "executionRegion": "us", "status": "starting", "engine": "chromium", "browser": "chromium", "engineRef": { "id": "string", "version": "string", "name": "string" }, "pool": "shared", "createdAt": "2019-08-24T14:15:22Z", "endedAt": "2019-08-24T14:15:22Z", "endReason": "closed", "title": "string", "queue": { "position": 1, "etaSeconds": 0, "reason": "vpc_full", "queuedAt": "2019-08-24T14:15:22Z", "expiresAt": "2019-08-24T14:15:22Z" }, "endpoints": { "http": "http://example.com", "cdp": "http://example.com", "bidi": "http://example.com", "playwright": "http://example.com", "live": "http://example.com" }, "startedBy": { "kind": "key", "id": "string", "name": "string" }}Rename a session ({ title }, 1..120 characters, trimmed). Any member who can see it; a title set this way is never replaced by an automatic one
AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
id*string^sess_(us|in)_[0-9a-z]{24}$application/json- body
title*string1 <= length <= 120OK
application/json- response
id*string^sess_(us|in)_[0-9a-z]{24}$tenantId*string^ten_(us|in)_[0-9a-z]{24}$projectId*string^prj_(us|in)_[0-9a-z]{24}$homeRegion*string"us""in"executionRegion*string"us""in"status*string"starting""live""paused""ended""lost"engine*string"chromium""firefox""webkit"browser?string"chromium""firefox""webkit"engineRef?pool*string"shared""job""isolated""dedicated"createdAt*string^(?:(?:\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))$date-timeendedAt?string^(?:(?:\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))$date-timeendReason?string"closed""idle_timeout""max_duration""runner_lost""error""memory_limit""capacity_timeout"title?stringlength <= 300queue?endpoints?startedBy?|||||curl -X PATCH 'https://api.us.webagent.lookover.ai/v1/sessions/string' \ -H 'Content-Type: application/json' \ -d '{ "title": "string"}'{ "id": "string", "tenantId": "string", "projectId": "string", "homeRegion": "us", "executionRegion": "us", "status": "starting", "engine": "chromium", "browser": "chromium", "engineRef": { "id": "string", "version": "string", "name": "string" }, "pool": "shared", "createdAt": "2019-08-24T14:15:22Z", "endedAt": "2019-08-24T14:15:22Z", "endReason": "closed", "title": "string", "queue": { "position": 1, "etaSeconds": 0, "reason": "vpc_full", "queuedAt": "2019-08-24T14:15:22Z", "expiresAt": "2019-08-24T14:15:22Z" }, "endpoints": { "http": "http://example.com", "cdp": "http://example.com", "bidi": "http://example.com", "playwright": "http://example.com", "live": "http://example.com" }, "startedBy": { "kind": "key", "id": "string", "name": "string" }}AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
id*string^sess_(us|in)_[0-9a-z]{24}$OK
application/json- response
deleted*booleanclosed*booleancurl -X DELETE 'https://api.us.webagent.lookover.ai/v1/sessions/string'{ "deleted": true, "closed": true}AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
id*string^sess_(us|in)_[0-9a-z]{24}$after?integer0 <= value <= 90071992547409910limit?integer1 <= value <= 1000200OK
application/json- response
events*array<>next?integer0 <= value <= 9007199254740991curl -X GET 'https://api.us.webagent.lookover.ai/v1/sessions/string/logs'{ "events": [ { "at": 0, "sessionId": "string", "type": "timeline", "level": "string", "tabId": "string", "url": "string", "text": "string", "data": { "property1": null, "property2": null }, "truncated": true, "property1": null, "property2": null } ], "next": 0}AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
id*string^sess_(us|in)_[0-9a-z]{24}$Redirect to a short-lived URL of the log
curl -X GET 'https://api.us.webagent.lookover.ai/v1/sessions/string/logs.ndjson'AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
id*string^sess_(us|in)_[0-9a-z]{24}$Redirect to a short-lived URL of the recording
curl -X GET 'https://api.us.webagent.lookover.ai/v1/sessions/string/recording'AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
id*string^sess_(us|in)_[0-9a-z]{24}$Redirect to a short-lived URL of the thumbnail
curl -X GET 'https://api.us.webagent.lookover.ai/v1/sessions/string/recording/thumbnail'A signed share link to the live view or the recording (empty body: live, view only, 1 h)
AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
id*string^sess_(us|in)_[0-9a-z]{24}$application/json- body
kind?string"live""live""replay"interactive?booleanfalsettlSeconds?integer60 <= value <= 6048003600OK
application/json- response
url*stringuriexpiresAt*string^(?:(?:\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))$date-timecurl -X POST 'https://api.us.webagent.lookover.ai/v1/sessions/string/share' \ -H 'Content-Type: application/json' \ -d '{}'{ "url": "http://example.com", "expiresAt": "2019-08-24T14:15:22Z"}Revoke every share link issued so far for the session; links made afterwards work (same role as creating one)
AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
id*string^sess_(us|in)_[0-9a-z]{24}$OK
application/json- response
sessionId*string^sess_(us|in)_[0-9a-z]{24}$revokedAt*string^(?:(?:\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))$date-timecurl -X DELETE 'https://api.us.webagent.lookover.ai/v1/sessions/string/share'{ "sessionId": "string", "revokedAt": "2019-08-24T14:15:22Z"}AuthorizationBearer <token>An API key (wa_<region>_…) or a dashboard access token.
id*string^sess_(us|in)_[0-9a-z]{24}$OK
application/json- response
token*stringtokenExpiresAt*string^(?:(?:\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))$date-timecurl -X POST 'https://api.us.webagent.lookover.ai/v1/sessions/string/token'{ "token": "string", "tokenExpiresAt": "2019-08-24T14:15:22Z"}Open a share link (no API key): live socket + share token, or the recording URL
token*string1 <= lengthOK
application/json- response
kind*stringsessionId*string^sess_(us|in)_[0-9a-z]{24}$interactive*booleanexpiresAt*string^(?:(?:\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))$date-timelive*stringuritoken*stringtokenExpiresAt*string^(?:(?:\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))$date-timecurl -X GET 'https://api.us.webagent.lookover.ai/v1/share/string'{ "kind": "live", "sessionId": "string", "interactive": true, "expiresAt": "2019-08-24T14:15:22Z", "live": "http://example.com", "token": "string", "tokenExpiresAt": "2019-08-24T14:15:22Z"}