API Reference
Programmatic access to CommitFlow. All endpoints return JSON. Base URL: https://commitflow.org
Authentication
x-api-key: cflow_... or Authorization: Bearer cflow_...Endpoints
/api/workspaces/currentSessionGet the current authenticated user's workspace.
Response: { workspace: { id, name, slug, logo_url, primary_color, custom_domain } }
/api/workspaces/updateSessionUpdate workspace name, primary color, or custom domain.
Body: { name?: string, primary_color?: string, custom_domain?: string }
/api/workspaces/logoSessionUpload a workspace logo image.
/api/entriesSessionList changelog entries for a workspace with pagination.
Query: workspace_id (required), page, page_size
/api/entriesSessionCreate a new changelog entry.
Body: { workspace_id, title, content, summary?, category: "new"|"improved"|"fixed"|"deprecated", version? }
/api/entries/[id]SessionGet a single entry with linked commits.
/api/entries/[id]SessionUpdate an existing entry (title, content, category, etc).
/api/entries/[id]SessionDelete an entry permanently.
/api/entries/publishInternalPublish a draft entry and trigger distribution to channels.
Body: { entry_id }
/api/entries/recentSessionGet most recent entries across workspace.
/api/entries/[id]/viewNoneIncrement view count for a public entry.
/api/feedbackSessionList feedback posts for a workspace.
Query: workspace_id (required)
/api/feedbackSessionCreate a new feedback post.
Body: { workspace_id, title, description? }
/api/feedback/[id]NoneVote on a feedback post.
Body: { voter_email }
/api/subscribersSessionList active subscribers for a workspace.
Query: workspace_id (required)
/api/subscribersSessionAdd a subscriber to a workspace.
Body: { workspace_id, email }
/api/subscribersSessionRemove a subscriber.
Body: { workspace_id, email }
/api/channelsSessionList distribution channels (Slack, Discord, email).
Query: workspace_id (required)
/api/channelsSessionAdd a distribution channel.
Body: { workspace_id, type: "slack"|"discord"|"email", config: {...} }
/api/reposSessionList connected GitHub repositories.
Query: workspace_id (required)
/api/reposSessionConnect a GitHub repository for auto-generation.
Body: { workspace_id, full_name }
/api/users/api-keySessionGet API key status or generate a new key. Keys are SHA-256 hashed.
/api/webhook/githubSignatureGitHub push webhook. Auto-generates changelog entries from commits.
Verifies x-hub-signature-256. Requires webhook secret configured on repo.
/api/mcpAPI KeyMCP JSON-RPC endpoint. Supports tools: list_entries, create_entry, update_entry, publish_entry, list_feedback, update_feedback_status, get_stats, list_subscribers.
/api/mcp/sseAPI KeyMCP Server-Sent Events stream for persistent agent connections.
/api/widget.jsNoneEmbeddable changelog widget JavaScript. Supports data-workspace, data-color, data-position params.
Rate Limiting
Free plan: 100 requests/hour. Pro/Team: 1000 requests/hour. Rate limit headers are included in responses: X-RateLimit-*