---
title: "Subscribe to webhooks"
method: POST
path: "/v1/webhook_subscription"
tags: ["Webhooks"]
---

# Subscribe to webhooks

`POST /v1/webhook_subscription`

## Request

- Base URL: `https://api.slant.app`
- URL: `https://api.slant.app/v1/webhook_subscription`
- Auth: HTTP bearer

Enrolls the OAuth app for all books the authenticated user can currently access. Repeated calls return the same subscription. No request body is required. Enrollment is independent of access-token expiration.

## Response `201`

subscribed

- object
  - `id` string, required
  - `user_id` string, required
  - `created_at` string, date-time, required

## Other responses

- `400`: Bad Request - malformed JSON, invalid filters, or missing required book context
- `401`: missing OAuth token
- `403`: Access denied. Policy and membership failures may have an empty body. A read-only personal token cannot perform writes.
- `429`: An hourly API rate limit was exceeded. Wait Retry-After seconds before retrying.

## Changes

- **2026-11-03** `173c41bf6be9`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/slant/apis/slant-public-api-v1/changes/v1/webhook_subscription/post.md)

---

[API](https://skmtc.dev/slant/apis/slant-public-api-v1.md) - [All operations](https://skmtc.dev/slant/apis/slant-public-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/slant/apis/slant-public-api-v1/revisions/173c41bf6be9?raw)
