Docs · Reference
Releases
Mark deploys on the activity chart: POST /api/releases from your pipeline, or add them under Settings, Releases.
A release marks when you shipped. Each one shows as a dashed line on the overview's activity chart, so you can see whether agent traffic changed after a deploy. Hover a bar to see what shipped that day.
From your deploy pipeline
Send one request when a deploy finishes, with the same server key your collector uses:
curl https://ethogram.si/api/releases \ -H "Authorization: Bearer $ETHOGRAM_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "checkout v2" }'In GitHub Actions, add a step after the deploy, with the key stored as a secret:
- name: Mark the release in Ethogram run: | curl -sS https://ethogram.si/api/releases \ -H "Authorization: Bearer $ETHOGRAM_KEY" \ -H "Content-Type: application/json" \ -d "{\"name\": \"${GITHUB_SHA::7}\"}" env: ETHOGRAM_KEY: ${{ secrets.ETHOGRAM_KEY }}Body
| Field | Type | Meaning |
|---|---|---|
name | string | Required. What shipped, such as "checkout v2" or a commit. Spaces and line breaks collapse to one space; 1 to 80 characters. |
time | number or string | When it shipped: epoch milliseconds or an ISO 8601 string. Leave it out for now. Up to 7 days in the past, and no more than five minutes ahead. |
Up to 200 releases per project a day, from the API and the dashboard together. Only the name and time are kept, so leave anything secret out of the name.
Responses
| Status | Body | When |
|---|---|---|
| 201 | { "id": "1", "name": "checkout v2", "time": "..." } | The release was recorded. |
| 400 | { "error": "Body must be JSON." } | The body isn't JSON. |
| 400 | { "error": "Give the release a name." } | No usable name, or a time that can't be read or is out of range. The error says which. |
| 401 | { "error": "Unknown server key." } | The Authorization header is missing, malformed, or holds a key no project has, or one that was revoked. |
| 402 | { "error": "This project has no active plan, ..." } | No owner of the project has an active plan. |
| 413 | { "error": "Body too large." } | The body is over 2,048 bytes. |
| 429 | { "error": "Too many releases today." } | Over 200 releases in a day. Comes with Retry-After. |
A failed request never breaks your deploy unless your pipeline checks the answer; plain curl doesn't.
From the dashboard
Owners and admins can add and delete releases under Settings, Releases. A release added there can go back up to 365 days, so you can mark earlier deploys too. Everyone on the project sees them.