---
title: "Push Ack"
method: POST
path: "/api/push/ack"
tags: ["Notifications"]
---

# Push Ack

`POST /api/push/ack`

## Request

- Base URL: `https://api.agentstack.tech` (the document declares no server; this is the origin it was published from)
- URL: `https://api.agentstack.tech/api/push/ack`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

HMAC-signed notification actions from the service worker.

Auth is **only** ``signed_token`` (HMAC, short TTL in token). Service workers often
do not send the same session cookies as a top-level document ``fetch``, so requiring
``get_current_user_universal`` caused 401 on legitimate mark_read / reply / mute clicks.

## Headers

- `Idempotency-Key` string

## Request body

- PushAckBody
  - `type` 'reply' | 'mark_read' | 'mute_1h', required
  - `signed_token` string, required
  - `text` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `422`: Validation Error
- `429`: Too Many Requests
- `500`: Internal Server Error

---

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