Create Session
Authentication
Personal API Key (apk_user_) or Service API Key (apk_)
Path parameters
Organization ID (prefix: org-)
Query parameters
Request
When true, skip safe-mode approval prompts for this session.
Create the session on behalf of another user (requires enterprise admin).
Override the Devin agent mode for the session. 'normal' is the default agent mode (fast and good at long-horizon planning). 'fast' is ~2x faster, 4x more expensive, same intelligence. Fast mode is subject to the same feature flag and enterprise agent preview restrictions as the web app.
Maximum ACU (AI Compute Unit) budget for this session.
Override the VM platform for the session (e.g. 'windows'). When omitted (or set to 'inherit'), a session created by a parent Devin inherits the parent's platform; otherwise the organization default is used. Pass 'default' to force the organization default regardless of parent. Any other value must match a platform configured for your organization (case-insensitive); unrecognized values are rejected with a 400 whose error body lists the available platform labels for the org.
ID of a playbook to run when the session starts (prefix playbook-).
Inline secrets (key-value pairs) to inject for this session only.
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).
Optional human-readable title for the session.
Response
Unix timestamp (seconds) when the session was created.
Organization that owns this session (prefix org-).
Unique session identifier (prefix devin-).
Current lifecycle status: running, suspended, stopped, or blocked.
Unix timestamp (seconds) of the last session update.
The session's assigned use-case category, if categorisation has run. Only populated on get/list endpoints.
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.
Human-readable session title.