---
title: "Get A2A v0.3 task"
method: GET
path: "/v2/agents/{agent_key}/v1/tasks/{task_id}"
tags: ["A2A Protocol"]
---

# Get A2A v0.3 task

`GET /v2/agents/{agent_key}/v1/tasks/{task_id}`

Returns the current state of an A2A task, including its status, conversation history, and any produced artifacts.

## Path parameters

- `agent_key` string, required — A unique key that identifies an agent.
- `task_id` string, required

## Query parameters

- `historyLength` integer

## Headers

- `Request-Timeout` integer
- `Request-Timeout-Millis` integer

## Response `200`

The current state of the task.

- A2aV03Task — A v0.3 unit of work executed by the agent on behalf of a user.
  - `id` string, required — Unique identifier of the task.
  - `contextId` string — Identifier of the conversation context the task belongs to.
  - `status` A2aV03TaskStatus, required — Current status of a v0.3 task.
    - `state` 'TASK_STATE_UNSPECIFIED' | 'TASK_STATE_SUBMITTED' | 'TASK_STATE_WORKING' | 'TASK_STATE_COMPLETED' | 'TASK_STATE_FAILED' | 'TASK_STATE_CANCELLED' | 'TASK_STATE_INPUT_REQUIRED' | 'TASK_STATE_REJECTED' | 'TASK_STATE_AUTH_REQUIRED', required — The A2A v0.3 task lifecycle state. `TASK_STATE_CANCELLED` uses the UK spelling, as defined in the A2A v0.3 specification.
    - `message` A2aV03Message — A v0.3 unit of communication between client and agent. The `content` field carries the message parts.
      - `messageId` string, required — Unique identifier for this message, set by the sender.
      - `contextId` string, nullable — Identifier of the conversation context this message belongs to.
      - `taskId` string, nullable — Identifier of the task this message is associated with.
      - `role` 'ROLE_UNSPECIFIED' | 'ROLE_USER' | 'ROLE_AGENT', required — The sender role in an A2A v0.3 message.
      - `content` A2aV03Part[], required — Message content parts.
        - `text` string, nullable — Plain-text content.
        - `file` A2aV03FilePart — A v0.3 file attachment. Exactly one of `fileWithUri` or `fileWithBytes` is populated.
          - `fileWithUri` string, nullable — URI to the file's content.
          - `fileWithBytes` string, byte, nullable — Inline base64-encoded file bytes.
          - `mimeType` string, nullable — Media type of the file content.
        - `data` A2aV03DataPart — A v0.3 structured-data part. The `data` field is an arbitrary JSON object.
          - `data` object, required — Arbitrary structured JSON object payload.
      - `metadata` object, nullable — Arbitrary sender-supplied metadata.
      - `extensions` string[], nullable — URIs of A2A extensions this message activates.
    - `timestamp` string, date-time, nullable — ISO 8601 timestamp of the transition into this state.
  - `artifacts` A2aV03Artifact[], nullable — Artifacts produced by the task.
    - `artifactId` string, required — Unique identifier for this artifact, stable across appended updates.
    - `name` string, nullable — Human-readable name of the artifact.
    - `description` string, nullable — Human-readable description of the artifact's contents.
    - `parts` A2aV03Part[], required — The content parts that make up this artifact.
      - `text` string, nullable — Plain-text content.
      - `file` A2aV03FilePart — A v0.3 file attachment. Exactly one of `fileWithUri` or `fileWithBytes` is populated.
        - `fileWithUri` string, nullable — URI to the file's content.
        - `fileWithBytes` string, byte, nullable — Inline base64-encoded file bytes.
        - `mimeType` string, nullable — Media type of the file content.
      - `data` A2aV03DataPart — A v0.3 structured-data part. The `data` field is an arbitrary JSON object.
        - `data` object, required — Arbitrary structured JSON object payload.
    - `metadata` object, nullable — Arbitrary agent-supplied metadata for the artifact.
    - `extensions` string[], nullable — URIs of A2A extensions associated with this artifact.
  - `history` A2aV03Message[], nullable — Conversation messages exchanged during the task.
    - `messageId` string, required — Unique identifier for this message, set by the sender.
    - `contextId` string, nullable — Identifier of the conversation context this message belongs to.
    - `taskId` string, nullable — Identifier of the task this message is associated with.
    - `role` 'ROLE_UNSPECIFIED' | 'ROLE_USER' | 'ROLE_AGENT', required — The sender role in an A2A v0.3 message.
    - `content` A2aV03Part[], required — Message content parts.
      - `text` string, nullable — Plain-text content.
      - `file` A2aV03FilePart — A v0.3 file attachment. Exactly one of `fileWithUri` or `fileWithBytes` is populated.
        - `fileWithUri` string, nullable — URI to the file's content.
        - `fileWithBytes` string, byte, nullable — Inline base64-encoded file bytes.
        - `mimeType` string, nullable — Media type of the file content.
      - `data` A2aV03DataPart — A v0.3 structured-data part. The `data` field is an arbitrary JSON object.
        - `data` object, required — Arbitrary structured JSON object payload.
    - `metadata` object, nullable — Arbitrary sender-supplied metadata.
    - `extensions` string[], nullable — URIs of A2A extensions this message activates.
  - `metadata` object, nullable — Arbitrary agent-supplied metadata for the task.

## Other responses

- `404` — Task not found.

---

[API](https://skmtc.dev/vectara/apis/vectara-rest-api-v2.md) · [All operations](https://skmtc.dev/vectara/apis/vectara-rest-api-v2/llms.txt) · [OpenAPI document](https://skmtc.dev/vectara/apis/vectara-rest-api-v2/revisions/752e8c2abc3e?raw)
