---
title: "Web push opt-in (WS7) — no double opt-in loop"
method: POST
path: "/api/v1/subscribe/push"
tags: ["subscribe"]
---

# Web push opt-in (WS7) — no double opt-in loop

`POST /api/v1/subscribe/push`

## Request

- Base URL: `https://api.vikenda.com`
- URL: `https://api.vikenda.com/api/v1/subscribe/push`
- Auth: none declared

## Request body

- PushSubscribeBody: Web push opt-in: the browser permission prompt is itself the explicit consent action, so (unlike email) this confirms immediately — no double opt-in loop.
  - `subscription` object, required
    - `endpoint` string, uri, required
    - `keys` object, required
      - `p256dh` string, required
      - `auth` string, required
  - `interests` string[]
  - `area` string

## Response `201`

Push subscription active.

- SubscribeResult
  - `status` 'pending' | 'already_subscribed', required
  - `message` string, required

## Other responses

- `400`: Invalid input.

---

[API](https://skmtc.dev/vikenda/apis/vikenda-api.md) · [All operations](https://skmtc.dev/vikenda/apis/vikenda-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vikenda/apis/vikenda-api/revisions/3e7cef720d95?raw)
