# POST /v1/a2a/{deployment_id}

> A2A JSON-RPC: send a message, stream, get, list or cancel.

In [A2A API](https://vestra.ai/developers/reference/api/a2a.md): Each deployment as an agent other agents can call, over the A2A protocol.

Send `Authorization: Bearer vk_test_...` on every call.

A2A JSON-RPC: send a message, stream, get, list or cancel. Push notifications are not offered; subscribe to webhooks instead. An A2A exchange is a conversation; an A2A task is its work.

Your API key, scope `runtime` or `all`. On the card: [`mcp`](https://vestra.ai/developers/mcp.md). Over HTTP it is made from the contract: fill in each {…} and every value.

## Request

Path:

- `deployment_id` (`string`, required): The deployment's id (`dep_...`). The /v1/deployments routes also take its name.

Headers:

- `Vestra-User` (`string`): Your id for the user this call acts for.

## Answers 200

Its answer is a protocol of its own: its line's page says more.

## Code

**HTTP**

```bash
curl -X POST "$VESTRA_BASE_URL/v1/a2a/{deployment_id}" \
  -H "Authorization: Bearer $VESTRA_API_KEY"
```

**TypeScript, Python, CLI, MCP**: No sample in your language for this route, so here it is over HTTP.
