---
title: "Subscribe to a channel — webhook on every new video"
method: POST
path: "/v1/watch"
---

# Subscribe to a channel — webhook on every new video

`POST /v1/watch`

## Request

- Base URL: `https://framefetch.net`
- URL: `https://framefetch.net/v1/watch`
- Auth: HTTP bearer

Subscribe to a creator/channel URL on a supported platform. FrameFetch polls the channel on a schedule and POSTs a new_video event (see the new_video webhook) to your webhook_url for each new upload — no polling on your side. The webhook_url is SSRF-hardened at creation and re-validated before every delivery (must be a public https URL; localhost, loopback, private/RFC1918, link-local and cloud-metadata addresses are rejected). Subscribing does not backfill the existing catalogue — you only receive videos posted after you subscribe. Up to 50 active subscriptions per account. Creating/listing/deleting a subscription is never billed — but each SUCCESSFULLY delivered new_video webhook costs $0.0001 per delivered notification, charged once per delivery. If the account balance is at or below zero when a new video is found, the subscription is paused (active:false) rather than deleted or left to accrue debt — no further webhooks fire until you top up and re-enable it (top-up alone does not auto-resume a paused subscription).

## Request body

- WatchRequest
  - `channel` string, uri, required: Creator/channel URL on a supported platform (e.g. https://www.youtube.com/@creator).
  - `webhook_url` string, uri, required: Public https URL that receives new_video events. SSRF-hardened: private/loopback/link-local/metadata addresses are rejected.

## Response `200`

Subscription created

- object
  - `subscription` Subscription
    - `id` string
    - `platform` string
    - `channel` string
    - `webhook_url` string
    - `last_seen_video_id` string, nullable
    - `active` boolean
    - `created_at` string: ISO-8601 timestamp

## Other responses

- `400`: Error envelope
- `401`: Error envelope
- `429`: Error envelope

---

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