Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Endpoints

The REST Hook API lets a program register and remove webhook callbacks. Base URL https://app.rustle.cloud, all under /api/v1, all bearer-authenticated.

For the exhaustive, machine-readable schema, see the API reference (generated from the code).

POST /api/v1/hooks

Create a hook: a callback URL + the matching watch. The app enters the poll set immediately.

Body

FieldRequiredDefaultNotes
target_urlyesThe URL events are delivered to (http/https).
storeyesapple or google.
app_idyesStore-native app id.
event_typeyesreview.created or rating.dropped.
countrynousStorefront, see storefronts.
min_stars / max_starsno1 / 5review.created star band (each 1–5).
thresholdnorating.dropped threshold (1–5).
deltanorating.dropped delta (0–4). At least one of threshold/delta is required.
sourcenoapiProvenance hint: zapier / make / n8n / api.
external_refnoYour own correlation crumb (≤ 256 chars).
curl -X POST https://app.rustle.cloud/api/v1/hooks \
  -H "Authorization: Bearer rsk_your_token" \
  -H "Content-Type: application/json" \
  -d '{"target_url":"https://example.com/hook","store":"google",
       "app_id":"com.acme.notes","event_type":"rating.dropped","threshold":4.5}'

Response 200, returns the hook id and the signing secret (shown once):

{ "id": "api-1a2b3c4d5e6f7a8b", "secret": "…", "store": "google",
  "app_id": "com.acme.notes", "country": "us", "event_type": "rating.dropped" }

Invalid input (bad store, URL, event type, star band, or rating rule) returns 400 with { "error": "…" }.

GET /api/v1/hooks

List every hook this account owns.

curl https://app.rustle.cloud/api/v1/hooks -H "Authorization: Bearer rsk_your_token"
[ { "id": "api-1a2b…", "source": "api",
    "target_url": "https://example.com/hook", "external_ref": null } ]

DELETE /api/v1/hooks/{id}

Remove a hook and its watch (and drop the app from the poll set if nothing else watches it).

curl -X DELETE https://app.rustle.cloud/api/v1/hooks/api-1a2b3c4d5e6f7a8b \
  -H "Authorization: Bearer rsk_your_token"

Returns 204 No Content on success, or 404 if no hook with that id belongs to you.

GET /api/v1/apps

The apps this account already watches, handy for populating a dropdown. (Subscribe also accepts free-text app ids.)

curl https://app.rustle.cloud/api/v1/apps -H "Authorization: Bearer rsk_your_token"

GET /api/v1/sample

A synthetic, representative event, for a platform’s “test trigger” step. It never touches your data, so any valid token works. Returns a one-element array.

curl "https://app.rustle.cloud/api/v1/sample?event_type=review.created" \
  -H "Authorization: Bearer rsk_your_token"

event_type is review.created (default) or rating.dropped. See the event reference for the exact shape.