v1.2.0Minor
Subscriber API + subscription.end Webhook
What's New
- Added GET /api/developer/subscriptions/count — the authoritative, offline-safe count of your channel's active (non-expired) subscribers. Does not depend on who is currently online.
- Added GET /api/developer/subscriptions — a paginated roster of your active subscribers, each with userId, username, displayName, tier, isGift + gifter, and expiresAt, alongside the authoritative full-channel total (independent of the page window). Query params: page (1-based, default 1) and perPage (1–100, default 50).
- Both endpoints require the subscriptions:read scope (broadcaster-approved) and are scoped to the authorizing user's own channel only. Output is PII-safe (id/username/displayName/tier/gift/expiry only).
- Added new webhook event channel.subscription.end — fires the instant a subscription ends, whether canceled or naturally expired (including gift subs, which never auto-renew), so you can keep your subscriber count accurate in real time. Payload carries userId, username, displayName, tier, isGift + gifter, reason (canceled | expired), endedAt, and expiresAt.
- Added userId to the channel.subscribe and channel.subscription.gift webhook payloads so you can match a subscribe event to its later subscription.end by the immutable user id (usernames can be renamed).
- Rate limit: the subscriber endpoints allow 120 requests/minute per client; exceeding it returns 429 Too Many Requests.