Goal
Subscribe to the MexCep changelog via a standards-compliant Atom 1.0 feed. Works with every modern RSS reader (Feedly, NetNewsWire, Inoreader, Thunderbird, Apple Mail) and with automation tools that poll feeds for release-triggered workflows (Zapier, n8n, GitHub Actions cron).
Prerequisites
None for public-audience entries — the feed serves them to anonymous clients. To also receive admin-audience entries, the feed reader must send the app_token cookie (most readers cannot; consider polling the JSON endpoint with custom auth instead).
Steps
1. Add the feed URL to your reader
https://api.example.com/v1/public/changelog/feed.atomMost readers auto-detect the feed and prompt for a subscription. To verify manually:
curl 'https://api.example.com/v1/public/changelog/feed.atom'The response is application/atom+xml. Validate at https://validator.w3.org/feed/.
2. Sample structure
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<id>https://api.example.com/v1/public/changelog/feed.atom</id>
<title>MexCep Changelog</title>
<updated>2026-05-28T11:00:00Z</updated>
<link rel="self" href="https://api.example.com/v1/public/changelog/feed.atom" />
<link rel="alternate" href="https://docs.example.com/en/changelog" />
<author><name>MexCep</name></author>
<entry>
<id>https://docs.example.com/changelog/v1.49.6/url-convention</id>
<title>URL convention formalized + 13 path moves</title>
<updated>2026-05-28T10:30:00Z</updated>
<published>2026-05-28T10:30:00Z</published>
<link rel="alternate" href="https://docs.example.com/changelog/v1.49.6/url-convention" />
<summary>...</summary>
<category term="breaking" />
<category term="audience:public" />
</entry>
</feed>3. Filter the feed
| Param | Default | Description |
|---|---|---|
audience | auto-detect | public (anon) or admin (cookie + docs:read). |
lang | en | Feed language. en or es. |
limit | 50 | Entries per feed (1–100). |
# Spanish, 5 most recent entries
curl 'https://api.example.com/v1/public/changelog/feed.atom?lang=es&limit=5'The server enforces audience against your auth. An anonymous request cannot escalate to audience=admin and receive admin entries.
Errors
| Status | Code | Cause |
|---|---|---|
| 400 | invalid_lang / invalid_audience / invalid_limit | Param value outside the enum/range. |
| 401 | unauthorized | Requested audience=admin without cookie auth. |
| 403 | forbidden | Cookie present but missing docs:read. |
| 429 | rate_limited | Feed poll rate too high. Use the ETag on the JSON endpoint instead. |
Notes
- The feed is append-only — entries never disappear once published, so a reader that already saw an entry will not surface it again.
- The
<updated>timestamp on each entry reflects the release'spublished_at, not the body's last edit. - Need JSON instead? See Subscribe to the JSON feed.
- ADR-0090 (URL Convention) explains the
/v1/public/*namespace move.
New in v1.49.6 — see ADR-0090.