Weekly Briefs API¶
The signup lifecycle for BriefBlip Weekly: subscribe → confirm → (later) unsubscribe. Plus the public archive.
POST /api/briefblip/subscribe.php¶
Auth: anonymous — 10/hour per network, 3/day per email address.
{ "email": "you@example.com" }
{ "ok": true, "status": "pending" }
The response never reveals subscription state
This is deliberate. A brand-new signup, a re-submitted still-pending
signup, and an already-active subscriber all get the exact same 200
response — so this endpoint can't be used to check whether a given
address is subscribed. Don't build logic that branches on the response
body for this reason.
Errors: 400 invalid email · 429 too many signups from this network
(the per-email daily cap does not produce a 429 — it just silently skips
sending another confirmation email) · 503 signup temporarily unavailable.
Side effect: sends a double opt-in confirmation email, unless the address is already active. Resubmitting a still-pending signup reuses the same confirmation link rather than invalidating it — so an earlier confirmation email always keeps working.
GET /api/briefblip/confirm.php — public path /confirm¶
Request: ?token=<40-character hex token> (from the confirmation
email).
Response: HTML, always 200 unless something breaks server-side
(503). States: confirmed, already active, or invalid/expired token — the
page text differs per state, there's no JSON variant.
GET /api/briefblip/unsubscribe.php — public path /unsubscribe¶
Request: ?token=<40-character hex token> (from any issue email).
Idempotent — clicking an already-used unsubscribe link isn't an error.
GET /api/briefblip/weekly.php — public paths /weekly, /weekly/<issue>¶
Fully public, no rate limit, no auth.
- No
issueparam → index of published issues. ?issue=2026-W34→ that single issue.
Only published issues are ever served — a draft and a nonexistent issue
key both come back 404. There's no way to preview an unpublished issue
through this endpoint.