REST API
https://release-ripple-roadmap.lovable.app/api/public/v1. Feed endpoints are public and CORS-enabled; publishing endpoints take an API key. The full contract is in the OpenAPI 3.1 spec.Authentication
Reading changelogs needs nothing. To publish, create a key in Dashboard → Agents & API and send it as Authorization: Bearer lp_…. Keys have scopes — read, releases:write, roadmap:write — and act on one workspace. Revoke a key and it stops working immediately.
Errors
| Field | Type | Description |
|---|---|---|
| 400 bad_request | details[] | Invalid input. details lists each field and what's wrong. |
| 401 unauthorized | Missing, malformed or revoked API key. | |
| 402 plan_limit | The Free plan's 10-release limit was reached. | |
| 403 forbidden | The key doesn't have the scope this endpoint needs. | |
| 404 not_found | Unknown changelog, release or roadmap item. | |
| 409 conflict | Another release already uses this version. | |
| 413 payload_too_large | Body over the size limit (200 KB, or 1 MB for /convert). | |
| 429 rate_limited | Too many requests. Wait for the seconds in Retry-After. | |
| 502 upstream_error | /convert couldn't read from GitHub. Try again, or send the text instead. |
Changelog feed
/changelogs/{slug}Get a changelog
Name, repository, packages, latest version and links to every feed.
curl https://release-ripple-roadmap.lovable.app/api/public/v1/changelogs/acme/changelogs/{slug}/releasesList releases
Published releases, newest first, with versions, breaking changes, migration steps and deprecations.
curl "https://release-ripple-roadmap.lovable.app/api/public/v1/changelogs/acme/releases?limit=5&breaking=true"/changelogs/{slug}/releases/{release}Get one release
Look up a release by version (2.0.0 or v2.0.0), URL slug or id.
curl https://release-ripple-roadmap.lovable.app/api/public/v1/changelogs/acme/releases/2.0.0/changelogs/{slug}/diffCompare two versions
Everything that changed after `from` up to and including `to`: releases, breaking changes with migration steps, and deprecations. Use format=markdown for an upgrade guide an agent can follow.
curl "https://release-ripple-roadmap.lovable.app/api/public/v1/changelogs/acme/diff?from=1.4.0&to=2.0.0"/changelogs/{slug}/roadmapGet the public roadmap
Public roadmap items with status and vote counts.
curl "https://release-ripple-roadmap.lovable.app/api/public/v1/changelogs/acme/roadmap?status=planned"/changelogs/{slug}/feed.jsonJSON Feed 1.1
Standard JSON Feed with LogPulse extensions (`_logpulse`) for version, breaking changes and deprecations.
curl https://release-ripple-roadmap.lovable.app/api/public/v1/changelogs/acme/feed.json/changelogs/{slug}/llms.txtChangelog as llms.txt
The whole changelog as plain text for AI tools.
curl https://release-ripple-roadmap.lovable.app/api/public/v1/changelogs/acme/llms.txt/searchFind a changelog
Search by package name (e.g. @acme/analytics), repository, product name or slug.
curl "https://release-ripple-roadmap.lovable.app/api/public/v1/search?q=acme-analytics"Tools
/convertConvert a GitHub changelog
Free, no key. Fetches a GitHub release, releases page, repository (its CHANGELOG.md, or its releases) or markdown file and returns it as a machine-readable changelog plus an llms.txt-style summary. Rate limit: 10/minute and 100/day per IP.
curl "https://release-ripple-roadmap.lovable.app/api/public/v1/convert?url=https://github.com/vercel/next.js/releases/tag/v15.0.0&format=llms"/convertConvert a changelog
Free, no key. Send CHANGELOG.md text (JSON `markdown`, or a raw text/markdown body) or a GitHub `url`. Understands Keep a Changelog, conventional-changelog, changesets and GitHub release notes. Nothing is stored. Up to 1 MB. Rate limit: 10/minute and 100/day per IP.
curl -X POST https://release-ripple-roadmap.lovable.app/api/public/v1/convert \
-H "Content-Type: text/markdown" \
--data-binary @CHANGELOG.mdPublishing
/me API keyCheck an API key
The workspace, plan and scopes an API key belongs to.
curl https://release-ripple-roadmap.lovable.app/api/public/v1/me -H "Authorization: Bearer $LOGPULSE_API_KEY"/releases API keyList your releases
Your workspace's releases including drafts. Scope: read.
curl "https://release-ripple-roadmap.lovable.app/api/public/v1/releases?status=draft" -H "Authorization: Bearer $LOGPULSE_API_KEY"/releases API keyCreate a release
Creates a draft, or publishes right away with status=published (a future published_at schedules it). Publishing updates the widget, hosted changelog, feeds and — on Pro — emails subscribers. Scope: releases:write.
curl -X POST https://release-ripple-roadmap.lovable.app/api/public/v1/releases \
-H "Authorization: Bearer $LOGPULSE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Webhooks retry automatically",
"version": "2.1.0",
"category": "improved",
"status": "published",
"body": "Failed webhook deliveries now retry with backoff for 24 hours.",
"deprecations": [{ "item": "retry_once option", "replacement": "retry_policy", "removal_version": "3.0" }]
}'/releases/{release} API keyUpdate or publish a release
Send only the fields to change. Set status=published to publish a draft. Scope: releases:write.
curl -X PATCH https://release-ripple-roadmap.lovable.app/api/public/v1/releases/2.1.0 \
-H "Authorization: Bearer $LOGPULSE_API_KEY" \
-d '{ "status": "published" }'/roadmap API keyList your roadmap
Every roadmap item in your workspace, private ones included. Scope: read.
curl https://release-ripple-roadmap.lovable.app/api/public/v1/roadmap -H "Authorization: Bearer $LOGPULSE_API_KEY"/roadmap API keyCreate a roadmap item
Creates an item, or updates one when `id` is given. Scope: roadmap:write.
curl -X POST https://release-ripple-roadmap.lovable.app/api/public/v1/roadmap \
-H "Authorization: Bearer $LOGPULSE_API_KEY" \
-d '{ "title": "SAML single sign-on", "status": "planned", "eta": "Q1" }'/roadmap/{id} API keyUpdate a roadmap item
Move an item between columns (e.g. to shipped) and link the release that shipped it. Scope: roadmap:write.
curl -X PATCH https://release-ripple-roadmap.lovable.app/api/public/v1/roadmap/ITEM_ID \
-H "Authorization: Bearer $LOGPULSE_API_KEY" \
-d '{ "status": "shipped", "linked_release": "2.1.0" }'