API Reference

ShipRelay provides release automation APIs for generation, status polling, and publish.

Authentication

Send your repository API key as a bearer token:

Authorization: Bearer sr_your_api_key

API keys are repository-scoped and available in Settings → Widget Installation.

Release API endpoints

EndpointMethodDescription
/api/v1/releasesPOSTTrigger async changelog generation for a tag
/api/v1/releases/{draftId}GETPoll generation/draft/published status
/api/v1/releases/{draftId}/publishPOSTPublish a ready draft

POST /api/v1/releases

Request body:

{
  "repository": "owner/repo-or-slug",
  "tag": "v1.2.0",
  "audience": "user"
}

Audience options: developer, user, executive, marketing.

Success response:

{
  "draftId": "...",
  "status": "processing",
  "draftUrl": "https://shiprelay.io/changelogs/..."
}

Generation is asynchronous. Poll with GET status endpoint.

GET /api/v1/releases/{draftId}

Success response:

{
  "draftId": "...",
  "status": "draft",
  "ready": true,
  "draftUrl": "https://shiprelay.io/changelogs/...",
  "changelogUrl": null
}

Status values include processing, draft, and published.

POST /api/v1/releases/{draftId}/publish

No request body is required.

Success response:

{
  "status": "published",
  "draftId": "...",
  "version": "v1.2.0",
  "changelogUrl": "https://shiprelay.io/your-slug/v1.2.0"
}

Publish uses the shared publish pipeline (same behavior as dashboard publish): hosted page update, email digest, outbound webhook delivery, and social snippet generation.

Rate limits

Release API requests are rate-limited to 10 requests per API key per hour.

Error responses

  • 401 — invalid or missing API key
  • 403 — tier limit prevents publish action
  • 429 — rate limit exceeded

Existing public endpoints

EndpointMethodAuthDescription
/api/badge/[slug]GETNoneReturns SVG badge for README embedding
/[slug]/feed.xmlGETNoneRSS/Atom feed for published changelogs