The Releases API lets you generate, edit, and distribute release notes. You point Swisstools at one or more GitHub repository URLs and a date range, and the AI generates a structured changelog from the commit history. From there you can refine the draft, publish it, export it as Markdown, and send it to a Slack channel or email list. All release endpoints require session authentication. See Authentication for details. Release status values:Documentation Index
Fetch the complete documentation index at: https://docs.swisstools.dev/llms.txt
Use this file to discover all available pages before exploring further.
processing (AI generation in progress), draft (ready for editing), published (finalized and visible).
List Releases
GET /api/projects/:projectId/releases
Returns all releases for the specified project, ordered by creation date descending.
Path Parameters
The UUID of the project.
Generate Release
POST /api/projects/:projectId/releases/generate
Triggers AI generation of release notes from GitHub commits in the given date range. The release is created immediately with status: "processing" and transitions to status: "draft" when the AI finishes (or status: "draft" with an errorMessage if generation fails). Poll the Get Release endpoint to check progress.
Path Parameters
The UUID of the project.
Start of the commit date range, ISO 8601 format (e.g.,
2024-01-01).End of the commit date range, ISO 8601 format (e.g.,
2024-01-31).One or more GitHub repository URLs to pull commits from (e.g.,
["https://github.com/org/repo"]).201 Created
Get Release
GET /api/projects/:projectId/releases/:releaseId
Returns a single release by its ID. Use this to poll for status transitions from processing to draft.
Path Parameters
The UUID of the project.
The UUID of the release.
Update Release
PUT /api/projects/:projectId/releases/:releaseId
Updates the title or content of a release. You can edit draft releases before publishing.
Path Parameters
The UUID of the project.
The UUID of the release to update.
Updated release title.
Updated Markdown content.
Delete Release
DELETE /api/projects/:projectId/releases/:releaseId
Permanently deletes a release and all its attachments.
Path Parameters
The UUID of the project.
The UUID of the release to delete.
Publish Release
POST /api/projects/:projectId/releases/:releaseId/publish
Marks a draft release as published and records the current timestamp in publishedAt.
Path Parameters
The UUID of the project.
The UUID of the release to publish.
Export Release
GET /api/projects/:projectId/releases/:releaseId/export
Returns the release content as a downloadable Markdown file.
Path Parameters
The UUID of the project.
The UUID of the release to export.
200 OK with Content-Type: text/markdown and a Content-Disposition: attachment header containing the Markdown content.
Send to Slack
POST /api/projects/:projectId/releases/:releaseId/send-slack
Sends the release to the Slack channel configured in the project’s release settings. Requires a Slack integration to be set up for the project.
Path Parameters
The UUID of the project.
The UUID of the release to send.
Send via Email
POST /api/projects/:projectId/releases/:releaseId/send-email
Sends the release to the email recipients configured in the project’s release settings.
Path Parameters
The UUID of the project.
The UUID of the release to send.
Release Object
UUID that uniquely identifies the release.
UUID of the project that owns this release.
The release title, editable after generation.
The release body in Markdown format. Empty string while
status is processing.Current lifecycle state. One of
processing, draft, or published.ISO 8601 timestamp for the start of the commit range used to generate this release.
ISO 8601 timestamp for the end of the commit range.
Array of GitHub repository URLs that were analyzed.
Number of commits included in the generated release notes.
Populated if AI generation failed;
null otherwise.ISO 8601 timestamp of when the release was published, or
null if still a draft.ISO 8601 timestamp of creation.
ISO 8601 timestamp of the last update.