Public API

Free JSON endpoints, rate limited to 10 requests per minute.

Weather Report

GET /api/v1/weather?zip=94110

Returns the current COVID risk level, trend direction, experimental prevalence estimate and model range, plus the selected sewershed or county wastewater geography for a US ZIP code.

{
  "zip": "94110",
  "status": "ok",
  "riskLevel": "Low",
  "riskLevelKey": "low",
  "description": "Low activity. Routine precautions.",
  "trend": "falling",
  "trendPercent": -15,
  "prevalencePerMillion": 820,
  "prevalenceRangePerMillion": {
    "lower": 610,
    "upper": 1100
  },
  "latestDate": "2026-03-20",
  "dataAgeDays": 4,
  "plant": {
    "uid": "e9e87e61",
    "name": "Southeast San Francisco",
    "city": "San Francisco",
    "state": "California",
    "distanceKm": 2.8,
    "geography": "sewershed",
    "countyFips": null
  },
  "model": {
    "source": "WastewaterSCAN",
    "geography": "sewershed",
    "model": "MohringEmpirical2024",
    "modelVersion": "R/gamma-1x",
    "experimental": true
  }
}

LocalRisk prefers a current WastewaterSCAN sewershed serving the ZIP's county. A response may instead report "geography": "county" and "source": "CDC NWSS" when the strictly filtered county fallback is used.

Risk Calculator

GET /api/v1/risk?level=moderate
GET /api/v1/risk?prevalence=2000

Returns 5 preset activity scenarios with original and mitigated µCoV costs for a given risk level or raw prevalence (per million).

{
  "riskLevel": "Moderate",
  "prevalencePerMillion": 2000,
  "scenarios": [
    {
      "name": "Doctor Visit",
      "originalMicrocovids": 166,
      "mitigatedMicrocovids": 28,
      "mitigation": "With N95"
    },
    ...
  ]
}

Shareable Image

Share a COVID risk card in group chats, newsletters, or community sites. The image is auto-generated and always shows the current risk level.

Share link (generates rich preview):
https://localrisk.org/share?zip=94110

Direct image (1200x630 PNG):
https://localrisk.org/api/og?zip=94110

Download: visit /share?zip=94110 and click "Download image"

Share links generate rich previews in iMessage, Signal, Slack, and Discord. If current wastewater is unusable, the card explicitly identifies its Moderate manual fallback.

CORS & Rate Limits

All v1 endpoints allow cross-origin requests (CORS: *).

Rate limit: 10 requests per minute per IP.

Responses are cached for 5 minutes (Cache-Control: public, max-age=300).

No API key required. No authentication needed.