Skip to content

Releases API

Declare releases, record where they are deployed, and read what was found in them.

A release is a version of your app, such as 2.5, as it moves across environments. See Releases.

Reading works with any valid API key. Saving a release needs platform:manage.

List releases

GET/api/projects/{projectId}/releasesBearer or any API key

Returns an array. Each release has id, name, notes, targetDate, source, createdAt, shippedAt, and environments.

Declare a release

POST/api/projects/{projectId}/releasesBearer or API key · platform:manage
{ "name": "2.5", "notes": "New checkout", "targetDate": "2026-11-10", "environmentKey": "staging" }

Creates the release, or finds it by name if it exists. With environmentKey, it also records that the release is on that environment now, so you can call it on every deploy. An invalid release returns 400.

From CI, you can send release on POST /api/ci/runs instead.

Update a release

PUT/api/projects/{projectId}/releases/{releaseId}Bearer or API key · platform:manage

Same body as declare.

Release summary

GET/api/projects/{projectId}/releases/{releaseId}/summaryBearer or any API key

Optional query: environmentKey. Returns:

FieldNotes
releaseThe release
issuesFindings found in this release
olderOpenIssuesOpen findings from earlier releases
runsRuns on this release
checksAgenda items for this release
verdict, reasonsA summary of the known signals: not_tested, not_ready, ready_with_risks, ready, or agenda when the release has agenda items. It is not a sign-off. Your team decides when to ship.

Example

curl -sS -X POST "https://api.certyn.io/api/projects/$PROJECT_ID/releases" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $CERTYN_API_KEY" \
  -d '{ "name": "2.5", "environmentKey": "staging" }'