---
title: "Read a check job (job_ or tjb_ ID) or a verification batch (cvb_ ID) as a REST task: taskId, status, ttl, createdAt, lastUpdatedAt, pollInterval, statusMessage and the underlying record in result"
method: GET
path: "/v1/tasks/{taskId}"
---

# Read a check job (job_ or tjb_ ID) or a verification batch (cvb_ ID) as a REST task: taskId, status, ttl, createdAt, lastUpdatedAt, pollInterval, statusMessage and the underlying record in result

`GET /v1/tasks/{taskId}`

## Request

- Base URL: `https://app.agentlinkops.com`
- URL: `https://app.agentlinkops.com/v1/tasks/{taskId}`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Read a check job (job_ or tjb_ ID) or a verification batch (cvb_ ID) as a REST task: taskId, status, ttl, createdAt, lastUpdatedAt, pollInterval, statusMessage and the underlying record in result. ttl and pollInterval use milliseconds. This GET returns the record directly; MCP task methods use their negotiated wire envelopes. Reading tasks requires watches:read; verification batches also require discovery:read. It starts no provider work.

## Path parameters

- `taskId` string, required

## Headers

- `X-Workspace-ID` string

## Response `200`

Read a check job (job_ or tjb_ ID) or a verification batch (cvb_ ID) as a REST task: taskId, status, ttl, createdAt, lastUpdatedAt, pollInterval, statusMessage and the underlying record in result. ttl and pollInterval use milliseconds. This GET returns the record directly; MCP task methods use their negotiated wire envelopes. Reading tasks requires watches:read; verification batches also require discovery:read. It starts no provider work.

- TaskResult
  - `taskId` string, required
  - `status` 'working' | 'completed' | 'failed' | 'cancelled', required
  - `ttl` integer, required: Task TTL advertised by the server, in milliseconds.
  - `createdAt` string, required
  - `lastUpdatedAt` string, required
  - `pollInterval` integer, required: Suggested polling interval in milliseconds.
  - `statusMessage` string, required
  - `result` union, required
    - GetCheckJobOutput
      - `id` string, required: Resource identifier returned by the operation.
      - `state` 'queued' | 'running' | 'succeeded' | 'failed' | 'cancelled', required: Saved lifecycle or evidence state, as enumerated for this record.
      - `workspace_id` string, required: Workspace that owns this record.
      - `project_id` string, required: Project that owns this record.
      - `watch_id` string
      - `target_id` string
      - `type` string
      - `execution_mode` string
      - `idempotency_key` string, required: Caller retry identifier, bound to the original request arguments.
      - `payload_hash` string, required
      - `attempt_count` number, required
      - `max_attempts` number, required
      - `lease_token` string, nullable, required
      - `lease_expires_at` string, nullable, required
      - `error_code` string, nullable, required: Latest delivery detail code; null when no failure or retry has been recorded.
      - `error_message` string, nullable
      - `created_at` string, required: UTC timestamp when the record was created.
      - `updated_at` string, required: UTC timestamp of the last record update.
      - `completed_at` string, nullable, required
      - `replayed` boolean: True when the response reuses an earlier request with the same idempotency value.
      - `usage` object, nullable
        - `units` number, required
        - `state` string, required: Saved lifecycle or evidence state, as enumerated for this record.
        - `period` string, required
    - GetCandidateVerificationBatchOutput
      - `schema_version` 1, required
      - `id` string, required: Resource identifier returned by the operation.
      - `workspace_id` string, required: Workspace that owns this record.
      - `project_id` string, required: Project that owns this record.
      - `run_id` string, required
      - `state` 'pending' | 'completed' | 'partial' | 'failed', required: Saved lifecycle or evidence state, as enumerated for this record.
      - `counts` object, required
        - `rejected` integer, required
        - `queued` integer, required
        - `running` integer, required
        - `succeeded` integer, required
        - `failed` integer, required
        - `cancelled` integer, required
      - `items` object[], required: Records in this bounded page.
        - `ordinal` integer, required
        - `candidate_id` string, required
        - `local_reference` string, nullable, required: Customer reference for joining this record to a local ledger entry.
        - `job_id` string, nullable, required
        - `watch_id` string, nullable, required
        - `state` 'rejected' | 'queued' | 'running' | 'succeeded' | 'failed' | 'cancelled', required: Saved lifecycle or evidence state, as enumerated for this record.
        - `error_code` string, nullable, required: Latest delivery detail code; null when no failure or retry has been recorded.
        - `observation` object, nullable, required
          - `id` string, required: Resource identifier returned by the operation.
          - `state` string, required: Saved lifecycle or evidence state, as enumerated for this record.
          - `reason` string, nullable, required: Recorded explanation; null when no explanation applies.
          - `checked_at` string, required: UTC timestamp of the saved check.
        - `usage` object, nullable, required
          - `unit` 'source_check', required
          - `units` number, required
          - `state` string, required: Saved lifecycle or evidence state, as enumerated for this record.
          - `period` string
      - `reservation` object, nullable, required
        - `units` integer, required
        - `outstanding` integer, required
        - `consumed` integer, required
        - `released` integer, required
        - `period` string, required
      - `replayed` boolean: True when the response reuses an earlier request with the same idempotency value.
      - `recurring_monitoring_created` false, required: Whether this operation enrolled recurring monitoring.
      - `created_at` string, required: UTC timestamp when the record was created.

## Other responses

- `429`: Request-rate or usage refusal. Inspect error.code and recovery details before retrying.
- `default`: Error envelope. Non-configuration 5xx messages are masked and details omitted; allowlisted configuration errors retain static operator recovery.

---

[API](https://skmtc.dev/agentlinkops/apis/agentlinkops-http-api.md) · [All operations](https://skmtc.dev/agentlinkops/apis/agentlinkops-http-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agentlinkops/apis/agentlinkops-http-api/revisions/1bf30c2912b2?raw)
