Current US notifiable-disease surveillance from the CDC NNDSS (National Notifiable Diseases Surveillance System) weekly tables. Returns provisional weekly case counts for ~139 nationally notifiable conditions (e.g. Measles, Pertussis, Mumps, Hepatitis A, Lyme disease, Gonorrhea, West Nile, Dengue) by reporting area and MMWR week, updated weekly. Filter by condition (substring, case-insensitive: "measles" matches "Measles, Indigenous"), location (a reporting area: a US state full name like "California", "New York City", "U.S. Residents", a census region like "Pacific", or a territory), year (MMWR year, 2022 to current), and weeks (most-recent N observations). At least one of condition or location is required. Each record reports the current-week count, the previous-52-week maximum, cumulative cases YTD this MMWR year, and cumulative YTD the prior year for same-week comparison. Public-domain CDC federal data via data.cdc.gov. Use this to see live disease activity and outbreaks that postdate an agent's training cutoff.
/api/health/disease-surveillancePAYMENT-SIGNATURE.The disease surveillance API is a pay-per-call health endpoint built for AI agents and autonomous software. Current US notifiable-disease surveillance from the CDC NNDSS (National Notifiable Diseases Surveillance System) weekly tables.
There is no signup and no API key. An agent (or any HTTP client) hits the endpoint, receives an x402 "402 Payment Required" challenge, signs a sub-cent USDC payment on Base or Solana, and retries — the data comes back on the paid request. That makes it a drop-in disease surveillance data source for an agent tool-use loop, an MCP host, or a backend that needs health data on demand without onboarding to yet another vendor portal.
| Name | Type | Description |
|---|---|---|
condition | string | Disease/condition substring, case-insensitive. min 2 chars · max 80 chars |
location | string | Reporting area: state, NYC, U.S. Residents, census region, or territory. min 2 chars · max 60 chars |
year | integer | MMWR year, 2022 to current. min 2022 · max 2100 |
weeks | integer | Return roughly the most-recent N weeks of observations. min 1 · max 520 |
limit | integer | min 1 · max 1000 |
# 1. Probe with no auth → 402 envelope with PaymentRequirements curl -sS 'https://2s.io/api/health/disease-surveillance?condition=xx&location=xx&year=2022&weeks=1&limit=100' # 2. Sign + retry with PAYMENT-SIGNATURE: curl -sS 'https://2s.io/api/health/disease-surveillance?condition=xx&location=xx&year=2022&weeks=1&limit=100' \ -H 'PAYMENT-SIGNATURE: <base64-json-payload>' # Or use the canonical runner (handles probe → sign → retry): # EVM_PRIVATE_KEY=0x... node --env-file=.env.local \ # --experimental-strip-types scripts/x402-pay.ts \ # 'https://2s.io/api/health/disease-surveillance?condition=xx&location=xx&year=2022&weeks=1&limit=100'
import { TwoS } from '@2sio/sdk'
const client = new TwoS({
privateKey: process.env.EVM_PRIVATE_KEY as `0x${string}`,
})
const result = await client.health.diseaseSurveillance({
"condition": "xx",
"location": "xx",
"year": 2022,
"weeks": 1,
"limit": 100
})
console.log('endpoint:', result.endpoint)
console.log('cost:', result.costUsd, 'USDC')
console.log('tx:', result.settlement?.txHash)
console.log('data:', result.data)import os
from twosio import TwoS
client = TwoS(private_key=os.environ["EVM_PRIVATE_KEY"])
result = client.health.disease_surveillance(condition="xx", location="xx", year=2022, weeks=1, limit=100)
print("endpoint:", result.endpoint)
print("cost:", result.cost_usd, "USDC")
print("tx:", (result.settlement or {}).get("tx_hash"))
print("data:", result.data)// 1. Add @2sio/mcp to your MCP host config (Claude Desktop example below).
// EVM_PRIVATE_KEY funds x402 payments per call.
// claude_desktop_config.json
{
"mcpServers": {
"2sio": {
"command": "npx",
"args": ["-y", "@2sio/mcp"],
"env": { "EVM_PRIVATE_KEY": "0x..." }
}
}
}
// 2. Once the server is running, agents call this tool via standard MCP:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "health.disease-surveillance",
"arguments": {
"condition": "xx",
"location": "xx",
"year": 2022,
"weeks": 1,
"limit": 100
}
}
}| Field | Type | Description |
|---|---|---|
ok | boolean | one of: true |
items | array | |
total | integer | Total matching rows upstream; null when unknown. |
source | object | |
meta | object |
{
"ok": true,
"items": [
{
"condition": "example",
"location": "example",
"year": 1,
"week": 1,
"currentWeek": 1,
"currentWeekFlag": "example",
"prev52WeekMax": 1,
"cumulativeYTD": 1,
"cumulativeYTDPrevYear": 1,
"sourceTable": "example"
}
],
"total": 1,
"source": {
"provider": "example",
"url": "example",
"license": "example"
},
"meta": {
"condition": "example",
"location": "example",
"year": 1,
"weeks": 1
}
}