> ## Documentation Index
> Fetch the complete documentation index at: https://docs.useorgx.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a work item with its concurrency tokens

> Read one work item you own, together with the `concurrency` block that
`POST /work/{taskId}/complete` accepts.

### Echo the token unmodified
`version_token` is an opaque, workspace- and task-bound value. Send it back exactly as
received; do not parse or reformat it. Timestamp and aggregate-version fields from the
earlier response shape remain available for migrating clients.

### Scope
Work is owner-scoped inside a workspace. An id you cannot read is reported the same way an
id that was never issued is.



## OpenAPI

````yaml /openapi/v1.yaml get /work/{taskId}
openapi: 3.1.0
info:
  title: OrgX REST API v1
  version: '1'
  description: >-
    Build accountable work into your product with OrgX REST API v1.


    Create work with one field, attach evidence when it is complete, and keep
    the receipt. Every authenticated request is scoped to the workspace resolved
    from your credential.


    Start with `POST /work`. Human guide:
    https://docs.useorgx.com/docs/api/quickstart
  contact:
    name: OrgX Support
    url: https://useorgx.com/support
    email: support@useorgx.com
  license:
    name: Proprietary
    url: https://useorgx.com/terms
servers:
  - url: https://useorgx.com/api/v1
    description: Production
security: []
tags:
  - name: Work
    description: Create accountable work and complete it with evidence
  - name: Initiatives
    description: Organize related work around an outcome
  - name: Operating processes
    description: Evidence-backed company workflow/process lifecycle
  - name: Operating map
    description: Derived, rebuildable Operating Map projection over the process ledger
  - name: Discovery runs
    description: Wizard and deep-search workflow discovery over connected company sources
  - name: Handoffs
    description: Ledger-backed stage handoffs between operating-process stages
  - name: Events
    description: Replayable, workspace-scoped accepted ledger events
  - name: Projections
    description: Workspace-scoped, rebuildable read projections over OrgX sources
  - name: Episodes
    description: Mission-compatible Episode read adapters
  - name: Receipt validation
    description: Account-free Agent Work Receipt schema discovery and conformance
  - name: Receipt import
    description: Authenticated, workspace-scoped import into the hosted receipt ledger
  - name: Workload diagnosis
    description: >-
      Account-free evaluation of time, agents, systems, authority, and
      accountability boundaries
  - name: Content Studio
    description: >-
      Estimate, showcase, checkout, and payment event operations for Content
      Studio
  - name: Decisions
    description: Raise decisions for human ruling and read their state
  - name: Artifacts
    description: Register produced work against the entity it belongs to
  - name: Launches
    description: Preview and run an initiative launch through its spend gates
  - name: Runs
    description: Control agent runs with pause, resume, cancel, and rollback
  - name: Lifecycle
    description: Pause, resume, retry, or cancel work hierarchy nodes and runs
  - name: Deduplication
    description: Claim durable event fingerprints so duplicate triggers fire once
  - name: Credential
    description: >-
      Resolve the calling credential, the workspaces it reaches, and what it may
      do
  - name: API discovery
    description: Account-free error codes, request schemas, and closed vocabularies for v1
externalDocs:
  description: Human-readable OrgX REST API v1 reference
  url: https://docs.useorgx.com/docs/api/public-api
paths:
  /work/{taskId}:
    get:
      tags:
        - Work
      summary: Get a work item with its concurrency tokens
      description: >-
        Read one work item you own, together with the `concurrency` block that

        `POST /work/{taskId}/complete` accepts.


        ### Echo the token unmodified

        `version_token` is an opaque, workspace- and task-bound value. Send it
        back exactly as

        received; do not parse or reformat it. Timestamp and aggregate-version
        fields from the

        earlier response shape remain available for migrating clients.


        ### Scope

        Work is owner-scoped inside a workspace. An id you cannot read is
        reported the same way an

        id that was never issued is.
      operationId: getWorkTask
      parameters:
        - name: taskId
          in: path
          required: true
          description: Work item to read
          schema:
            type: string
            format: uuid
        - $ref: '#/components/parameters/WorkspaceIdQuery'
      responses:
        '200':
          description: The work item and the tokens its completion requires
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkTaskDetailResponse'
              example:
                data:
                  id: 7fbb727d-17c4-4bc7-9fc7-60eb15e9314d
                  title: Review the launch plan
                  description: null
                  status: todo
                  priority: medium
                  due_date: null
                  initiative_id: 4b014796-6b1e-4a4f-9a35-2b6a4d1c8a10
                  workstream_id: 9c1f2e77-3c58-4a1e-9d0b-6a2f8e4b1c33
                  milestone_id: null
                  sequence: 1
                  metadata: {}
                  created_at: '2026-08-19T14:00:00.000Z'
                  updated_at: '2026-08-19T14:02:11.442Z'
                  concurrency:
                    version_token: >-
                      v1.eyJ3IjoiNWJlMTA3NmQtOGZkMC00YzBmLTg0N2YtZmQ2N2ZkYjkzNWU4IiwidCI6IjdmYmI3MjdkLTE3YzQtNGJjNy05ZmM3LTYwZWIxNWU5MzE0ZCIsInUiOiIyMDI2LTA4LTE5VDE0OjAyOjExLjQ0MjM5MSswMDowMCIsImEiOjN9.rM2gM5aF7Dva467l_-U_LGzrOyWRJIkpXciZ1NORUH4
                    expected_updated_at: '2026-08-19T14:02:11.442Z'
                    expected_aggregate_version: 3
                meta:
                  apiVersion: '1'
                  workspaceId: 5be1076d-8fd0-4c0f-847f-fd67fdb935e8
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      security:
        - bearerAuth: []
        - cookieAuth: []
components:
  parameters:
    WorkspaceIdQuery:
      name: workspace_id
      in: query
      required: true
      schema:
        type: string
        format: uuid
  schemas:
    WorkTaskDetailResponse:
      type: object
      required:
        - data
        - meta
      properties:
        data:
          $ref: '#/components/schemas/WorkTaskDetail'
        meta:
          type: object
          properties:
            apiVersion:
              type: string
            workspaceId:
              type: string
              format: uuid
    WorkTaskDetail:
      allOf:
        - $ref: '#/components/schemas/WorkTask'
        - type: object
          required:
            - concurrency
          properties:
            concurrency:
              $ref: '#/components/schemas/WorkTaskConcurrency'
    ApiError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            details:
              type: object
            requestId:
              type: string
            timestamp:
              type: string
              format: date-time
            docsUrl:
              type: string
              format: uri
            retryAfter:
              type: integer
              description: Seconds until rate limit resets
    WorkTask:
      type: object
      description: A work item you own inside a workspace.
      required:
        - id
        - title
        - status
        - initiative_id
        - workstream_id
        - created_at
        - updated_at
      properties:
        id:
          type: string
          format: uuid
        title:
          type: string
        description:
          type:
            - string
            - 'null'
        status:
          type:
            - string
            - 'null'
          enum:
            - todo
            - in_progress
            - done
            - blocked
            - null
        priority:
          type:
            - string
            - 'null'
        due_date:
          type:
            - string
            - 'null'
          format: date
        initiative_id:
          type: string
          format: uuid
        workstream_id:
          type: string
          format: uuid
        milestone_id:
          type:
            - string
            - 'null'
          format: uuid
        sequence:
          type:
            - integer
            - 'null'
        metadata:
          type: object
          additionalProperties: true
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
          description: >-
            Microsecond-precision instant of the last change. Compared for exact
            equality on completion, so echo it unchanged.
    WorkTaskConcurrency:
      type: object
      description: >-
        The signed value POST /work/{taskId}/complete accepts. Echo
        version_token exactly as returned; the legacy fields remain available
        during the v1 compatibility window.
      required:
        - version_token
        - expected_updated_at
        - expected_aggregate_version
      properties:
        version_token:
          type: string
          description: >-
            Opaque, workspace- and task-bound concurrency proof. Do not parse,
            reformat, or combine it with a token from another task.
        expected_updated_at:
          type: string
          format: date-time
          description: >-
            Send as the request's expected_updated_at. Preserve every digit;
            reformatting the string makes completion conflict permanently.
        expected_aggregate_version:
          type: integer
          minimum: 0
          description: >-
            Send as the request's expected_aggregate_version. Zero when the work
            has no accepted events yet.
  responses:
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    NotFound:
      description: Resource is unavailable to the caller
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ServiceUnavailable:
      description: Ledger or workspace authorization is unavailable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'OrgX API key, sent as `Authorization: Bearer oxk_...`'
    cookieAuth:
      type: apiKey
      in: cookie
      name: __session
      description: Session cookie from web authentication

````