Three-tier JSON feed architecture. The public feed is free. Pro and Enterprise feeds require authentication and provide real-time signal with progressively richer data.
HantaOSINT exposes three separate JSON feeds. They are not the same data with different rate limits — each tier receives a structurally different payload.
| Tier | Endpoint | Auth | Latency vs internal | Pricing |
|---|---|---|---|---|
| Free Public | /api/v1/public.json | None | 24h delay | Free, CC-BY-SA |
| Pro Self-serve | /api/v1/pro.json | API key | Real-time | $49/mo |
| Enterprise Contract | /api/v1/enterprise.json | API key + IP allowlist | Real-time + signal | Contact us |
See Paid Features for the full feature comparison.
Pro and Enterprise endpoints require an API key passed as a Bearer token:
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://api.hantaosint.com/v1/pro.json
Free public endpoints accept anonymous requests with a 60-requests-per-minute IP-based rate limit.
GET /api/v1/public.jsonAggregated dashboard payload — confirmed clusters, country aggregates, briefings (24h delayed), public stats.
{
"updated": "2026-05-09T09:14:00Z", // 24h delay
"stats": {
"confirmed_active": 6,
"deaths_total": 3,
"countries_tracked": 14
},
"countries": [
{ "code": "AR", "confirmed": 39, "deaths": 32 },
// ...
],
"outbreaks": [ /* slug + summary only */ ],
"briefs": [ /* confirmed events only, 24h+ old */ ]
}
GET /api/v1/countriesCountry-level aggregates with current status and trend. Same data as in public.json but available standalone for embedding.
GET /api/v1/outbreaksList of public outbreak files. Each outbreak has slug, name, strain, status, summary.
All Pro endpoints require Authorization: Bearer YOUR_API_KEY.
GET /api/v1/pro.jsonReal-time bundle: confirmed + suspected cases, raw markers with coordinates, briefings feed (live), webhook subscription metadata.
{
"updated": "2026-05-10T09:14:00Z", // real-time
"cases": [
{
"id": "AR-2026-001",
"status": "suspected",
"strain": "Andes",
"lat": -54.8019,
"lng": -68.3030,
"country": "AR",
"city": "Ushuaia",
"cases": 2,
"date": "2026-03-28",
"sources": ["WHO DON599", "PAHO 2026-W18"],
"confidence": "high"
}
]
}
GET /api/v1/casesFiltered case query. Supports status, country, strain, since.
POST /api/v1/webhooksSubscribe a URL to webhook delivery for new cases, status changes, or new outbreaks. Body:
{
"url": "https://your-endpoint.com/hook",
"events": ["case.confirmed", "case.suspected", "outbreak.new"],
"secret": "your-shared-secret"
}
HantaOSINT signs each webhook delivery with HMAC-SHA256 using your shared secret in the X-HantaOSINT-Signature header.
GET /api/v1/export.csvCSV export of all current case markers. Useful for offline analysis and modeling.
GET /api/v1/enterprise.jsonPro bundle plus pre-publication signal feed. Includes Tier 3 sources (wire reports, regional health journalism, hospital-level reports) flagged with confidence levels.
GET /api/v1/archiveHistorical archive query covering all cases since 1993. Supports time-series export for modeling.
Custom deliveryEnterprise contracts include S3 drop, SFTP, or Kafka topic delivery. Configured per-customer.
| Tier | Limit | Burst | On exceed |
|---|---|---|---|
| Free | 60 / minute | 120 | HTTP 429 |
| Pro | 1,000 / day | 100 / minute | HTTP 429 + reset header |
| Enterprise | Negotiated | Negotiated | SLA-managed |
{
"error": {
"code": "unauthorized",
"message": "Invalid or expired API key.",
"docs": "https://hantaosint.com/api.html#auth"
}
}
Standard codes: unauthorized (401), forbidden (403, tier insufficient), rate_limited (429), not_found (404), server_error (5xx).
Aggregated public feed data: CC-BY-SA 4.0. Pro and Enterprise feed data: contractual license with redistribution restrictions per tier. Original outbreak file content (timelines, analysis, briefings): CC-BY-NC-SA 4.0.
Request a Pro trial key · Enterprise enquiries · Compare plans