Authentification
Toutes les requêtes /v1/* exigent une clé API Bearer dans le header Authorization.
Authorization: Bearer rec_live_aBcD1234EfGh5678...Format de clé
rec_live_<random>, clé de production, envoie de vrais events.rec_test_<random>, clé de test, même comportement, facile à distinguer.
Génère les clés depuis le dashboard (une par environnement). Les clés sont hashées (SHA-256) côté serveur, le secret complet n'est affiché qu'une seule fois à la création. Si tu le perds, révoque et génère une nouvelle clé.
Scopes
Chaque clé peut être limitée à un sous-ensemble d'actions :
events:write, ingérer de nouveaux eventsevents:read, lister, chercher, lireexports:read, télécharger des exports CSV/JSONactors:delete, droit à l'effacement RGPDembed:write, créer des embed tokens à courte durée
Embed tokens
Pour le widget admin interne <RecalledFeed />, tu crées un token court-vivant côté serveur et tu le passes au navigateur. Le navigateur parle à /v1/embed/events avec ce token plutôt qu'avec la clé API, ta clé ne quitte donc jamais ton serveur. Par défaut le token donne accès à tout le projet (vue admin) ; passe organization si tu veux restreindre une instance de widget à un seul tenant.
const { token } = await client.embed.createToken({
organization: "org_abc",
ttlSeconds: 900,
});
// renvoie `token` au navigateur