Create Session
Create a new session
Permissions
Requires a service user with theManageOrgSessions permission at the organization level.
Additional permissions for advanced features
Devin mode
Thedevin_mode parameter controls which Devin agent mode is used for the session:
User impersonation
Thecreate_as_user_id parameter allows creating a session on behalf of another user. This requires:
- The service user must have
ImpersonateOrgSessionspermission - The target user must be a member of the organization
- The target user must have
UseDevinSessionspermission
Authorizations
Service User credential (prefix: cog_)
Path Parameters
Organization ID (prefix: org-)
"org-abc123def456"
Query Parameters
Body
1 - 2083Override 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.
normal, fast, lite, ultra, fusion 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
new, claimed, running, exit, error, suspended, resuming The session's assigned use-case category, if categorisation has run. Only populated on get/list endpoints.
bug_fixing, ci_cd_and_devops, code_quality_and_security, code_review, code_review_and_analysis, data_and_automation, documentation_and_content, feature_development, migrations_and_upgrades, other, production_investigation, refactoring_and_optimization, research_and_exploration, security, unit_test_generation The origin from which the session was created.
webapp, slack, teams, api, linear, jira, automation, cli, desktop, code_scan, other 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.
working, waiting_for_user, waiting_for_approval, finished, 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, error 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.

