Zum Hauptinhalt springen
Version: 2.0.0

API-Referenz

Authentifizierung

Alle Anfragen benötigen einen Bearer-Token im Authorization-Header: Authorization: Bearer $ATLAS_API_KEY. Anfragen ohne gültigen Schlüssel erhalten 401; Anfragen mit einem gültigen, aber nicht berechtigten Schlüssel erhalten 403.

Events aufnehmen

POST /v1/atlas/events

Akzeptiert bis zu 1.000 Events pro Anfrage. Größere Batches sollten clientseitig aufgeteilt werden — die SDKs tun dies automatisch.

Anfrage

{
"events": [
{
"name": "checkout_completed",
"user_id": "usr_8f3a1c",
"timestamp": "2026-07-15T14:32:00Z",
"properties": {
"order_id": "ord_29xk3",
"revenue": 84.50,
"currency": "USD",
"items": 3
}
}
]
}

Antwort202 Accepted

{
"accepted": 1,
"rejected": 0,
"batch_id": "batch_7f2e9a1c"
}

Wenn einzelne Events in einem Batch die Validierung nicht bestehen, akzeptiert Atlas die gültigen und meldet die übrigen einzeln, statt den gesamten Batch abzulehnen:

{
"accepted": 2,
"rejected": 1,
"batch_id": "batch_7f2e9a1c",
"errors": [
{ "index": 2, "code": "invalid_timestamp", "message": "timestamp is more than 24h in the past" }
]
}

Rohdaten abfragen

GET /v1/atlas/events

ParameterTypBeschreibung
user_idstringAuf eine einzelne Identität filtern
namestringAuf einen einzelnen Event-Namen filtern
since / untilISO 8601Zeitraum (Standard: die letzten 24 Stunden)
limitintegerMaximal 100 pro Seite, Standard 20
cursorstringOpaker Pagination-Cursor aus next_cursor der vorherigen Antwort

Antwort200 OK

{
"data": [
{
"id": "evt_4k2p91xz",
"name": "checkout_completed",
"user_id": "usr_8f3a1c",
"timestamp": "2026-07-15T14:32:00Z",
"properties": { "revenue": 84.50, "currency": "USD", "items": 3 }
}
],
"next_cursor": "eyJvZmZzZXQiOjIwfQ==",
"has_more": true
}

Funnels

POST /v1/atlas/funnels erstellt eine Funnel-Definition; GET /v1/atlas/funnels/:id berechnet und liefert die aktuellen Ergebnisse dazu.

Erstellen — Anfrage

{
"name": "Signup to purchase",
"steps": ["signup_completed", "product_viewed", "checkout_completed"],
"window": "7d"
}

Abfragen — Antwort

{
"id": "fnl_9x2k3p",
"name": "Signup to purchase",
"steps": [
{ "name": "signup_completed", "count": 4200, "conversion_from_previous": 1.0 },
{ "name": "product_viewed", "count": 3110, "conversion_from_previous": 0.74 },
{ "name": "checkout_completed", "count": 892, "conversion_from_previous": 0.29 }
]
}

Cohorts

GET /v1/atlas/cohorts/:id — die Mitgliedschaft wird bei jedem Aufruf neu berechnet, nicht zum Erstellungszeitpunkt zwischengespeichert.

{
"id": "cht_3f8a2c",
"name": "Active purchasers (30d)",
"size": 1847,
"last_computed": "2026-07-15T14:32:00Z"
}

Fehler

HTTP-StatuscodeBedeutung
400invalid_event_schemaEin Pflichtfeld fehlt oder hat den falschen Typ
400invalid_timestampTimestamp liegt mehr als 24h in der Vergangenheit oder in der Zukunft
401invalid_api_keySchlüssel fehlt, ist fehlerhaft oder wurde widerrufen
403insufficient_scopeSchlüssel ist gültig, aber für dieses Projekt nicht autorisiert
413batch_too_largeMehr als 1.000 Events in einer Anfrage
429rate_limitedSiehe Ratenbegrenzungen unten; mit dem Retry-After-Header zurückfahren

Ratenbegrenzungen

600 Anfragen/Minute pro API-Schlüssel für /events (Ingestion), 60 Anfragen/Minute für Abfrage-Endpunkte (/events GET, /funnels, /cohorts). Limits gelten pro Schlüssel, nicht pro Projekt — verteilen Sie Ingestion mit hohem Volumen auf mehrere Schlüssel, statt zuerst eine Erhöhung des Limits anzufragen.

Support

Bei Fragen zu Atlas wenden Sie sich an das Produktteam oder besuchen Sie das Community-Forum.