Havoptic developer docs
Developer docs for the Havoptic API and MCP server: typed, evidence-backed release changes for Claude Code, Cursor, Codex CLI, Copilot and more. Quickstart with curl, the TypeScript SDK or MCP.
Havoptic tracks releases of AI coding tools (Claude Code, OpenAI Codex CLI, Cursor, Gemini CLI, Kiro CLI, GitHub Copilot CLI, Devin Desktop, Antigravity CLI, Grok Build) and splits each new release into typed change items: feature, fix, breaking, deprecation, security and more, each with a verbatim evidence quote from the vendor notes and a confidence score.
Use it to fail CI before a breaking upgrade, post a weekly digest to Slack, or give an agent current facts about the tools it runs in. Reading is free and needs no key.
Quickstart
curl
# Breaking and security changes in Claude Code since a date
curl "https://api.havoptic.com/v1/changes?tool=claude-code&kind=breaking,security&since=2026-10-01"
# What changed between your pinned version and the latest one (markdown brief)
curl -H "Accept: text/markdown" \
"https://api.havoptic.com/v1/tools/claude-code/upgrade?from=2.1.290"
# With a key (higher limits): create one at https://www.havoptic.com/api-keys
curl -H "Authorization: Bearer $HAVOPTIC_API_KEY" \
"https://api.havoptic.com/v1/releases?tool=cursor&limit=5"TypeScript SDK
// npm install @havoptic/sdk
import { Havoptic } from '@havoptic/sdk';
const havoptic = new Havoptic(); // no key needed; pass { apiKey } for higher limits
const since = new Date(Date.now() - 30 * 864e5).toISOString().slice(0, 10);
for await (const change of havoptic.changes.iterate({ tool: 'claude-code', breaking: true, since })) {
console.log(change.version, change.title);
console.log(' >', change.evidence); // verbatim quote from the vendor's notes
}
const report = await havoptic.tools.upgrade('claude-code', { from: '2.1.290' });
console.log(report.breaking.length, 'breaking changes to review');MCP
# Claude Code (remote, nothing to install)
claude mcp add --transport http havoptic https://mcp.havoptic.com/mcp
# Then ask: "What breaking changes shipped in Cursor this month?"
# Clients that only launch stdio servers (e.g. Claude Desktop):
npx -y havoptic mcpHosts
| Surface | URL | Notes |
|---|---|---|
| REST API (primary) | https://api.havoptic.com/v1 | API keys, rate-limit headers, cursor pagination by default, webhooks, Havoptic-Version. |
| REST API (alias) | https://www.havoptic.com/api/v1 | Same handlers and data, anonymous only. Additive changes only; /releases defaults to offset pagination. |
| MCP server | https://mcp.havoptic.com/mcp | Streamable HTTP, read-only, no auth. See MCP. |
| OpenAPI 3.1 | /openapi.json | Generated from the same schemas the API validates against. |
| Agent guide | api.havoptic.com/v1/llms.txt | A ~1k-token summary for agents calling the API directly. |
Most useful endpoints
| Endpoint | What it answers |
|---|---|
GET /v1/changes | Typed change items, newest first. Filter by tool, kind, breaking, security, since and until (ISO dates). |
GET /v1/tools/{id}/upgrade?from= | Breaking changes, deprecations, security fixes and features between two versions. |
GET /v1/digest?since=7d | What changed across tools, breaking first. Accept: text/markdown for a ready-to-post brief. |
GET /v1/tools/{id}/latest | The latest stable release of a tool. |
GET /v1/releases | Releases, cursor-paginated, with fields= and expand=. |
GET /v1/search?q= | Search change items and release notes. |
GET /v1/status | Data freshness per source. |
The full endpoint reference with example responses lives on the API reference page.
Next steps
- Authentication & rate limits: keys, tiers and the
RateLimitheaders. - Typed changes: what a change item is, and why older releases say
changes_available: false. - Webhooks: get a signed POST when a breaking change ships.
- SDK, CLI & GitHub Action: fail a build on a breaking upgrade.
- Errors: every problem
typethe API returns.