---
title: "Get session details"
method: GET
path: "/v3/enterprise/sessions/{devin_id}"
tags: ["sessions"]
---

# Get session details

`GET /v3/enterprise/sessions/{devin_id}`

Get details of a specific session.

## Path parameters

- `devin_id` string, nullable, required

## Query parameters

- `org_id` string, nullable

## Response `200`

Successful Response

- SessionResponse
  - `acus_consumed` number, required
  - `category` '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', nullable — The session's assigned use-case category, if categorisation has run. Only populated on get/list endpoints.
  - `child_session_ids` string[], nullable
  - `created_at` integer, required
  - `is_archived` boolean
  - `org_id` string, required
  - `origin` 'webapp' | 'slack' | 'teams' | 'api' | 'linear' | 'jira' | 'automation' | 'cli' | 'desktop' | 'code_scan' | 'other', nullable — The origin from which the session was created.
  - `parent_session_id` string, nullable
  - `playbook_id` string, nullable
  - `pull_requests` SessionPullRequest[], required
    - `pr_state` string, nullable, required
    - `pr_url` string, required
  - `service_user_id` string, nullable
  - `session_id` string, required
  - `status` 'new' | 'claimed' | 'running' | 'exit' | 'error' | 'suspended' | 'resuming', required
  - `status_detail` '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', nullable — 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.
  - `structured_output` object, nullable — Validated structured output from the session. Only populated on get/list endpoints.
  - `subcategory` string, nullable — 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.
  - `tags` string[], required
  - `title` string, nullable
  - `updated_at` integer, required
  - `url` string, required
  - `user_id` string, nullable

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `422` — Unprocessable Content
- `429` — Too Many Requests

---

[API](https://skmtc.net/devin/apis/devin-api-v1.md) · [All operations](https://skmtc.net/devin/apis/devin-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/devin/devin-api-v1/versions/e3244476af1c/schema)
