Skip to content

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 issue param → 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.