Developer API
RiskVector API v1
Öffentliche REST-API für Reise-Risiko-Daten: Risk-Scores, Teil-Scores und Travel Advisories für 197 Länder sowie Profile für 695 Städte. JSON, offenes CORS, kein API-Key nötig.
Free Tier — ohne Registrierung
- ✅ 100 Requests/Tag pro IP — kein API-Key erforderlich
- ✅ Alle GET-Endpoints v1 nutzbar (Länder, Länder-Detail, Städte)
- ✅ Offenes CORS — direkte Nutzung aus dem Browser möglich
- ✅ Rate-Limit-Headers:
X-RateLimit-Remaining,X-RateLimit-Reset - ⏳ API-Key-System vorbereitet: Der Header
X-API-Keywird bereits gelesen. Keys werden später für Partner-Tiers mit höheren Limits ausgegeben.
Fair Use
Cache responses (Empfehlung: ≥ 5 Minuten, die Daten aktualisieren sich täglich). Kein Bulk-Scraping, kein Weiterverkauf der Rohdaten, Attribution mit Link auf riskvector.app erbeten. Responses sind 5 Minuten server-seitig gecacht (Cache-Control-Header). Brauchst du höhere Limits (Monitoring, B2B-Integration, White-Label)? Kontaktiere uns — Partner-API-Tiers mit API-Key sind in Vorbereitung.
Endpoints
/api/v1/countriesPaginierte Liste aller Länder mit aktuellem Risk-Score und Risk-Level.
| Parameter | Beschreibung |
|---|---|
| page | Seitennummer (Standard 1) |
| per_page | Ergebnisse pro Seite (Standard 50, max 200) |
| search | Filter nach Ländername oder ISO-Code |
| region | Filter nach Region, z. B. Europe |
Beispiel
https://riskvector.app/api/v1/countries?page=1&per_page=5&search=sweden
Response (Auszug)
{
"data": [
{ "countryCode": "SE", "name": "Sweden", "region": "Europe",
"riskScore": 88, "riskLevel": "low" }
],
"pagination": { "page": 1, "perPage": 5, "total": 1, "totalPages": 1,
"hasNext": false, "hasPrev": false }
}/api/v1/countries/DEDetail eines Landes: Gesamt-Risk-Score, sechs Teil-Scores (Political, Crime, Health, Environmental, Infrastructure, Terrorism), Travel Advisory und Notrufnummern.
Beispiel
https://riskvector.app/api/v1/countries/DE
Response (Auszug)
{
"countryCode": "DE", "name": "Germany", "flag": "🇩🇪",
"risk": {
"overall": 86, "level": "low", "confidence": 0.9, "trend": "stable",
"subScores": [
{ "key": "crime", "name": "Crime", "score": 84,
"level": "low", "weight": 0.2 }, ...
]
},
"travelAdvisory": { "level": 1, "source": "US State Department", ... },
"emergencyNumbers": { "police": "110", "ambulance": "112", "fire": "112" }
}/api/v1/cities/berlinStadt-Profil per Slug: Koordinaten, Population, Zeitzone plus Country-Risk-Score des zugehörigen Landes.
Beispiel
https://riskvector.app/api/v1/cities/istanbul
Response (Auszug)
{
"name": "Istanbul", "slug": "istanbul",
"country": { "name": "Turkey", "code": "TR" },
"coordinates": { "lat": 41.008, "lng": 28.978 },
"countryRisk": { "overall": 55, "level": "moderate", ... }
}Fehler
400invalid_country_code / invalid_slug — ungültige Parameter404country_not_found / city_not_found — unbekannter Code/Slug429rate_limit_exceeded — Tageslimit erreicht (Reset-Zeit im Body)
Risk-Score-Skala (höher = sicherer)
Methodik & Quellen: /methodik
Kein Backend nötig?
Für Websites und Blogs gibt es fertige Embed-Widgets (Risk-Badge, Länderkarte, Mini-Profil) — kein Code erforderlich. Für höhere Limits, SLA oder White-Label-Daten: Kontakt.