API reference

Drumroll exposes a small read-only HTTP API for pulling your published changelog into your own tools. It's intentionally minimal right now - one endpoint, no auth, CORS-enabled. More surfaces will follow customer demand.

The API serves only published entries. Drafts are not exposed.

Authentication

None. The changelog is public information - the same content rendered at your public /changelog page. CORS is set to * so you can call it from any browser origin.

Base URL

The API lives on your workspace subdomain:

https://<your-slug>.usedrumroll.com/api/v1

Endpoints

GET /api/v1/changelog

List published changelog entries, newest first.

Query parameters

  • limit - integer, default 50, max 200. Number of entries to return.

Example request

curl https://your-slug.usedrumroll.com/api/v1/changelog?limit=10

Example response

{
  "workspace": {
    "name": "Acme",
    "slug": "acme"
  },
  "entries": [
    {
      "id": "01H8…",
      "title": "v1.4 launch",
      "body_html": "<h2>New features</h2><p>…</p>",
      "entry_date": "2026-05-12",
      "published_at": "2026-05-12T03:14:00Z",
      "tags": ["release", "public"]
    }
  ]
}

Fields

  • id - stable opaque identifier. Use this if you're deduplicating across pulls.
  • title - plain text.
  • body_html - rendered HTML, safe to inject into your own page (sanitization happens at write time).
  • entry_date - YYYY-MM-DD, the calendar date the release happened. Not a timestamp.
  • published_at - ISO 8601 timestamp of when the entry was first published. Null on entries that have never been published (shouldn't appear in this endpoint, but the field exists).
  • tags - array of strings, lowercase.

Caching

Responses are cached at the edge for 60 seconds with stale-while-revalidate=600. Polling more often than once a minute won't get you fresher data; build with that cadence in mind.

Rate limits

No hard rate limit today. Be reasonable - cache responses on your side, don't hammer the endpoint. We reserve the right to add limits if behavior gets abusive.

Errors

Errors return JSON with a single error field and an appropriate HTTP status:

{ "error": "workspace not found" }
  • 404 - workspace doesn't exist or you're hitting the apex domain (the API only responds on a workspace subdomain).

What's not yet exposed

  • Write endpoints. Authoring happens through the admin UI or source integrations only.
  • A guides endpoint. Currently guides are HTML-only via the public surface.
  • Webhooks for new-entry events.

If any of these would unblock something you're building, send a feature request through the in-app feedback widget.