---
title: "achievement.unlocked webhook delivery"
method: POST
path: "achievement.unlocked"
---

# achievement.unlocked webhook delivery

`POST achievement.unlocked` (webhook)

Delivered to a registered endpoint when a achievement.unlocked event occurs.

## Payload

- object — Webhook envelope for achievement.unlocked.
  - `id` string, required — Stable delivery id, reused across retries (idempotency key).
  - `event` 'achievement.unlocked', required
  - `created_at` string, required — ISO-8601 timestamp the event was emitted.
  - `data` AchievementUnlockedPayload, required — A user unlocked an achievement.
    - `userId` string, required — TeamBattles document id.
    - `achievementId` string, required — TeamBattles document id.
    - `unlockedAt` number — Unix epoch milliseconds.

## Acknowledgement `200`

Acknowledged. Return 2xx to mark the delivery successful.

---

[API](https://skmtc.net/teambattles/apis/teambattles-api.md) · [All operations](https://skmtc.net/teambattles/apis/teambattles-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/teambattles/teambattles-api/revisions/2ffe8fb53b7d/schema)
