Server-side filtering over the workspace’s session history, newest
first. deviceId and status are exact single-value matches; the
filter parameters (statuses, statusMode,
nameContains, deviceContains, createdBefore, createdAfter)
are applied server-side so the result stays correct across
limit/offset pages.
GET
/
v1
/
sessions
List sessions
curl --request GET \ --url https://api.lusor.ai/v1/sessions \ --header 'X-Api-Key: <api-key>'
Workspace the request is scoped to. Optional for API keys: a key is
bound to one workspace when it is created, and naming any other
workspace returns an opaque 404.
Comma-separated list of DB statuses, included or excluded per
statusMode. Entries outside the known vocabulary (queued,
running, executing, awaiting_human, completed,
complete, cancelled, failed) are dropped silently — an
unrecognised spelling filters nothing rather than failing the
request.
Case-insensitive substring matched against the user-set name OR
the first prompt. Both columns are tested on every request — the
prompt is a second match source, not only a fallback for a
session with no name set. The value is sanitized before it is
matched: ,, (, ) and " are replaced with spaces, because
those characters are reserved by the filter expression the term
is embedded in — so foo,bar matches foo bar, not a stored
foo,bar. A term consisting only of substituted characters
sanitizes to empty, and the filter is then skipped: the listing
is returned unfiltered rather than as an empty result.
Exclusive upper bound on created_at, as a UTC instant with an
uppercase Z suffix. Seconds and fractional seconds are
optional, matching the handler (2026-09-13T12:00Z,
2026-09-13T12:00:00Z, 2026-09-13T12:00:00.5Z). A numeric
offset such as +02:00 — valid RFC 3339, but rejected by the
handler — and any other malformed value are a 400. The pattern
cannot express month lengths, so a nonexistent calendar date such
as 2026-02-29T12:00:00Z still matches it even though the handler
rejects that request; no other keyword on this parameter rejects
it either.
Inclusive lower bound on created_at, as a UTC instant with an
uppercase Z suffix. Seconds and fractional seconds are
optional, matching the handler (2026-09-13T12:00Z,
2026-09-13T12:00:00Z, 2026-09-13T12:00:00.5Z). A numeric
offset such as +02:00 — valid RFC 3339, but rejected by the
handler — and any other malformed value are a 400. The pattern
cannot express month lengths, so a nonexistent calendar date such
as 2026-02-29T12:00:00Z still matches it even though the handler
rejects that request; no other keyword on this parameter rejects
it either.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Lusor","description":"Run AI agents on real phones, or drive a phone directly, with the Lusor API.","colors":{"primary":"#111111","light":"#FAFAFA","dark":"#111111"},"logo":{"light":"https://mintcdn.com/lusor-ai/Ifu_dlUtLbDafp0r/images/lusor-logo-lightmode@2x.png?fit=max\u0026auto=format\u0026n=Ifu_dlUtLbDafp0r\u0026q=85\u0026s=977cb89acbdf111277711fe79f404fd5","dark":"https://mintcdn.com/lusor-ai/s7jsDGcgmdq30-2k/images/lusor-logo-darkmode@2x.png?fit=max\u0026auto=format\u0026n=s7jsDGcgmdq30-2k\u0026q=85\u0026s=1a44f07d6684fb79a9ae4d593a5b924d","href":"https://lusor.ai"},"favicon":"https://mintcdn.com/lusor-ai/Plbn5wBfbIBBjl9c/favicon.png?fit=max\u0026auto=format\u0026n=Plbn5wBfbIBBjl9c\u0026q=85\u0026s=48f99be162e5dd4fe61028a9631f55f0","api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","javascript","python"]}},"navbar":{"links":[{"href":"https://lusor.ai/pricing","label":"Pricing"}],"primary":{"type":"button","label":"Open Lusor","href":"https://app.lusor.ai"}},"footer":{"socials":{"website":"https://lusor.ai"}},"icons":{"library":"fontawesome"},"contextual":{"options":["assistant","copy","view","download-spec","chatgpt","claude"],"display":"header"},"interaction":{"drilldown":false},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lusor-ai","hasAudioNarration":false,"actualSubdomain":"lusor-ai","customDomains":["docs.lusor.ai"],"gitSource":{"type":"github","owner":"lusor-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6af3665a77bbd85befb3aca1","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"API reference","count":92},{"language":"default","tag":"Endpoints","count":91},{"language":"default","tag":"Developers","count":26},{"language":"default","tag":"Devices","count":22},{"language":"default","tag":"Sessions","count":17},{"language":"default","tag":"Phones","count":13},{"language":"default","tag":"DeviceVerbs","count":12},{"language":"default","tag":"Help Center","count":11},{"language":"default","tag":"Agents","count":11},{"language":"default","tag":"Agents \u0026 sessions","count":9}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/sessions/list-sessions","slug":"/api-reference/sessions/list-sessions","pageMetadata":{"title":"List sessions","description":"Server-side filtering over the workspace's session history, newest\nfirst. `deviceId` and `status` are exact single-value matches; the\nfilter parameters (`statuses`, `statusMode`,\n`nameContains`, `deviceContains`, `createdBefore`, `createdAfter`)\nare applied server-side so the result stays correct across\n`limit`/`offset` pages.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions","href":"/api-reference/sessions/list-sessions","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Server-side filtering over the workspace’s session history, newest\\nfirst. \", _jsx(_components.code, {\n children: \"deviceId\"\n }), \" and \", _jsx(_components.code, {\n children: \"status\"\n }), \" are exact single-value matches; the\\nfilter parameters (\", _jsx(_components.code, {\n children: \"statuses\"\n }), \", \", _jsx(_components.code, {\n children: \"statusMode\"\n }), \",\\n\", _jsx(_components.code, {\n children: \"nameContains\"\n }), \", \", _jsx(_components.code, {\n children: \"deviceContains\"\n }), \", \", _jsx(_components.code, {\n children: \"createdBefore\"\n }), \", \", _jsx(_components.code, {\n children: \"createdAfter\"\n }), \")\\nare applied server-side so the result stays correct across\\n\", _jsx(_components.code, {\n children: \"limit\"\n }), \"/\", _jsx(_components.code, {\n children: \"offset\"\n }), \" pages.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"List sessions","description":"Server-side filtering over the workspace's session history, newest\nfirst. `deviceId` and `status` are exact single-value matches; the\nfilter parameters (`statuses`, `statusMode`,\n`nameContains`, `deviceContains`, `createdBefore`, `createdAfter`)\nare applied server-side so the result stays correct across\n`limit`/`offset` pages.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions","href":"/api-reference/sessions/list-sessions","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"listSessions","summary":"List sessions","description":"Server-side filtering over the workspace's session history, newest\nfirst. `deviceId` and `status` are exact single-value matches; the\nfilter parameters (`statuses`, `statusMode`,\n`nameContains`, `deviceContains`, `createdBefore`, `createdAfter`)\nare applied server-side so the result stays correct across\n`limit`/`offset` pages.\n","tags":["Sessions"],"parameters":["12b037ec-9d29-41c5-aae2-979f4c7434c3","502cab57-2b06-4574-96a9-945c6ced397e","dcb0dd9e-feb3-430c-82fe-263bd37a504b","95c5dece-46ee-4ab3-a25c-080b6dfa1f45","a352fc42-d1fe-40e9-88b0-e930a158f96d","5555adb9-c17f-4ee6-93b6-90f613cb8e5a","c0e2581f-396a-4ab6-8bcf-b9e1e91704da","e3c17989-e66e-42cf-90c8-59654398eb27","5b289111-d101-4150-8009-697761b7c695","6218fa3a-8db4-4a02-8891-bff1769a7a9a","a83db643-ddb1-42e4-9bbc-4d3cff90dc9e"],"responses":{"200":"07b0e5a2-31ea-4b71-ab3d-85f11616782e","400":"6395abea-eb1f-487f-b851-f2004041b1ee"},"method":"get","type":"path","servers":["67414a81-b86b-4d15-b96f-3a390c272e81"],"security":["e990c9c7-7adf-4c43-a478-c17a739371f3","a66fdb89-a491-49fa-b34f-5bf4ba59f929"],"path":"/v1/sessions","baseUrlOptions":["https://api.lusor.ai"],"title":"List sessions","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"12b037ec-9d29-41c5-aae2-979f4c7434c3":{"name":"workspaceId","in":"query","required":false,"schema":{"type":"string","format":"uuid","isRequired":false,"description":"Workspace the request is scoped to. Optional for API keys: a key is\nbound to one workspace when it is created, and naming any other\nworkspace returns an opaque 404.\n","uniqueKey":"","typeLabel":"string\u003cuuid>"},"description":"Workspace the request is scoped to. Optional for API keys: a key is\nbound to one workspace when it is created, and naming any other\nworkspace returns an opaque 404.\n"},"502cab57-2b06-4574-96a9-945c6ced397e":{"name":"deviceId","in":"query","description":"Exact device id match.","schema":{"type":"string","minLength":1,"description":"Exact device id match.","uniqueKey":"","typeLabel":"string"}},"dcb0dd9e-feb3-430c-82fe-263bd37a504b":{"name":"status","in":"query","description":"Exact single-status match, applied verbatim (not filtered to\nthe known vocabulary). Use `statuses` for a multi-status\ninclude/exclude filter.\n","schema":{"type":"string","minLength":1,"description":"Exact single-status match, applied verbatim (not filtered to\nthe known vocabulary). Use `statuses` for a multi-status\ninclude/exclude filter.\n","uniqueKey":"","typeLabel":"string"}},"95c5dece-46ee-4ab3-a25c-080b6dfa1f45":{"name":"statuses","in":"query","description":"Comma-separated list of DB statuses, included or excluded per\n`statusMode`. Entries outside the known vocabulary (`queued`,\n`running`, `executing`, `awaiting_human`, `completed`,\n`complete`, `cancelled`, `failed`) are dropped silently — an\nunrecognised spelling filters nothing rather than failing the\nrequest.\n","schema":{"type":"string","minLength":1,"description":"Comma-separated list of DB statuses, included or excluded per\n`statusMode`. Entries outside the known vocabulary (`queued`,\n`running`, `executing`, `awaiting_human`, `completed`,\n`complete`, `cancelled`, `failed`) are dropped silently — an\nunrecognised spelling filters nothing rather than failing the\nrequest.\n","uniqueKey":"","typeLabel":"string"}},"a352fc42-d1fe-40e9-88b0-e930a158f96d":{"name":"statusMode","in":"query","description":"Applies to `statuses` only. `include` = \"is\" / \"is any of\";\n`exclude` = \"is not\" / \"is not any of\".\n","schema":{"type":"string","enum":["include","exclude"],"default":"include","description":"Applies to `statuses` only. `include` = \"is\" / \"is any of\";\n`exclude` = \"is not\" / \"is not any of\".\n","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"5555adb9-c17f-4ee6-93b6-90f613cb8e5a":{"name":"nameContains","in":"query","description":"Case-insensitive substring matched against the user-set name OR\nthe first prompt. Both columns are tested on every request — the\nprompt is a second match source, not only a fallback for a\nsession with no name set. The value is sanitized before it is\nmatched: `,`, `(`, `)` and `\"` are replaced with spaces, because\nthose characters are reserved by the filter expression the term\nis embedded in — so `foo,bar` matches `foo bar`, not a stored\n`foo,bar`. A term consisting only of substituted characters\nsanitizes to empty, and the filter is then skipped: the listing\nis returned unfiltered rather than as an empty result.\n","schema":{"type":"string","minLength":1,"maxLength":200,"description":"Case-insensitive substring matched against the user-set name OR\nthe first prompt. Both columns are tested on every request — the\nprompt is a second match source, not only a fallback for a\nsession with no name set. The value is sanitized before it is\nmatched: `,`, `(`, `)` and `\"` are replaced with spaces, because\nthose characters are reserved by the filter expression the term\nis embedded in — so `foo,bar` matches `foo bar`, not a stored\n`foo,bar`. A term consisting only of substituted characters\nsanitizes to empty, and the filter is then skipped: the listing\nis returned unfiltered rather than as an empty result.\n","uniqueKey":"","typeLabel":"string"}},"c0e2581f-396a-4ab6-8bcf-b9e1e91704da":{"name":"deviceContains","in":"query","description":"Case-insensitive substring over the device name OR its id.\n","schema":{"type":"string","minLength":1,"maxLength":200,"description":"Case-insensitive substring over the device name OR its id.\n","uniqueKey":"","typeLabel":"string"}},"e3c17989-e66e-42cf-90c8-59654398eb27":{"name":"createdBefore","in":"query","description":"Exclusive upper bound on `created_at`, as a UTC instant with an\nuppercase `Z` suffix. Seconds and fractional seconds are\noptional, matching the handler (`2026-09-13T12:00Z`,\n`2026-09-13T12:00:00Z`, `2026-09-13T12:00:00.5Z`). A numeric\noffset such as `+02:00` — valid RFC 3339, but rejected by the\nhandler — and any other malformed value are a 400. The `pattern`\ncannot express month lengths, so a nonexistent calendar date such\nas `2026-02-29T12:00:00Z` still matches it even though the handler\nrejects that request; no other keyword on this parameter rejects\nit either.\n","schema":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])T([01]\\d|2[0-3]):[0-5]\\d(:[0-5]\\d(\\.\\d+)?)?Z$","description":"Exclusive upper bound on `created_at`, as a UTC instant with an\nuppercase `Z` suffix. Seconds and fractional seconds are\noptional, matching the handler (`2026-09-13T12:00Z`,\n`2026-09-13T12:00:00Z`, `2026-09-13T12:00:00.5Z`). A numeric\noffset such as `+02:00` — valid RFC 3339, but rejected by the\nhandler — and any other malformed value are a 400. The `pattern`\ncannot express month lengths, so a nonexistent calendar date such\nas `2026-02-29T12:00:00Z` still matches it even though the handler\nrejects that request; no other keyword on this parameter rejects\nit either.\n","uniqueKey":"","typeLabel":"string"}},"5b289111-d101-4150-8009-697761b7c695":{"name":"createdAfter","in":"query","description":"Inclusive lower bound on `created_at`, as a UTC instant with an\nuppercase `Z` suffix. Seconds and fractional seconds are\noptional, matching the handler (`2026-09-13T12:00Z`,\n`2026-09-13T12:00:00Z`, `2026-09-13T12:00:00.5Z`). A numeric\noffset such as `+02:00` — valid RFC 3339, but rejected by the\nhandler — and any other malformed value are a 400. The `pattern`\ncannot express month lengths, so a nonexistent calendar date such\nas `2026-02-29T12:00:00Z` still matches it even though the handler\nrejects that request; no other keyword on this parameter rejects\nit either.\n","schema":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])T([01]\\d|2[0-3]):[0-5]\\d(:[0-5]\\d(\\.\\d+)?)?Z$","description":"Inclusive lower bound on `created_at`, as a UTC instant with an\nuppercase `Z` suffix. Seconds and fractional seconds are\noptional, matching the handler (`2026-09-13T12:00Z`,\n`2026-09-13T12:00:00Z`, `2026-09-13T12:00:00.5Z`). A numeric\noffset such as `+02:00` — valid RFC 3339, but rejected by the\nhandler — and any other malformed value are a 400. The `pattern`\ncannot express month lengths, so a nonexistent calendar date such\nas `2026-02-29T12:00:00Z` still matches it even though the handler\nrejects that request; no other keyword on this parameter rejects\nit either.\n","uniqueKey":"","typeLabel":"string"}},"6218fa3a-8db4-4a02-8891-bff1769a7a9a":{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50,"uniqueKey":"","typeLabel":"integer"}},"a83db643-ddb1-42e4-9bbc-4d3cff90dc9e":{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0,"uniqueKey":"","typeLabel":"integer"}}},"responses":{"07b0e5a2-31ea-4b71-ab3d-85f11616782e":{"description":"Session list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","required":["id","prompt","status","createdAt"],"properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"data.items.[INDEX].id","typeLabel":"string"},"prompt":{"type":"string","isRequired":true,"uniqueKey":"data.items.[INDEX].prompt","typeLabel":"string"},"status":{"type":"string","enum":["queued","running","executing","awaiting_human","complete","completed","failed","cancelled"],"isRequired":true,"uniqueKey":"data.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"createdAt":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.items.[INDEX].createdAt","typeLabel":"string\u003cdate-time>"},"deviceId":{"oneOf":[{"type":"string","uniqueKey":"data.items.[INDEX].deviceId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.items.[INDEX].deviceId.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].deviceId","typeLabel":"string | null"},"workspaceId":{"oneOf":[{"type":"string","format":"uuid","uniqueKey":"data.items.[INDEX].workspaceId.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","uniqueKey":"data.items.[INDEX].workspaceId.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].workspaceId","typeLabel":"string\u003cuuid> | null"},"app":{"oneOf":[{"type":"string","uniqueKey":"data.items.[INDEX].app.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.items.[INDEX].app.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].app","typeLabel":"string | null"},"outputSchema":{"oneOf":[{"type":"object","additionalProperties":true,"uniqueKey":"data.items.[INDEX].outputSchema.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"uniqueKey":"data.items.[INDEX].outputSchema.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].outputSchema","typeLabel":"object | null"},"output":{"oneOf":[{"type":"object","description":"Structured output. Populated when `status == completed`. Shape\nis caller-defined via `outputSchema` on session create.\n","additionalProperties":true,"uniqueKey":"data.items.[INDEX].output.oneOf.0","typeLabel":"object"},{"type":"array","items":{"oneOf":[{}],"uniqueKey":"data.items.[INDEX].output.oneOf.1.items.[INDEX]","typeLabel":"any"},"description":"Structured output. Populated when `status == completed`. Shape\nis caller-defined via `outputSchema` on session create.\n","uniqueKey":"data.items.[INDEX].output.oneOf.1","typeLabel":"any[]"},{"type":"null","description":"Structured output. Populated when `status == completed`. Shape\nis caller-defined via `outputSchema` on session create.\n","uniqueKey":"data.items.[INDEX].output.oneOf.2","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].output","typeLabel":"object | any[] | null"},"error":{"oneOf":[{"type":"string","description":"Machine-readable failure code when `status == failed`. Known\ncode: `secret_required:\u003cname>` - a run created with an API key\nneeded a credential or 2FA code (`\u003cname>` is the agent's slug for\nit, for example `gmail_password`) that it was not given. The run\nends immediately rather than waiting for a human. Save the secret\nin the workspace, then retry the run naming it in `secrets`\n(`\u003citem_slug>.\u003cfield>`). Dashboard runs never\nfail this way: they pause in `awaiting_human` and are answered in\nthe dashboard. Known code: `credits_exhausted` - the run's model\ncost reached the workspace's credit balance at the time the run\nstarted, so it stopped; upgrade the plan or buy a credit pack,\nthen continue the session.\n","uniqueKey":"data.items.[INDEX].error.oneOf.0","typeLabel":"string"},{"type":"null","description":"Machine-readable failure code when `status == failed`. Known\ncode: `secret_required:\u003cname>` - a run created with an API key\nneeded a credential or 2FA code (`\u003cname>` is the agent's slug for\nit, for example `gmail_password`) that it was not given. The run\nends immediately rather than waiting for a human. Save the secret\nin the workspace, then retry the run naming it in `secrets`\n(`\u003citem_slug>.\u003cfield>`). Dashboard runs never\nfail this way: they pause in `awaiting_human` and are answered in\nthe dashboard. Known code: `credits_exhausted` - the run's model\ncost reached the workspace's credit balance at the time the run\nstarted, so it stopped; upgrade the plan or buy a credit pack,\nthen continue the session.\n","uniqueKey":"data.items.[INDEX].error.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].error","typeLabel":"string | null"},"startedAt":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"data.items.[INDEX].startedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"data.items.[INDEX].startedAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].startedAt","typeLabel":"string\u003cdate-time> | null"},"completedAt":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"data.items.[INDEX].completedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"data.items.[INDEX].completedAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].completedAt","typeLabel":"string\u003cdate-time> | null"},"maxDurationSecs":{"oneOf":[{"type":"integer","format":"int64","description":"Effective per-session duration cap in seconds as persisted by the API at session creation. Null means a historical row has no persisted cap; consumers must not infer the current default from null.","uniqueKey":"data.items.[INDEX].maxDurationSecs.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","description":"Effective per-session duration cap in seconds as persisted by the API at session creation. Null means a historical row has no persisted cap; consumers must not infer the current default from null.","uniqueKey":"data.items.[INDEX].maxDurationSecs.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].maxDurationSecs","typeLabel":"integer\u003cint64> | null"}},"uniqueKey":"data.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data","typeLabel":"object[]"}},"required":["data"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":[{"id":"\u003cstring>","prompt":"\u003cstring>","status":"queued","createdAt":"2023-11-07T05:31:56Z","deviceId":"\u003cstring>","workspaceId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","app":"\u003cstring>","outputSchema":{},"output":{},"error":"\u003cstring>","startedAt":"2023-11-07T05:31:56Z","completedAt":"2023-11-07T05:31:56Z","maxDurationSecs":123}]}}},"exampleType":"generated"}},"exampleType":"generated"},"6395abea-eb1f-487f-b851-f2004041b1ee":{"description":"Either no workspace context could be resolved from the query\nstring or the API key binding — returned as `{ error, message }`;\nor a query parameter failed validation — returned as\n`{ error, details }`.\n","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.message","typeLabel":"string"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["error","details"],"properties":{"error":{"type":"string","example":"validation_error","isRequired":true,"uniqueKey":"oneOf.1.error","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"isRequired":true,"uniqueKey":"oneOf.1.details","typeLabel":"object"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"e990c9c7-7adf-4c43-a478-c17a739371f3":{"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"Workspace API key, created in the dashboard under Settings → API Keys.","scopes":[],"schemeName":"ApiKey"}},"a66fdb89-a491-49fa-b34f-5bf4ba59f929":{"BearerAuth":{"type":"http","scheme":"bearer","description":"The same workspace API key, sent as `Authorization: Bearer \u003cyour API key>`.","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"67414a81-b86b-4d15-b96f-3a390c272e81":{"url":"https://api.lusor.ai","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"Workspace API key, created in the dashboard under Settings → API Keys.","scopes":[],"schemeName":"ApiKey"},"schema":{"title":"X-Api-Key","type":"string","description":"Workspace API key, created in the dashboard under Settings → API Keys.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKey","name":"X-Api-Key"}],"title":"ApiKey"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"The same workspace API key, sent as `Authorization: Bearer \u003cyour API key>`.","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"The same workspace API key, sent as `Authorization: Bearer \u003cyour API key>`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"lusor-ai","siteName":"Lusor","title":"List sessions - Lusor","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-10T18:45:52.214Z","originalFileLocation":"api-reference/sessions/list-sessions.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Server-side filtering over the workspace\u0026#x27;s session history, newest first. deviceId and status are exact single-value matches; the filter parameters (statuses, statusMode, nameContains, deviceContains, createdBefore, createdAfter) are applied server-side so the result stays correct across limit/offset pages.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Lusor\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lusor-ai/IpfY-Q6QPFVhWwzn/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/lusor-ai/IpfY-Q6QPFVhWwzn/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lusor-ai/IpfY-Q6QPFVhWwzn/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lusor-ai/IpfY-Q6QPFVhWwzn/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lusor-ai/IpfY-Q6QPFVhWwzn/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lusor-ai/IpfY-Q6QPFVhWwzn/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lusor-ai/IpfY-Q6QPFVhWwzn/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lusor-ai/IpfY-Q6QPFVhWwzn/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lusor-ai/IpfY-Q6QPFVhWwzn/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"List sessions - Lusor\">\u003cmeta data-mint-head property=\"og:description\" content=\"Server-side filtering over the workspace\u0026#x27;s session history, newest first. deviceId and status are exact single-value matches; the filter parameters (statuses, statusMode, nameContains, deviceContains, createdBefore, createdAfter) are applied server-side so the result stays correct across limit/offset pages.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Lusor\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.lusor.ai/api-reference/sessions/list-sessions\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://lusor-ai.mintlify.site/_mintlify/api/og/v2?division=Sessions\u0026amp;title=List+sessions\u0026amp;description=Server-side+filtering+over+the+workspace%27s+session+history%2C+newest%0Afirst.+%60deviceId%60+and+%60status%60+are+exact+single-value+matches%3B+the%0Afilter+parameters+%28%60status\u0026amp;theme=11044ab09cca21353c9d0db7\u0026amp;signature=096bfbe6ee6224310004435e9094c5d9e7bf42d93e81abdd8b0f072d9bb308a7\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"List sessions - Lusor\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Server-side filtering over the workspace\u0026#x27;s session history, newest first. deviceId and status are exact single-value matches; the filter parameters (statuses, statusMode, nameContains, deviceContains, createdBefore, createdAfter) are applied server-side so the result stays correct across limit/offset pages.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lusor-ai.mintlify.site/_mintlify/api/og/v2?division=Sessions\u0026amp;title=List+sessions\u0026amp;description=Server-side+filtering+over+the+workspace%27s+session+history%2C+newest%0Afirst.+%60deviceId%60+and+%60status%60+are+exact+single-value+matches%3B+the%0Afilter+parameters+%28%60status\u0026amp;theme=11044ab09cca21353c9d0db7\u0026amp;signature=096bfbe6ee6224310004435e9094c5d9e7bf42d93e81abdd8b0f072d9bb308a7\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/lusor-ai/IpfY-Q6QPFVhWwzn/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Lusor\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#111111\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.lusor.ai/api-reference/sessions/list-sessions\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/sessions/list-sessions.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.lusor.ai/#organization\",\"name\":\"Lusor\",\"url\":\"https://docs.lusor.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lusor-ai/Ifu_dlUtLbDafp0r/images/lusor-logo-lightmode@2x.png?fit=max\u0026auto=format\u0026n=Ifu_dlUtLbDafp0r\u0026q=85\u0026s=977cb89acbdf111277711fe79f404fd5\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.lusor.ai#website\",\"name\":\"Lusor\",\"url\":\"https://docs.lusor.ai\",\"publisher\":{\"@id\":\"https://docs.lusor.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.lusor.ai/api-reference/sessions/list-sessions#webpage\",\"url\":\"https://docs.lusor.ai/api-reference/sessions/list-sessions\",\"name\":\"List sessions\",\"description\":\"Server-side filtering over the workspace's session history, newest first. deviceId and status are exact single-value matches; the filter parameters (statuses, statusMode, nameContains, deviceContains, createdBefore, createdAfter) are applied server-side so the result stays correct across limit/offset pages.\",\"dateModified\":\"2026-11-10T18:45:52.214Z\",\"isPartOf\":{\"@id\":\"https://docs.lusor.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.lusor.ai/api-reference/sessions/list-sessions#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.lusor.ai/api-reference/sessions/list-sessions#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.lusor.ai/api-reference/sessions/get-session-detail\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sessions\",\"item\":\"https://docs.lusor.ai/api-reference/sessions/get-session-detail\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"List sessions\",\"item\":\"https://docs.lusor.ai/api-reference/sessions/list-sessions\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.lusor.ai/api-reference/sessions/list-sessions#apireference\",\"headline\":\"List sessions\",\"name\":\"List sessions\",\"description\":\"Server-side filtering over the workspace's session history, newest first. deviceId and status are exact single-value matches; the filter parameters (statuses, statusMode, nameContains, deviceContains, createdBefore, createdAfter) are applied server-side so the result stays correct across limit/offset pages.\",\"url\":\"https://docs.lusor.ai/api-reference/sessions/list-sessions\",\"mainEntityOfPage\":{\"@id\":\"https://docs.lusor.ai/api-reference/sessions/list-sessions#webpage\"},\"dateModified\":\"2026-11-10T18:45:52.214Z\",\"publisher\":{\"@id\":\"https://docs.lusor.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.lusor.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Lusor\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lusor\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/sessions/list-sessions.md","siteName":"Lusor","nav":{"global":null,"tabs":[{"tab":"Developers","pages":[{"title":"Developers","href":""}]},{"tab":"Help Center","pages":[{"title":"Help Center","href":"/help"}]},{"tab":"Build with AI","pages":[{"title":"Build with AI","href":"/connect"}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"API reference","href":"/api-reference/introduction"}]},{"group":"Endpoints","pages":[{"group":"Sessions","pages":[{"title":"Get session detail","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}","href":"/api-reference/sessions/get-session-detail"},{"title":"Rename a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/sessions/{id}","href":"/api-reference/sessions/rename-a-session"},{"title":"Get session events","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/events","href":"/api-reference/sessions/get-session-events"},{"title":"Get the detailed step breakdown (session JSON)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/breakdown","href":"/api-reference/sessions/get-the-detailed-step-breakdown-session-json"},{"title":"List sessions for device","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/sessions","href":"/api-reference/sessions/list-sessions-for-device"},{"title":"Create a new session on this device","description":"Starts an agent run on this phone without a persistent agent.\nReturns `202 Accepted { id, status: \"queued\" }` immediately; poll\n`GET /v1/sessions/{id}/status` or `GET /v1/sessions/{id}/events`\nfor progress.\n\nConcurrent same-device session create returns\n`429 { error: 'device_busy', currentSessionId }`.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/sessions","href":"/api-reference/sessions/create-a-new-session-on-this-device"},{"title":"List sessions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions","href":"/api-reference/sessions/list-sessions"},{"title":"Get session status (lightweight)","description":null,"deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/status","href":"/api-reference/sessions/get-session-status-lightweight"},{"title":"Get session artifacts (screenshots + ui-states + output)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/artifacts","href":"/api-reference/sessions/get-session-artifacts-screenshots-+-ui-states-+-output"},{"title":"Cancel a running session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/stop","href":"/api-reference/sessions/cancel-a-running-session"},{"title":"Get one captured UI state of a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/ui-states/{file}","href":"/api-reference/sessions/get-one-captured-ui-state-of-a-session"},{"title":"Cancel a queued follow-up or queued agent turn","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/sessions/{id}/queue/{invocationId}","href":"/api-reference/sessions/cancel-a-queued-follow-up-or-queued-agent-turn"},{"title":"Send a follow-up message to a session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/continue","href":"/api-reference/sessions/send-a-follow-up-message-to-a-session"},{"title":"Answer the agent's question (request_human)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/hitl","href":"/api-reference/sessions/answer-the-agents-question-request_human"},{"title":"Get the session's video recording","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/recording","href":"/api-reference/sessions/get-the-sessions-video-recording"},{"title":"Get the session's step-by-step replay","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/replay","href":"/api-reference/sessions/get-the-sessions-step-by-step-replay"},{"title":"Download one replay frame (PNG)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/replay/frame","href":"/api-reference/sessions/download-one-replay-frame-png"}]},{"group":"Skills","pages":[{"title":"List skills","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/skills","href":"/api-reference/skills/list-skills"},{"title":"Create a skill","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/skills","href":"/api-reference/skills/create-a-skill"},{"title":"Get a skill","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/skills/{id}","href":"/api-reference/skills/get-a-skill"},{"title":"Delete a skill","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/skills/{id}","href":"/api-reference/skills/delete-a-skill"},{"title":"Update a skill","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/skills/{id}","href":"/api-reference/skills/update-a-skill"}]},{"group":"Secrets","pages":[{"title":"List the secrets saved in a workspace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/vault","href":"/api-reference/secrets/list-the-secrets-saved-in-a-workspace"}]},{"group":"PhoneNumbers","pages":[{"title":"List workspace phone numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/numbers","href":"/api-reference/phonenumbers/list-workspace-phone-numbers"},{"title":"Get one workspace phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/numbers/{phoneNumberId}","href":"/api-reference/phonenumbers/get-one-workspace-phone-number"},{"title":"Page stored SMS messages for a workspace number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/numbers/{phoneNumberId}/messages","href":"/api-reference/phonenumbers/page-stored-sms-messages-for-a-workspace-number"}]},{"group":"Emails","pages":[{"title":"List the workspace's Agent Mail addresses","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/emails/addresses","href":"/api-reference/emails/list-the-workspaces-agent-mail-addresses"},{"title":"Page stored inbound mail for a workspace address","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/emails/messages","href":"/api-reference/emails/page-stored-inbound-mail-for-a-workspace-address"}]},{"group":"Devices","pages":[{"title":"List devices in the key's workspace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/devices","href":"/api-reference/devices/list-devices-in-the-keys-workspace"},{"title":"List devices in a workspace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices","href":"/api-reference/devices/list-devices-in-a-workspace"},{"title":"Preview deploying Lusor Phones","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/deploy/preview","href":"/api-reference/devices/preview-deploying-lusor-phones"},{"title":"Deploy the quoted Lusor Phones","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/deploy","href":"/api-reference/devices/deploy-the-quoted-lusor-phones"},{"title":"Preview removing a Lusor Phone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/remove/preview","href":"/api-reference/devices/preview-removing-a-lusor-phone"},{"title":"Remove a Lusor Phone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/remove","href":"/api-reference/devices/remove-a-lusor-phone"},{"title":"Get a Lusor Phone's location and timezone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/geo","href":"/api-reference/devices/get-a-lusor-phones-location-and-timezone"},{"title":"Set a Lusor Phone's location and timezone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v1/workspaces/{workspaceId}/devices/{deviceId}/geo","href":"/api-reference/devices/set-a-lusor-phones-location-and-timezone"},{"title":"Restore a Lusor Phone's automatic location","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/workspaces/{workspaceId}/devices/{deviceId}/geo","href":"/api-reference/devices/restore-a-lusor-phones-automatic-location"},{"title":"Get which agents are using, queued for, or attached to a phone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/occupancy","href":"/api-reference/devices/get-which-agents-are-using-queued-for-or-attached-to-a-phone"},{"title":"List the countries a Lusor Phone's Internet can exit from","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/internet/locations","href":"/api-reference/devices/list-the-countries-a-lusor-phones-internet-can-exit-from"},{"title":"Get a Lusor Phone's Internet exit country and route","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/internet-location","href":"/api-reference/devices/get-a-lusor-phones-internet-exit-country-and-route"},{"title":"Get a Lusor Phone's static IP status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/static-ip","href":"/api-reference/devices/get-a-lusor-phones-static-ip-status"},{"title":"Get a Lusor Phone's wipe-and-reset progress","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/reset","href":"/api-reference/devices/get-a-lusor-phones-wipe-and-reset-progress"},{"title":"Get device UI state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/state","href":"/api-reference/devices/get-device-ui-state"},{"title":"Get fresh device screenshot (binary PNG)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/screenshot","href":"/api-reference/devices/get-fresh-device-screenshot-binary-png"},{"title":"Get a Lusor Phone's language","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/language","href":"/api-reference/devices/get-a-lusor-phones-language"},{"title":"Set a Lusor Phone's language","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v1/workspaces/{workspaceId}/devices/{deviceId}/language","href":"/api-reference/devices/set-a-lusor-phones-language"},{"title":"Get a Lusor Phone's identity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/identity","href":"/api-reference/devices/get-a-lusor-phones-identity"},{"title":"Set a Lusor Phone's identity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /v1/workspaces/{workspaceId}/devices/{deviceId}/identity","href":"/api-reference/devices/set-a-lusor-phones-identity"},{"title":"Get a Lusor Phone's last advertising-ID reset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}/devices/{deviceId}/advertising-id","href":"/api-reference/devices/get-a-lusor-phones-last-advertising-id-reset"},{"title":"Reset a Lusor Phone's advertising ID","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/advertising-id/reset","href":"/api-reference/devices/reset-a-lusor-phones-advertising-id"}]},{"group":"DeviceVerbs","pages":[{"title":"Trigger screenshot (capture-aware verb)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/screenshot","href":"/api-reference/deviceverbs/trigger-screenshot-capture-aware-verb"},{"title":"Tap on device","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/tap","href":"/api-reference/deviceverbs/tap-on-device"},{"title":"Swipe gesture on device","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/swipe","href":"/api-reference/deviceverbs/swipe-gesture-on-device"},{"title":"Type text into focused field","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/type","href":"/api-reference/deviceverbs/type-text-into-focused-field"},{"title":"Press a key on device","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/key","href":"/api-reference/deviceverbs/press-a-key-on-device"},{"title":"Clear focused field","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/clear","href":"/api-reference/deviceverbs/clear-focused-field"},{"title":"Press Back key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/back","href":"/api-reference/deviceverbs/press-back-key"},{"title":"Press Home key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/home","href":"/api-reference/deviceverbs/press-home-key"},{"title":"Press Recent Apps key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/recent","href":"/api-reference/deviceverbs/press-recent-apps-key"},{"title":"Launch an app","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/apps/start","href":"/api-reference/deviceverbs/launch-an-app"},{"title":"Force-stop an app","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/apps/stop","href":"/api-reference/deviceverbs/force-stop-an-app"},{"title":"Run a chain of actions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/chain","href":"/api-reference/deviceverbs/run-a-chain-of-actions"}]},{"group":"Shell","pages":[{"title":"Run a restricted shell command","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/workspaces/{workspaceId}/devices/{deviceId}/shell","href":"/api-reference/shell/run-a-restricted-shell-command"}]},{"group":"LiveView","pages":[{"title":"Start a live view of the session's phone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/stream/start","href":"/api-reference/liveview/start-a-live-view-of-the-sessions-phone"},{"title":"Re-arm a live view","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/stream/connect","href":"/api-reference/liveview/re-arm-a-live-view"},{"title":"Extend a live view's liveness","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/stream/keepalive","href":"/api-reference/liveview/extend-a-live-views-liveness"},{"title":"Ask the phone for a fresh keyframe","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/stream/request_frame","href":"/api-reference/liveview/ask-the-phone-for-a-fresh-keyframe"},{"title":"Send a WebRTC answer or ICE candidate to the phone","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/stream/signal","href":"/api-reference/liveview/send-a-webrtc-answer-or-ice-candidate-to-the-phone"},{"title":"Stop a live view","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/stream/stop","href":"/api-reference/liveview/stop-a-live-view"},{"title":"Get the ICE servers for a live view","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/stream/ice-servers","href":"/api-reference/liveview/get-the-ice-servers-for-a-live-view"},{"title":"Receive the phone's WebRTC signaling (Server-Sent Events)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/sessions/{id}/stream/events","href":"/api-reference/liveview/receive-the-phones-webrtc-signaling-server-sent-events"}]},{"group":"Datasets","pages":[{"title":"Promote one session run's list to a Dataset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/sessions/{id}/datasets","href":"/api-reference/datasets/promote-one-session-runs-list-to-a-dataset"},{"title":"List Datasets visible to the caller","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/datasets","href":"/api-reference/datasets/list-datasets-visible-to-the-caller"},{"title":"Get a Dataset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/datasets/{id}","href":"/api-reference/datasets/get-a-dataset"},{"title":"Delete a Dataset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/datasets/{id}","href":"/api-reference/datasets/delete-a-dataset"},{"title":"Update a Dataset (rename and/or replace output)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/datasets/{id}","href":"/api-reference/datasets/update-a-dataset-rename-andor-replace-output"}]},{"group":"Agents","pages":[{"title":"List active agents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/agents","href":"/api-reference/agents/list-active-agents"},{"title":"Create an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/agents","href":"/api-reference/agents/create-an-agent"},{"title":"Get or create the workspace's primary agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/agents/primary","href":"/api-reference/agents/get-or-create-the-workspaces-primary-agent"},{"title":"List agents recoverable within the 30-day restore window","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/agents/trash","href":"/api-reference/agents/list-agents-recoverable-within-the-30-day-restore-window"},{"title":"Get an agent, attachments, and the newest page of turns","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/agents/{id}","href":"/api-reference/agents/get-an-agent-attachments-and-the-newest-page-of-turns"},{"title":"Archive an agent for 30 days","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /v1/agents/{id}","href":"/api-reference/agents/archive-an-agent-for-30-days"},{"title":"Update an agent and atomically replace its attachment set","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /v1/agents/{id}","href":"/api-reference/agents/update-an-agent-and-atomically-replace-its-attachment-set"},{"title":"Restore an archived agent within its 30-day window","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/agents/{id}/restore","href":"/api-reference/agents/restore-an-archived-agent-within-its-30-day-window"},{"title":"Read one older page of an agent's turn history","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/agents/{id}/turns","href":"/api-reference/agents/read-one-older-page-of-an-agents-turn-history"},{"title":"Submit a turn to an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/agents/{id}/turns","href":"/api-reference/agents/submit-a-turn-to-an-agent"},{"title":"Cancel a turn that is still waiting for its device","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /v1/agents/{id}/turns/{sessionId}/cancel","href":"/api-reference/agents/cancel-a-turn-that-is-still-waiting-for-its-device"}]},{"group":"Workspaces","pages":[{"title":"Get a workspace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/workspaces/{workspaceId}","href":"/api-reference/workspaces/get-a-workspace"}]},{"group":"Catalog","pages":[{"title":"List installable catalog apps","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/catalog/apps","href":"/api-reference/catalog/list-installable-catalog-apps"},{"title":"Get a catalog app's icon (binary image)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/catalog/apps/{package}/icon","href":"/api-reference/catalog/get-a-catalog-apps-icon-binary-image"}]},{"group":"Health","pages":[{"title":"Health check","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /v1/health","href":"/api-reference/health/health-check"}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"List sessions - Lusor","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-C9Wu0MeN.js","utils-jWgu-6Qf.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DBD8f9qn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BGuX1ui5.js","snippetPresets-Evy63nQB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-D6S0Yh6q.js","ApiExamples-BQHO1lnV.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-B6C8m-t_.js","shallow-BG4cT0fH.js","getApiPlaygroundDisplay-CgEPrE-D.js","CodeSnippet-CU8JyZ9N.js","CodeSnippets-BnxHU32T.js","getPastedJson-CwiYOonh.js","icon-DYDpWmDf.js","MethodPill-C-J-l7_c.js","DuplicateIcon-B6ARwg9w.js","createIcon-Dsv4MtDq.js","DynamicMarkdown-CtasenyM.js","SectionHeading-YNcgYwjB.js","axios-vUo_bRtp.js","Markdown-CwLx6PAg.js","clsx-C3kuh_dz.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CmKHfscc.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-U3mI6Ljh.js"]}