---
title: "Get Task Version"
method: GET
path: "/v2/tasks/{task_id}/versions/{version_id}"
tags: ["tasks"]
---

# Get Task Version

`GET /v2/tasks/{task_id}/versions/{version_id}`

## Request

- Base URL: `https://api.hud.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.hud.ai/v2/tasks/{task_id}/versions/{version_id}`
- Auth: none declared

Task plus one of its versions, by version id.

## Path parameters

- `task_id` string, uuid, required
- `version_id` string, uuid, required

## Response `200`

Successful Response

- TaskWithVersionResponse
  - `task` TaskResponse, required
    - `id` string, uuid, required
    - `taskset_id` string, uuid, required
    - `name` string, required
    - `description` string, nullable
    - `latest_version_id` string, uuid, nullable
    - `external_id` string, nullable
    - `column_values` object
    - `binarized` boolean
    - `tags` string[]
    - `assignee_user_id` string, uuid, nullable
    - `activity_log` TaskActivityEvent[]
      - `event` string, required
      - `at` string, required
      - `by` string, uuid, nullable
      - `by_name` string, nullable
      - `by_avatar_url` string, nullable
      - `by_role` string, nullable
      - `key` string, nullable
      - `done` boolean, nullable
      - `summary` string, nullable
      - `version` integer, nullable
    - `created_at` string, date-time, required
  - `version` TaskVersionResponse, required
    - `id` string, uuid, required
    - `task_id` string, uuid, required
    - `scenario_id` string, uuid, nullable
    - `build_id` string, uuid, nullable
    - `scenario_name` string, nullable
    - `version` integer, required
    - `validation` object[], nullable
    - `scenario_args` object
    - `system_prompt` string, nullable
    - `agent_config` object
    - `metadata` object
    - `status` string
    - `current_state` 'draft' | 'pending' | 'ready' | 'verified' | 'revision' | 'rejected': Canonical task workflow state. Lives in the kernel so both the DB layer (orm.py pg enum) and the decision core (tasks.state) depend downward on it.
    - `lifecycle_stage` string, nullable
    - `brief` TaskBrief: The persisted shape of ``task_versions.brief``. Drafts are no longer authored; the brief-archive worker is the only remaining writer.
      - `prompt` string, required
      - `attachments` StoredAttachment[]
        - `name` string, required
        - `upload_url` string, required
        - `size` integer, nullable
        - `content_type` string, nullable
        - `status` 'staged' | 'archived' | 'failed'
        - `storage_url` string, nullable
        - `error` string, nullable
        - `archived_at` string, date-time, nullable
    - `internally_reviewed_at` string, date-time, nullable
    - `internally_reviewed_by` string, uuid, nullable
    - `previous_review_decision` 'draft' | 'pending' | 'ready' | 'verified' | 'revision' | 'rejected': Canonical task workflow state. Lives in the kernel so both the DB layer (orm.py pg enum) and the decision core (tasks.state) depend downward on it.
    - `previous_review_decision_version_number` integer, nullable
    - `revision_requested_at` string, date-time, nullable
    - `scenario` TaskScenarioBrief
      - `id` string, uuid, required
      - `name` string, required
      - `description` string, nullable
      - `registry_id` string, uuid, required
      - `build_id` string, uuid, required
      - `sdk_generation` string, nullable
      - `arguments` ScenarioArgument[]
        - `name` string, required
        - `required` boolean
        - `description` string, nullable
        - `type` string, nullable
        - `default` unknown
        - `inputSchema` object, nullable
      - `registry_display_name` string, nullable
      - `build_version` integer, nullable
      - `has_workspace` boolean
    - `environment` TaskEnvironmentBrief: Environment holding the build a task version targets.
      - `id` string, uuid, required
      - `name` string, required
      - `build_version` integer, nullable
      - `origin` ExternalOrigin: Where an imported entity comes from: a system and the entity's id in it.
        - `system` 'harbor', required: A system HUD imports environments and runs from.
        - `external_id` string, required
      - `source_access` 'team' | 'published', nullable
    - `created_at` string, date-time, required

## Other responses

- `400`: Invalid or malformed request
- `401`: Missing or invalid credentials
- `403`: Caller may not access this resource
- `404`: Referenced entity does not exist
- `409`: Resource already exists
- `422`: Validation Error
- `429`: Rate limit exceeded; wait at least Retry-After seconds
- `503`: The server is at capacity; retry after Retry-After seconds

## Changes

- **2026-10-15** `504ec05509c7`: 1 info
  - added the optional property `version/environment/anyOf[subschema #1: TaskEnvironmentBrief]/source_access` to the response with the `200` status
- **2026-10-12** `362fe814734d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/hud/apis/hud-platform/changes/v2/tasks/:task_id/versions/:version_id/get.md)

---

[API](https://skmtc.dev/hud/apis/hud-platform.md) - [All operations](https://skmtc.dev/hud/apis/hud-platform/llms.txt) - [OpenAPI document](https://skmtc.dev/hud/apis/hud-platform/revisions/d642039f5fa6?raw)
