---
title: "Send a task's changes of state to a URL."
method: POST
path: "/v1/a2a/tasks/{taskId}/push-configs"
tags: ["a2a"]
---

# Send a task's changes of state to a URL.

`POST /v1/a2a/tasks/{taskId}/push-configs`

## Request

- Base URL: `https://api.50heads.com`
- URL: `https://api.50heads.com/v1/a2a/tasks/{taskId}/push-configs`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://auth.50heads.com/authorize`, token URL `https://auth.50heads.com/token`; client credentials, token URL `https://auth.50heads.com/token`, scopes: `webhooks:write`)

Also needs questions:read. https on a public host. Up to 5 configs on a task; the same `id` again replaces yours. Each push carries `Authorization: <scheme> <credentials>` when you set `authentication`, `X-A2A-Notification-Token: <token>`, and Standard Webhooks headers signed with the secret `whsec_` + base64(token), so you verify it with the token alone. `protocolVersion` 1.0 sends a StreamResponse with a statusUpdate (application/a2a+json); 0.3 sends the Task. Call GetTask (or GET /v2/questions/{id}/result) for the results.

## Path parameters

- `taskId` string, required

## Request body

- A2aPushConfigsCreateRequest
  - `id` string
  - `url` string, required
  - `token` string
  - `authentication` object
    - `scheme` string, required
    - `credentials` string
  - `protocolVersion` '1.0' | '0.3'

## Response `201`

OK

- A2aPushConfigsCreateResponse
  - `config` object, required
    - `id` string, required
    - `taskId` string, required
    - `contextId` string, required
    - `url` string, required
    - `token` string, required
    - `authentication` object, nullable, required
      - `scheme` string, required
    - `protocolVersion` '1.0' | '0.3', required
    - `createdAt` string, required

## Other responses

- `400`: The request is not valid; `error.details.validation` lists the fixes.
- `401`: No key or token, or it expired or was revoked.
- `403`: The key or token lacks the scope (`insufficient_scope`), or the action is not allowed.
- `404`: No such question, endpoint or delivery on this account.
- `429`: Too many requests; wait for Retry-After.

---

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