v1
latestOpenAPI 3.1.02026-07-26269227514.8 KBCreate Session
Create a new session
Path parameters
Organization ID (prefix: org-)
Query parameters
Request body
Override the Devin agent mode for the session. 'normal' uses the default Agent mode, 'fast' uses Fast mode, 'lite' uses Devin Lite, 'ultra' uses Devin Ultra, and 'fusion' uses Fusion. Preview modes are subject to the same feature flag and enterprise agent preview restrictions as the web app.
Override the VM platform for the session (e.g. 'windows'), or the name of an outpost (BYOB) pool to run the session on one of your own machines. When omitted (or set to 'inherit'), a session created by a parent Devin inherits the parent's placement — both its platform and its outpost pool, so an outpost-placed parent spawns children on the same pool; otherwise the organization default is used. Any value must match either a platform configured for your organization or an outpost pool name (case-insensitive) — built-in platforms take priority when a name matches both. Unrecognized values are rejected with a 400 whose error body lists the available platform labels and outpost pool names for the org.
Whether to preserve the session's VM state after it stops so the session can be resumed. Set to false for disposable sessions.
When true (default), the agent MUST call provide_structured_output with is_final=true before its turn ends. When false, the tool is available but not required — it is not guaranteed to be called in a given turn.
JSON Schema (Draft 7) for validating structured output. Max 64KB. Must be self-contained (no external $ref).
Response
Successful Response
The session's assigned use-case category, if categorisation has run. Only populated on get/list endpoints.
The origin from which the session was created.
Additional detail about the session's current status. When status is 'running': 'working' (actively working), 'waiting_for_user' (needs user input), 'waiting_for_approval' (awaiting action approval in safe mode), or 'finished' (task complete). When status is 'suspended': the reason for suspension such as 'inactivity', 'user_request', 'usage_limit_exceeded', 'out_of_credits', 'out_of_quota', 'no_quota_allocation', 'payment_declined', 'org_usage_limit_exceeded', 'total_session_limit_exceeded', or 'error'. Only populated on get/list endpoints.
Validated structured output from the session. Only populated on get/list endpoints.
The session's assigned subcategory display name. 'Other' when a category is set but no subcategory was assigned or resolved. Only populated on get/list endpoints.