Real-time travel advisories, disaster alerts, and risk scores for 200+ countries. One API call away.
$ curl -H "X-API-Key: demo-key-travel-risk-2026" \
https://travelriskapi.com/api/v1/countries/AFG
Built for travel companies, insurance providers, and corporate travel management platforms.
US State Department advisories updated every 6 hours. GDACS disaster alerts in real-time (minutes after detection).
Composite risk score (1-5) recalculated on every advisory or alert change, combining official levels with active disasters.
RESTful JSON API. One header for auth. Responses in <100ms. Start in 5 minutes.
Coverage for every country with ISO codes, advisory levels, and localized risk data.
Earthquakes, floods, cyclones, wildfires โ with severity, coordinates, and affected areas.
API key auth, rate limiting, CORS enabled. Built for production workloads.
Follows international standard for travel risk management. Perfect for corporate duty of care compliance.
Trusted by teams building the future of travel safety
Integrate real-time risk scores into booking flows. Meet ISO 31030 duty of care requirements with automated safety checks.
booking flow risk scores โข duty of care compliance โข pre-trip warnings
Automate pre-trip risk assessments. Send real-time alerts to travelers when conditions change.
pre-trip assessments โข real-time alerts โข traveler notifications
Dynamic pricing based on destination risk. Validate claims with historical alert data.
dynamic pricing โข claims validation โข risk underwriting
Build safety dashboards for global teams. Automate travel policies based on real-time risk levels.
safety dashboards โข policy automation โข employee protection
Latest disaster alerts from our API โ refreshed in real-time
All endpoints, parameters, and response formats
All API requests require an API key passed in the X-API-Key header.
curl -H "X-API-Key: YOUR_API_KEY" https://travelriskapi.com/api/v1/countries
Demo key (3 requests/day per IP — register below for 100/day free): demo-key-travel-risk-2026
https://travelriskapi.com/api/v1
/countries
List all countries with advisory level and composite risk score.
risk_score is the same composite returned by /risk-score/{iso};
base_risk_score is the advisory level alone and active_alerts shows
how many alerts contributed.
Parameters: skip (default 0), limit (default 50, max 1000)
{
"total": 229,
"skip": 0,
"limit": 2,
"data": [
{
"iso_code": "AFG",
"name": "Afghanistan",
"advisory_level": 4,
"risk_score": 5.0,
"base_risk_score": 4.0,
"active_alerts": 2,
"last_updated": "2026-08-11T17:50:49"
}
]
}
/countries/codes
Every supported country code in a single response, no pagination. Use it to validate input on your side.
{
"total": 229,
"note": "Codes are ISO 3166-1 alpha-3 (3 letters), e.g. USA, GBR, FRA.",
"codes": ["ABW", "AFG", "AGO", "AIA", "ALB", "..."],
"countries": [{"iso_code": "ABW", "name": "Aruba"}]
}
/countries/{iso_code}
Detail for one country, including the advisory description.
Accepts: alpha-3 (USA) or alpha-2 (US).
{
"iso_code": "USA",
"name": "United States",
"advisory_level": 1,
"advisory_description": null,
"risk_score": 1.0,
"last_updated": "2026-08-11T17:50:49"
}
/alerts
Active disaster and hazard alerts โ earthquakes, floods, cyclones, wildfires, storms, humanitarian events.
Parameters:
severity (Low | Medium | High | Critical),
alert_type (earthquake | flood | wildfire | cyclone | volcano | drought | severe_storm | humanitarian | armed_conflict | other),
country_iso,
days (last N days, 1–365),
updated_since (ISO-8601 — only alerts created or revised since then),
updated_since (ISO-8601 — only alerts created or revised since then),
skip, limit (max 1000)
Change tracking: an alert keeps the same
id when an upstream revises it — we update the record and bump
updated_at. Poll ?updated_since= to sync incrementally instead of
re-reading the whole feed.
{
"total": 19141,
"skip": 0,
"limit": 1,
"filters": {"severity": null, "alert_type": null, "country_iso": null, "days": 7},
"data_updated_at": "2026-08-11T17:57:38",
"generated_at": "2026-08-11T18:02:11+00:00",
"data": [
{
"id": 62451,
"alert_type": "earthquake",
"severity": "Medium",
"country_iso": "JPN",
"location": "near the east coast of Honshu, Japan",
"latitude": 37.12,
"longitude": 141.35,
"description": "M 4.8 - near the east coast of Honshu, Japan",
"event_date": "2026-08-11T15:22:04",
"created_at": "2026-08-11T15:45:01",
"updated_at": "2026-08-26T15:42:13",
"source": "seismic",
"external_id": "a1b2c3d4e5f6",
"polygon": null
}
]
}
/alerts/{alert_id}
A single alert by its numeric id.
/conflicts
Armed-conflict and unrest events with location, severity and mention counts. Refreshed every 15 minutes; a rolling 30-day window is retained.
Parameters: country_iso, severity, skip, limit (max 1000)
{
"total": 41033,
"skip": 0,
"limit": 1,
"data": [
{
"id": 210102,
"country_iso": "SDN",
"location": "Khartoum, Sudan",
"latitude": 15.55,
"longitude": 32.53,
"severity": "High",
"event_date": "2026-08-10T00:00:00",
"num_mentions": 47,
"description": "Armed clash reported"
}
]
}
/advisories
Government travel advisories grouped by country, with the maximum level across sources. Three independent government sources, refreshed daily.
Parameters: country_iso, min_level, skip, limit (max 1000)
{
"total": 225,
"data": [
{
"iso_code": "AFG",
"name": "Afghanistan",
"max_level": 4,
"sources": [
{
"agency": "agency-1",
"level": 4,
"summary_label": "Do Not Travel",
"reasons": ["terrorism", "kidnapping", "armed conflict"],
"url": "https://...",
"updated_at": "2026-02-20T00:00:00"
}
]
}
],
"fetched_at": "2026-08-11T17:54:59"
}
/risk-score/{iso_code}
Composite 1–5 risk score for a country, with the breakdown of how it was calculated.
Accepts: alpha-3 (USA) or alpha-2 (US).
{
"iso_code": "TUR",
"name": "Turkey",
"risk_score": 2.0,
"advisory_level": 2,
"active_alerts": 6,
"calculation": {
"base_score": 2.0,
"alert_modifier": 0.0
}
}
/register
Get a free API key. No card required โ 100 requests/day. The key is also emailed to you.
curl -X POST https://api.travelriskapi.com/api/v1/register \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com"}'
/recover-key
Lost your key? We email it to the address it was registered with.
curl -X POST https://api.travelriskapi.com/api/v1/recover-key \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com"}'
/usage
Your own consumption: today, this month, and a daily breakdown. Same numbers as the dashboard.
/billing/plans
Current plans, limits and credit packs, straight from billing โ so it can never drift from what you're charged.
Upgrading or buying credits is done from your dashboard.
/health
Service health and record counts. Handy for monitoring.
Open-source clients and test suites written by people using the API. Built something? Email support@travelriskapi.com and we'll list it here.
Ready-to-run scripts for pulling country and alert data, with typed dataclasses for every response field. github.com/codezestnet/travelriskapi-python ยท MIT licence
See also the API changelog โ every change, including added fields.
Two independent limits apply: a per-minute burst limit and a daily quota. The daily counter resets at 00:00 UTC. Prepaid credits, if you have any, are spent only after the daily quota runs out.
| Plan | Requests/day | Burst/min | Price |
|---|---|---|---|
| Free | 100 | 60 | $0 |
| Pro | 10,000 | 600 | $99/mo |
| Enterprise | unlimited | 3,000 | $499/mo |
Every response carries:
X-Quota-Limit, X-Quota-Used, X-Quota-Remaining — your daily allowanceX-Credits-Balance — prepaid credits remainingX-RateLimit-Limit, X-RateLimit-Remaining — per-minute burstRetry-After on 429 — seconds until you can retryList responses also include data_updated_at (the newest record we hold) and generated_at, so you can tell how fresh an answer is. Conflict data updates every 15 minutes, alerts every 6 hours, government advisories daily.
| Code | Meaning | When |
|---|---|---|
| 401 | Unauthorized | Missing or invalid API key |
| 404 | Not Found | Country or alert not found |
| 429 | Rate Limited | Too many requests |
| 500 | Server Error | Internal server error |
Features we're building based on customer feedback
Granular risk data for major cities, not just countries.
Multi-leg journey risk analysis with stopovers.
Vaccination requirements, disease outbreaks, health advisories.
Historical risk data and trend analysis over time.
Official libraries for Python, JavaScript, PHP, Ruby.
Branded risk assessment PDFs for client delivery.
Start free. Scale when you need to.
For testing & personal projects
For startups & growing apps
For large-scale operations
Enter your email and we'll send you a free API key instantly.
Or try the demo key right now:
demo-key-travel-risk-2026