Skip to main content
Device-facing endpoints, authenticated with the app’s public key (grv_pub_). Send it as X-API-Key or Authorization: Bearer — the header is checked in that order, and query strings are never accepted. The app’s secret key also works here; the public key never works on publish. Rate limit: 240 requests per minute per key. Exceeding it returns 429 with a Retry-After header.

Subscribe

Subscriptions upsert by (app, deviceToken, tokenType, channel): re-registering updates rather than duplicates. Returns 201 on create, 200 on update. Response
Errors

List a device’s subscriptions

Returns the device’s subscriptions, oldest first — useful for reconciliation after reinstall or token rotation. deviceToken is required; omitting it returns 400.

Unsubscribe

With channel (optionally narrowed by tokenType), removes the matching subscriptions. With deviceToken alone, wipes every subscription for the device (logout). Returns { "removed": <count> }.