The same data is on the public tracker at sodae.io/program-upgrades.
Get programs
GET /programs returns every watched program with its latest deploy.
program_id:
Response
deploy_slot, newest first.
Webhooks
Set a webhook and Sodae sends aPOST to your URL whenever a watched program’s deploy slot changes.
1
Add your URL
In the dashboard, open APIs → Program Upgrades and enter an
https URL that is reachable from the public internet.2
Store the secret
The signing secret is shown once, when the webhook is created or the secret is rotated. Keep it with your server’s other secrets.
3
Send a test
Send test delivers a
ping event. The delivery and your server’s response show under Recent deliveries.Events
program.upgraded
ping
Headers
Verifying the signature
Compute the HMAC over the raw request body, before any JSON parsing, and reject timestamps older than a few minutes.Delivery and retries
- Any
2xxresponse within 10 seconds counts as delivered. Redirects are not followed. - A failed delivery is retried after 30 seconds, 2 minutes, 10 minutes, 30 minutes and 2 hours. That makes 6 attempts in all; after the last, it is marked failed.
- Queued deliveries and their retries are kept across restarts. A deploy that lands while the watcher itself is restarting is not sent as an event.
/programsalways shows the latest deploy, so if missing one matters, also comparedeploy_slotfrom/programson your side.
