API v1 · operational

Marten Subscription Push API

This service connects an existing HTTPS subscription to Marten devices and lets its owner send a data-only silent push requesting a refresh.

The push is only a signal: it never contains the subscription URL, configuration, or credentials. The service does not download or proxy subscription content.

Quick start

Create a subscription channel. The response contains a public install URL and a one-time owner token. Store the token securely.

curl https://api.app.marten.pw/v1/subscriptions \
  -H 'Content-Type: application/json' \
  -d '{"name":"My subscription","url":"https://example.com/sub/token"}'

Request types

RequestAccessPurpose
POST /v1/subscriptionsPublicCreate a channel and receive its install URL and owner token.
GET /v1/subscriptions/{id}Bearer owner tokenRead channel metadata.
PATCH /v1/subscriptions/{id}Bearer owner tokenReplace the name or source URL.
DELETE /v1/subscriptions/{id}Bearer owner tokenDelete the channel and its registrations.
POST /v1/subscriptions/{id}/pushBearer owner tokenQueue a silent refresh push.
GET /v1/subscriptions/{id}/push-jobs/{jobID}Bearer owner tokenRead the aggregate push job result.
POST /v1/subscriptions/{id}/owner-token/rotateBearer owner tokenReplace the owner credential.
POST / DELETE /v1/subscriptions/{id}/devices/push-tokenDevice headersRegister or remove a device push token.
GET /install/{id}PublicOpen the Marten import link.
GET /healthzPublicCheck API availability.

Authentication and limits