Zum Hauptinhalt springen

REST-API

Die öffentliche REST-Oberfläche verteilt sich auf drei Hosts: einer für Flags und Messaging, einer für die Event-Erfassung und einer für Session-Replay. Jeder liefert sein eigenes OpenAPI-Dokument aus.

HostServesOpenAPI
https://api.prodantix.comFlags, messaging, GraphQLhttps://api.prodantix.com/openapi.json
https://eu.api.prodantix.comEvent ingestion (EU)https://eu.api.prodantix.com/openapi.json
https://eu.replay.prodantix.comSession replay (EU)https://eu.replay.prodantix.com/openapi.json

Authentifizierung

Jede REST-Operation nimmt einen Projektschlüssel als Bearer-Token entgegen. Projektschlüssel gelten für genau ein Projekt; legen Sie niemals einen geheimen Schlüssel in clientseitigen Code.

JSON
{
  "Authorization": "Bearer <project key>"
}

Operations

MethodPathPurpose
GET/v1/flagsEvaluate every flag for a distinct id
GET/v1/flags/snapshotFetch the project's full ruleset for local evaluation
GET/v1/messagesRead a user's in-app inbox
POST/v1/messages/readMark an in-app message read
POST/v1/eventsIngest a batch of events
POST/v1/identifyIdentify a user and set traits
POST/v1/groupAssociate a user with a group
POST/v1/replayUpload a session replay chunk

Evaluate flags for a user

curl "https://api.prodantix.com/v1/flags?distinct_id=u_8f3a" \
  -H "Authorization: Bearer $PRODANTIX_KEY"

Ingest an event

curl -X POST "https://eu.api.prodantix.com/v1/events" \
  -H "Authorization: Bearer $PRODANTIX_KEY" \
  -H "Content-Type: application/json" \
  -d '{"batch":[{"distinct_id":"u_8f3a","name":"order.completed","properties":{"amount":4200}}]}'

Angenommen heißt nicht gespeichert

Erfassungsoperationen antworten mit 202. Das bedeutet, das Ereignis wurde zur Verarbeitung angenommen, nicht dass es gespeichert wurde. Ein fehlerhaftes Ereignis kann später in der Pipeline dennoch verworfen werden.

OpenAPI-Dokumente

Jeder Host liefert seine eigenen Operationen unter /openapi.json aus. Die zusammengeführte Ansicht ist die API-Referenzseite dieser Website.