Read-only endpoints over the same database the site renders from. Responses are JSON with a stable envelope; list endpoints paginate. Rate-limited per IP.
{ "ok": true, "version": "2026-09", "generatedAt": "…", "meta": { "total", "page", "limit", "pages", "filters" }, "data": [...] }
{ "ok": false, "version": "2026-09", "error": { "code": "invalid_query" | "rate_limited" | "not_found" | "internal_error", "message": "…", "details": [...] } }from/to accept ISO dates.category=CYBER,AUTONOMY).confidence is a minimum (0–1). page starts at 1, limit ≤ 100 (timeline ≤ 2000).retryAfter./api/labs/:slug return 404.cache-control: public, s-maxage=60, stale-while-revalidate=300 except status, search, terminal./api/labsTracked labs with live counts.
curl https://dogulabs.vercel.app/api/labs/api/labs/:slugLab detail: sources, models, capability events, safety publications, policies, incidents, researcher events, trajectory.
curl https://dogulabs.vercel.app/api/labs/openai/api/signalsIndexed signals.
params: from, to, category (csv), lab, severity (csv), sourceType (csv), confidence (min), q, sort=latest|severity|confidence|cited, status, page, limit
curl https://dogulabs.vercel.app/api/signals?category=ALIGNMENT,AUTONOMY&from=2026-06-01&confidence=0.7&sort=confidence/api/incidentsIncident records with verification status.
params: from, to, category, lab, severity, verification, confidence, sort, page, limit
curl https://dogulabs.vercel.app/api/incidents?severity=high,critical&verification=OFFICIAL_REPORT,MULTIPLE_SOURCES/api/riskLatest Risk Index snapshot with components, weights and history.
params: history (0–365 snapshots)
curl https://dogulabs.vercel.app/api/risk?history=30/api/timelineCapability timeline events.
params: from, to, kind (csv), capability (csv), lab, confidence, limit (≤2000)
curl https://dogulabs.vercel.app/api/timeline?kind=model_launch,benchmark&lab=google-deepmind/api/researchersResearcher events (explicit statements only).
params: from, to, eventType (csv), lab, q, page, limit
curl https://dogulabs.vercel.app/api/researchers?eventType=public_warning,resignation/api/papersarXiv metadata and abstracts.
params: from, to, topic (csv), lab, q, sort, page, limit
curl https://dogulabs.vercel.app/api/papers?topic=alignment,interpretability&q=deception/api/searchGlobal search across labs, models, signals, papers, incidents, researchers.
params: q (required), limit (≤20 per category)
curl https://dogulabs.vercel.app/api/search?q=safety%20framework/api/statusObservatory status: last ingestion, sources checked, records indexed.
curl https://dogulabs.vercel.app/api/status/api/briefDaily brief for a window.
params: period=today|7d|30d
curl https://dogulabs.vercel.app/api/brief?period=7d/api/terminalDogu Terminal query. Body: { query: string }. Returns interpretation, findings, cited evidence, or INSUFFICIENT_EVIDENCE.
curl -X POST https://dogulabs.vercel.app/api/terminal -H 'content-type: application/json' -d '{"query":"Show autonomy signals from the last 30 days."}'/api/alerts (GET, POST), /api/alerts/:id (PATCH, DELETE) and /api/saved (GET, POST toggle) require a Supabase session cookie; they return 401 otherwise.
/api/cron/feeds, /api/cron/research, /api/cron/risk, /api/cron/brief, /api/cron/alerts require Authorization: Bearer $CRON_SECRET and are invoked by Vercel Cron (see vercel.json).
Data is compiled from public sources and provided as-is for research. Attribute DoguLabs and link the original source of every record you republish.