Zum Hauptinhalt springen

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-Key wird 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

GET/api/v1/countries

Paginierte Liste aller Länder mit aktuellem Risk-Score und Risk-Level.

ParameterBeschreibung
pageSeitennummer (Standard 1)
per_pageErgebnisse pro Seite (Standard 50, max 200)
searchFilter nach Ländername oder ISO-Code
regionFilter 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 }
}
GET/api/v1/countries/DE

Detail 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" }
}
GET/api/v1/cities/berlin

Stadt-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

  • 400 invalid_country_code / invalid_slug — ungültige Parameter
  • 404 country_not_found / city_not_found — unbekannter Code/Slug
  • 429 rate_limit_exceeded — Tageslimit erreicht (Reset-Zeit im Body)

Risk-Score-Skala (höher = sicherer)

minimal90 – 100
low70 – 89
moderate50 – 69
high30 – 49
critical0 – 29

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.