---
title: "A2A (Agent2Agent protocol) JSON-RPC 2.0 endpoint — the URL the agent card names. message/send runs one of the card's skills (message.metadata.skill, or a data part {skill, input}; a text-only message is a plain-English rights question) and returns a completed Task whose artifact carries the structured result; tasks/get reads a stored task back (one made with an API key only for that key's account); every task is finished when message/send returns, so tasks/cancel answers not cancelable. The binding is A2A 0.3: A2A-Version 0.3 or none, any other version answers -32009. Streaming and push notifications are not offered (-32004, -32003). Errors are JSON-RPC error objects."
method: POST
path: "/a2a"
tags: ["Bridges"]
---

# A2A (Agent2Agent protocol) JSON-RPC 2.0 endpoint — the URL the agent card names. message/send runs one of the card's skills (message.metadata.skill, or a data part {skill, input}; a text-only message is a plain-English rights question) and returns a completed Task whose artifact carries the structured result; tasks/get reads a stored task back (one made with an API key only for that key's account); every task is finished when message/send returns, so tasks/cancel answers not cancelable. The binding is A2A 0.3: A2A-Version 0.3 or none, any other version answers -32009. Streaming and push notifications are not offered (-32004, -32003). Errors are JSON-RPC error objects.

`POST /a2a`

## Request

- Base URL: `https://www.rightshold.com`
- URL: `https://www.rightshold.com/a2a`
- Auth: one of:
  - none
  - HTTP bearer

## Headers

- `X-Request-Id` string

## Request body

- object
  - `jsonrpc` '2.0', required
  - `id` unknown, required
  - `method` 'message/send' | 'tasks/get' | 'tasks/cancel', required
  - `params` object: message/send: {message: {role: "user", messageId, parts, contextId?, metadata?}}; tasks/get and tasks/cancel: {id, historyLength?}

## Response `200`

JSON-RPC response: a Task in result, or an error object

- object: Inferred from 33 recorded responses; required fields appeared in every one; additional properties may appear.
  - `jsonrpc` string, required
  - `id` union, required
    - string
    - integer
  - `result` object
    - `id` string, required
    - `contextId` string, required
    - `kind` string, required
    - `status` object, required
      - `state` string, required
      - `message` object, required
        - `role` string, required
        - `messageId` string, required
        - `parts` object[], required
        - `contextId` string, required
        - `taskId` string, required
        - `kind` string, required
      - `timestamp` string, required
    - `artifacts` object[], required
      - `artifactId` string, required
      - `name` string, required
      - `parts` object[], required
    - `history` object[], required
      - `role` string, required
      - `messageId` string, required
      - `parts` object[], required
      - `contextId` string, required
      - `taskId` string, required
      - `kind` string, required
      - `metadata` object
    - `metadata` object, required
      - `skill` string, required
      - `tool` string, required
  - `error` object
    - `code` integer, required
    - `message` string, required
    - `data` union
      - object[]
        - `@type` string, required
        - `reason` string, required
        - `metadata` object, required
      - object
        - `skills` string[]
        - `task_id` string
        - `state` string

## Other responses

- `400`: Problem details: a stable error code, type URI, title, status and an explanation
- `401`: Problem details: a stable error code, type URI, title, status and an explanation
- `404`: Problem details: a stable error code, type URI, title, status and an explanation
- `405`: Problem details: a stable error code, type URI, title, status and an explanation
- `422`: Problem details: a stable error code, type URI, title, status and an explanation
- `429`: Request budget exhausted; retry after Retry-After seconds
- `500`: Problem details: a stable error code, type URI, title, status and an explanation

---

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