Aller au contenu principal

API REST

La surface REST publique s’étend sur trois hôtes : un pour les drapeaux et la messagerie, un pour l’ingestion d’événements et un pour la relecture de session. Chacun sert son propre document OpenAPI.

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

Authentification

Chaque opération REST accepte une clé de projet comme jeton Bearer. Les clés de projet sont limitées à un seul projet ; ne placez jamais une clé secrète dans du code côté client.

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}}]}'

Accepté ne veut pas dire enregistré

Les opérations d’ingestion répondent 202. Cela signifie que l’événement a été accepté pour traitement, pas qu’il a été stocké. Un événement mal formé peut encore être rejeté plus loin dans le pipeline.

Documents OpenAPI

Chaque hôte sert ses propres opérations sur /openapi.json. La vue fusionnée est la page de référence de l’API de ce site.