Statistics
GET /v1/publisher/calendars/{calendar_id}/statsRequires the publisher:stats scope.
curl https://api.kalender-sync.de/v1/publisher/calendars/$KS_CAL/stats -H "Authorization: Bearer $KS_KEY"{ "as_of": "2026-11-20T08:00:00.000Z", "subscribers": { "total": 97, "feed": { "total": 97, "by_app": { "google": 51, "apple": 30, "outlook": 12, "other": 4 } }, "live": { "total": 0, "by_provider": { "google": 0, "microsoft": 0, "icloud": 0 } } }, "direct_feed_clients_7d": null, "subscribe_clicks_30d": { "total": 160, "by_app": { "google": 70, "apple": 55, "outlook": 25, "other": 10 } }, "plan": { "plan": "basic", "live_calendars": { "used": 1, "limit": 1 }, "active_subscribers": { "used": 97, "limit": 500 }, "over_calendar_limit": false, "over_subscriber_limit": false }}| Field | Meaning |
|---|---|
subscribers.feed.total | Active subscribers of this calendar: calendar apps that fetched the feed in the last 14 days. |
subscribers.feed.by_app | Split by google, apple, outlook (Outlook.com, Microsoft 365 and Outlook desktop combined) and other. |
subscribers.live | Reserved for a later feature, currently always 0. |
subscribers.total | Sum; currently equal to feed.total. |
direct_feed_clients_7d | Reserved for a later estimate, currently always null. |
subscribe_clicks_30d | Every app pick on the subscribe page and in the button in the last 30 days, whether or not a subscription followed. |
plan | Your account against its plan (across all live calendars). plan.plan is free, basic or business (Professional on the website). |
What is counted and what isn’t
Section titled “What is counted and what isn’t”- Subscriptions through the subscribe page and the button are counted. Each gets its own feed link, and we count its fetches.
- Subscriptions through the general
feed_urlor thesubscribe_links, if you embed them yourself, are not counted. They work the same way but cannot be counted one by one. - We store no IP addresses, no user agents and nothing about the people behind a subscription.
- Sandbox calendars have their own statistics but don’t count toward
plan.active_subscribers.
Limit reached
Section titled “Limit reached”over_subscriber_limit: true means: your account has more active subscribers than your plan covers. Everything keeps running anyway. You also get an email (at most every 30 days). → Plans and limits
over_calendar_limit: true means: your account has more live calendars than the plan covers, for example after a downgrade. Feeds keep running; writes answer plan_required.