---
title: "A2A JSON-RPC endpoint"
method: POST
path: "/a2a/rpc"
tags: ["a2a"]
---

# A2A JSON-RPC endpoint

`POST /a2a/rpc`

## Request

- Base URL: `https://api.zettoai.com`
- URL: `https://api.zettoai.com/a2a/rpc`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Agent-to-Agent protocol over JSON-RPC 2.0. `initialize`, `agent/discover` and `agent/ping` are unauthenticated; every other method needs an API key. `message/send`, `message/get` and `message/cancel` are accepted as aliases of the `tasks/*` methods, since the A2A spec renamed them and clients written against either spelling exist. An unknown method returns the supported list in `error.data.supported`.

## Request body

- object
  - `jsonrpc` '2.0', required
  - `method` 'initialize' | 'tasks/send' | 'tasks/get' | 'tasks/list' | 'tasks/cancel' | 'agent/discover' | 'agent/ping', required
  - `params` object
  - `id` union, required
    - string
    - number

## Response `200`

JSON-RPC response — check for `error` before `result`

- object
  - `jsonrpc` string
  - `result` object
  - `error` object
    - `code` integer
    - `message` string
    - `data` object
  - `id` union
    - string
    - number

---

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