Custom Event API – Partneranleitung
Übersicht
Die Custom Event API ermöglicht es API-Partnern, eigene Sicherheits-Events auf dem Risk Management Dashboard zu erstellen, zu aktualisieren und zu löschen. Jeder Partner verwaltet ausschließlich seine eigenen Events.
Wichtig: Das Erstellen, Aktualisieren und Löschen von Events erfordert eine separate Freischaltung Ihres Accounts durch Global Travel Monitor. Ohne diese Freischaltung können Sie die API nur zum Lesen von Events nutzen. Bei einem Versuch ohne Freischaltung erhalten Sie einen
403 ForbiddenResponse.
Authentifizierung
Alle API-Aufrufe erfordern einen Bearer-Token im HTTP-Header:
Authorization: Bearer {API_TOKEN}
Den Token erhalten Sie von Ihrem Ansprechpartner bei Passolution. Er ist 1 Jahr gültig.
Base-URL
https://platform.passolution.de/api/v1/custom
Die bisherigen Adressen https://api.global-travel-monitor.de/v1/custom und https://global-travel-monitor.eu/api/v1/custom bleiben weiterhin gültig; bestehende Integrationen müssen nicht umgestellt werden.
Rate Limit
Standardmäßig sind 60 Requests pro Minute erlaubt. Bei Überschreitung erhalten Sie einen 429 Too Many Requests Response.
Referenzdaten
Bevor Sie Events erstellen, fragen Sie die gültigen Event-Kategorien und Ländercodes ab.
Event-Kategorien abrufen
GET /v1/custom/event-categories
Aktuell verfügbare Kategorien:
| Code | Name |
|---|---|
environment |
Umweltereignisse |
travel |
Reiseverkehr |
safety |
Sicherheit |
entry |
Einreisebestimmungen |
general |
Allgemein |
health |
Gesundheit |
strike |
Streik |
Hinweis: Diese Liste kann sich ändern. Nutzen Sie den Endpoint
GET /v1/custom/event-categories, um stets die aktuellen Kategorien abzurufen.
Beispiel:
curl -H "Authorization: Bearer {TOKEN}" \
https://platform.passolution.de/api/v1/custom/event-categories
Response:
{
"success": true,
"data": [
{
"code": "environment",
"name": "Umweltereignisse",
"color": "#059669",
"icon": "fa-leaf"
},
{
"code": "safety",
"name": "Sicherheit",
"color": "#DC2626",
"icon": "fa-shield-alt"
}
]
}
Länder abrufen
GET /v1/custom/countries
Beispiel:
curl -H "Authorization: Bearer {TOKEN}" \
https://platform.passolution.de/api/v1/custom/countries
Response:
{
"success": true,
"data": [
{
"iso_code": "DE",
"iso3_code": "DEU",
"name_de": "Deutschland",
"name_en": "Germany"
},
{
"iso_code": "TH",
"iso3_code": "THA",
"name_de": "Thailand",
"name_en": "Thailand"
}
]
}
Events
Event erstellen
Erfordert Freischaltung der Event-Erstellung für Ihren Account.
POST /v1/custom/events
Request-Body (JSON):
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
title |
string | Ja | Titel des Events (max. 255 Zeichen) |
description |
string | Nein | Beschreibung (max. 10.000 Zeichen, HTML erlaubt: p, br, strong, em, ul, ol, li, a) |
risk_level |
string | Nein | Risikostufe: info, low, medium (Standard), high |
start_date |
datetime | Ja | Startdatum (ISO 8601, z.B. 2026-02-11T08:00:00Z) |
end_date |
datetime | Nein | Enddatum (muss gleich oder nach start_date liegen) |
event_category_codes |
array | Ja | Event-Kategorie-Codes (mindestens 1, z.B. ["safety", "environment"], siehe Tabelle oben) |
country_codes |
array | Ja | ISO-2-Ländercodes (mindestens 1, z.B. ["DE", "AT"]) |
latitude |
number | Nein | Breitengrad (-90 bis 90) |
longitude |
number | Nein | Längengrad (-180 bis 180) |
tags |
array | Nein | Schlagwörter (z.B. ["flooding", "bangkok"]) |
external_id |
string | Nein | Ihre interne Referenz-ID (max. 255 Zeichen) |
Beispiel:
curl -X POST https://platform.passolution.de/api/v1/custom/events \
-H "Authorization: Bearer {TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"title": "Überschwemmung Bangkok",
"description": "<p>Schwere Überschwemmungen im Großraum Bangkok.</p>",
"risk_level": "high",
"start_date": "2026-02-11T08:00:00Z",
"end_date": "2026-02-18T08:00:00Z",
"event_category_codes": ["environment"],
"country_codes": ["TH"],
"latitude": 13.7563,
"longitude": 100.5018,
"tags": ["flooding", "bangkok"],
"external_id": "EXT-2026-001"
}'
Response (201 Created):
{
"success": true,
"message": "Event created and published successfully.",
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"title": "Überschwemmung Bangkok",
"description": "Schwere Überschwemmungen im Großraum Bangkok.",
"risk_level": "high",
"start_date": "2026-02-11T08:00:00+00:00",
"end_date": "2026-02-18T08:00:00+00:00",
"latitude": 13.7563,
"longitude": 100.5018,
"review_status": "approved",
"is_active": true,
"tags": ["flooding", "bangkok"],
"event_categories": [
{
"code": "environment",
"name": "Umweltereignisse",
"color": "#059669",
"icon": "fa-leaf"
}
],
"countries": [
{
"iso_code": "TH",
"name_de": "Thailand",
"name_en": "Thailand"
}
],
"created_at": "2026-02-11T10:30:00+00:00",
"updated_at": "2026-02-11T10:30:00+00:00"
}
}
Hinweis: Wenn für Ihren Account die Auto-Freigabe nicht aktiviert ist, lautet der
review_statuspending_reviewundis_activeistfalse. Das Event wird erst nach manueller Freigabe durch das Global-Travel-Monitor-Team auf dem Dashboard sichtbar.
Eigene Events auflisten
GET /v1/custom/events
Standardmäßig werden nur eigene Events zurückgegeben — also Events, die über Ihren API-Token erstellt wurden. Mit dem Parameter scope können Sie zusätzlich Global-Travel-Monitor-Events und Events von Partner-Gruppen abrufen.
Der scope-Parameter unterstützt kommagetrennte Werte, um mehrere Quellen gleichzeitig abzufragen.
Query-Parameter:
| Parameter | Typ | Beschreibung |
|---|---|---|
scope |
string | Kommagetrennte Liste von Scope-Werten (Standard: own) |
per_page |
integer | Einträge pro Seite (Standard: 25) |
page |
integer | Seitennummer |
Scope-Werte:
| Wert | Beschreibung |
|---|---|
own |
Nur Ihre eigenen Events (Standard) |
passolution |
Nur von Global Travel Monitor bereitgestellte Events (aktiv und freigegeben) |
all |
Ihre eigenen Events + Global-Travel-Monitor-Events zusammen |
{gruppen-slug} |
Events der API-Kunden in der angegebenen Event-Gruppe (aktiv, freigegeben, nicht archiviert). Wenn die Gruppe include_passolution_events aktiviert hat, werden zusätzlich Global-Travel-Monitor-Events mitgeliefert. |
Hinweis: Partner-Events (über Gruppen) und Global-Travel-Monitor-Events werden nur angezeigt, wenn sie aktiv, freigegeben und nicht archiviert sind.
Beispiele:
curl -H "Authorization: Bearer {TOKEN}" \
"https://platform.passolution.de/api/v1/custom/events?per_page=10&page=1"curl -H "Authorization: Bearer {TOKEN}" \
"https://platform.passolution.de/api/v1/custom/events?scope=passolution"curl -H "Authorization: Bearer {TOKEN}" \
"https://platform.passolution.de/api/v1/custom/events?scope=all"curl -H "Authorization: Bearer {TOKEN}" \
"https://platform.passolution.de/api/v1/custom/events?scope=own,passolution"curl -H "Authorization: Bearer {TOKEN}" \
"https://platform.passolution.de/api/v1/custom/events?scope=meine-partner-gruppe"curl -H "Authorization: Bearer {TOKEN}" \
"https://platform.passolution.de/api/v1/custom/events?scope=own,meine-partner-gruppe"Einzelnes Event anzeigen
GET /v1/custom/events/{uuid}
Beispiel:
curl -H "Authorization: Bearer {TOKEN}" \
https://platform.passolution.de/api/v1/custom/events/a1b2c3d4-e5f6-7890-abcd-ef1234567890
Event aktualisieren
Erfordert Freischaltung der Event-Erstellung für Ihren Account.
PUT /v1/custom/events/{uuid}
Es müssen nur die zu ändernden Felder gesendet werden.
Beispiel:
curl -X PUT https://platform.passolution.de/api/v1/custom/events/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
-H "Authorization: Bearer {TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"title": "Überschwemmung Bangkok - Entwarnung",
"risk_level": "low"
}'
Response (200 OK):
{
"success": true,
"message": "Event updated successfully.",
"data": { ... }
}
Event löschen
Erfordert Freischaltung der Event-Erstellung für Ihren Account.
DELETE /v1/custom/events/{uuid}
Beispiel:
curl -X DELETE https://platform.passolution.de/api/v1/custom/events/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
-H "Authorization: Bearer {TOKEN}"
Response (200 OK):
{
"success": true,
"message": "Event deleted successfully."
}
Fehlercodes
| HTTP-Code | Bedeutung |
|---|---|
200 |
Erfolgreich |
201 |
Erfolgreich erstellt |
401 |
Nicht authentifiziert (Token fehlt oder ungültig) |
403 |
Zugriff verweigert (Token hat keine Berechtigung oder Account deaktiviert) |
404 |
Event nicht gefunden |
422 |
Validierungsfehler (ungültige Daten) |
429 |
Rate Limit überschritten |
500 |
Serverfehler |
Beispiel Validierungsfehler (422):
{
"message": "The title field is required.",
"errors": {
"title": ["The title field is required."],
"event_category_codes": ["At least one event type code is required."]
}
}
Review-Workflow
Je nach Konfiguration Ihres Accounts gibt es zwei Modi:
- Auto-Freigabe aktiviert: Events werden sofort veröffentlicht (
review_status: approved,is_active: true) - Auto-Freigabe deaktiviert: Events werden zur Prüfung eingereicht (
review_status: pending_review,is_active: false) und erst nach Freigabe durch das Global-Travel-Monitor-Team sichtbar
Logo auf dem Dashboard
Wenn ein Firmenlogo in Ihrem API-Account hinterlegt ist, wird dieses als Quellen-Logo neben Ihren Events auf dem Dashboard angezeigt. Ohne Logo erscheint Ihr Firmenname als Text.
Support
Bei Fragen zur API wenden Sie sich an Ihren Ansprechpartner bei Passolution.