REST API

API Documentation

Integrate WhatShipped into your CI/CD pipelines. Generate, list, and retrieve release notes programmatically — no reverse-engineering required.

Introduction

The WhatShipped API lets you generate and retrieve release notes from any connected GitHub, GitLab, or Bitbucket repository. All endpoints live under:

https://api.whatshipped.dev/api/v1

API versioning is path-based (/api/v1). Breaking changes will be introduced under a new version path.

Authentication

Every request must include an API key as a Bearer token in the Authorization header. Create an API key →

HeaderRequiredDescription
AuthorizationYesBearer sl_<key>
Authorization: Bearer sl_abcdef1234567890
GET/api/v1/release-notes

List release notes for the authenticated user. No credits consumed.

Query Parameters

ParameterTypeDescription
provider "github" | "gitlab" | "bitbucket" Filter by git platform. Optional.
repoFullNamestring Filter by repo, e.g. "owner/repo". Requires provider. Optional.

Response — 200

Array of release note summary objects.

FieldTypeNotes
idstring (UUID)Release note ID
repoIdstring (UUID)Repository ID
fullNamestring e.g. "owner/repo"
providerstringGit platform
fromRef / toRefstringCommit range boundaries
versionTagstring | null
contentstringFull markdown release notes
createdAtISO 8601 string
GET/api/v1/release-notes/:id

Fetch a single release note by ID. No credits consumed.

Path Parameters

ParameterTypeDescription
idstring (UUID)Release note ID

Response — 200

FieldTypeNotes
idstring (UUID)
repoIdstring (UUID)
fullNamestring e.g. "owner/repo"
providerstringGit platform
fromRef / toRefstringCommit range boundaries
versionTagstring | null
contentstringFull markdown release notes
rawCommitsarrayCommits used to generate this note
createdAtISO 8601 string

Error Shapes

Statuserror field Meaning
401 "Invalid or revoked API key" Key missing, wrong, or revoked
404"Release note not found"ID doesn't exist or belongs to another user
POST/api/v1/release-notes/generate

Generate release notes for a commit range. Consumes 1 credit (2 if includeDiffs is true).

Request Headers

HeaderRequiredDescription
AuthorizationYesBearer sl_<key>
Content-TypeYesapplication/json

Request Body

FieldTypeRequiredNotes
provider "github" | "gitlab" | "bitbucket" YesGit platform
repoFullNamestringYes e.g. "owner/repo"
fromRefstringYesTag, branch, or commit SHA
toRefstringYesTag, branch, or commit SHA
versionTagstringNoIncluded in generated heading
productNamestringNoProduct name override
tonestringNo"end-user" (default), "developer", "mixed"
internalVisibilitystringNo"exclude" (default), "include", "summarise"
llmProvider"anthropic" | "openai"NoDefaults to account setting
includeDiffsbooleanNo Costs 2 credits if true

Response — 200

FieldTypeNotes
idstring (UUID)Release note ID
contentstringMarkdown release notes
creditsRemainingnumberBalance after this call
providerstring
repoFullNamestring
fromRef / toRefstring
versionTagstring | null
createdAtISO 8601 string

Error Shapes

Statuserror field Meaning
401 "Invalid or revoked API key" Key missing, wrong, or revoked
402"Insufficient credits"Balance is 0
404 "Repository not found or not connected" Repo not linked in dashboard
422Validation messageMissing or invalid body fields
500"Internal server error"Unexpected failure

Credits

Each API call to the generate endpoint deducts credits from your balance. View your balance →

OperationCost
Generate release notes (standard)1 credit
Generate with includeDiffs: true2 credits
List or fetch release notesFree

Error Reference

All errors return JSON with an error field.

{
  "error": "Insufficient credits"
}
StatusMeaning
400Bad request — malformed JSON or missing headers
401 Authentication failed — key missing, invalid, or revoked
402 Insufficient credits — purchase more at the credits page
404 Not found — resource doesn't exist or belongs to another user
422 Validation error — check the error message for details
500 Internal server error — unexpected failure on our end

Code Examples

Generate release notes for a commit range.

#!/usr/bin/env bash

curl -X POST https://api.whatshipped.dev/api/v1/release-notes/generate \
  -H "Authorization: Bearer sl_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "github",
    "repoFullName": "acme/backend",
    "fromRef": "v2.2.0",
    "toRef": "v2.3.0",
    "versionTag": "v2.3.0",
    "tone": "professional"
  }'

Ready to integrate?

Create an API key from your dashboard and start generating in minutes.

Create an API key