API reference menu
Getting started
OverviewAuthentication and rate limitExamplesSending
Send a notificationPriority and repeatLinks, images and buttonsSourcesScheduled sendsWebhook templatesReceipts and replies
Receipts and callbacksRepliesTeams
Teams, roles and endpointsChannels and escalationWebhooks and emailAlert email and timelineTeam formsPlans, audit log and transferCompany sign‑in and SCIMThe web consoleAccount
Identity and moving phonesDevices, keys and historyThe Upgrade PassCompatibility
ntfy's publish APIProwl's APIAppendix
Endpoint indexErrors and status codesLimitsPriorities and fieldsGlossaryThe Upgrade Pass
Used by the app, not by scripts. Everything a script can do is free, and none of these endpoints affect sending.
| Method | Path | Notes |
|---|---|---|
GET |
/v1/pass |
{windows,: the resolved entitlement set |
POST |
/v1/pass/redeem |
{"transactions": ["<jws>", from StoreKit's Transaction.all. Idempotent. Anything refused comes back named in refused rather than being dropped. |
POST |
/v1/pass/notify |
App Store Server Notifications V2. Called by Apple, not by you: it carries no key, and the JWS signature is the authentication. |
Every signed payload is verified against a pinned Apple Root CA - G3, not the
system trust store, and checked for this bundle id, this product and an accepted
App Store environment. A transaction is bound to one account by
appAccountToken; presenting someone else's is refused by name.