API Reference
The changelog your AI agent writes
Install the MCP server in Claude Code, Cursor, or Codex — or call the REST API from GitHub Actions — and let your agents publish entries the moment they ship.
MCP server
npx @foothillslabs/changelog-mcp — drop-in for Claude Code + Cursor.
REST API
Versioned /api/v1 endpoints. Standard bearer tokens.
Pro / Founders
API access on Pro & Founders. Sha256-hashed keys, revocable at any time.
Quickstart — MCP (recommended)
- Upgrade to Pro or Founders.
- Mint a key at /settings/api-keys. Copy it immediately — you won't see it again.
- Add the MCP server to Claude Code:
export CHANGELOG_API_KEY=ck_live_...
claude mcp add changelog npx @foothillslabs/changelog-mcpNow ask your agent: “Publish a changelog entry for the dark-mode toggle I just shipped.” It will call list_projects and create_changelog_entry automatically.
Quickstart — REST
curl -X POST https://changelog-ai.com/api/v1/projects/PROJECT_ID/entries \
-H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{
"title": "Added dark mode",
"content": "Toggle in the user menu. System preference respected by default.",
"labels": ["IMPROVEMENT"],
"isDraft": false
}'Authentication
All requests require a bearer token in the Authorization header. Keys are workspace-scoped and can be revoked at any time from /settings/api-keys. We store only the sha256 hash of the token — if you lose it, mint a new one.
Authorization: Bearer ck_live_<32-byte-secret>Endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1/projects | List projects in the workspace |
| GET | /api/v1/projects/{id}/entries | List entries for a project |
| POST | /api/v1/projects/{id}/entries | Create an entry (draft or published) |
| GET | /api/v1/projects/{id}/entries/{eid} | Fetch a single entry |
| PATCH | /api/v1/projects/{id}/entries/{eid} | Update an entry (including publish) |
| DELETE | /api/v1/projects/{id}/entries/{eid} | Delete an entry |
Rate limits
- 60 requests per minute per API key (sliding window).
- 10 published entries per day per workspace (shared with dashboard).
- Exceeded limits return
429with aRetry-Afterheader.
GitHub Actions recipe
- name: Publish changelog
if: startsWith(github.ref, 'refs/tags/v')
run: |
curl -X POST https://changelog-ai.com/api/v1/projects/${{ vars.CHANGELOG_PROJECT_ID }}/entries \
-H "Authorization: Bearer ${{ secrets.CHANGELOG_API_KEY }}" \
-H "Content-Type: application/json" \
-d "{
\"title\": \"${{ github.ref_name }}\",
\"content\": \"See https://github.com/${{ github.repository }}/releases/tag/${{ github.ref_name }}\",
\"version\": \"${{ github.ref_name }}\",
\"isDraft\": false
}"OpenAPI
A machine-readable OpenAPI 3 spec is available at /openapi.yaml. Use it to generate client SDKs for Python, Go, or any language.
Ready to ship?
Mint an API key and install the MCP server. Takes about two minutes.