Skip to Content

API Contacts

Récupérer les données d’engagement agrégées par destinataire sur toutes les campagnes.

Lister les Contacts

Obtenir la liste de tous les contacts avec leurs métriques d’engagement.

Endpoint

GET /api/contacts

Paramètres de Requête

ParamètreTypeRequisDescription
searchstringNonFiltrer les contacts par adresse email

Exemple de Requête

curl -X GET "NEXT_PUBLIC_BASE_URL/api/contacts?search=john" \ -H "x-api-key: votre-cle-api"

Schéma de Réponse

ChampTypeDescription
emailstringAdresse email du destinataire
totalEmailsnumberTotal d’emails envoyés à ce contact
totalOpensnumberTotal d’événements d’ouverture
totalClicksnumberTotal d’événements de clic
campaignsstring[]Noms des campagnes reçues par le contact
engagementScorenumberScore de 0 à 100
lastActivitystringTimestamp ISO 8601 de la dernière activité

Formule du Score d’Engagement

openRate = totalOpens / totalEmails clickRate = totalClicks / totalEmails engagementScore = min(100, round((openRate * 60 + clickRate * 40) * 100))

Exemple de Réponse

[ { "email": "john@example.com", "totalEmails": 24, "totalOpens": 18, "totalClicks": 7, "campaigns": ["Série de Bienvenue", "Newsletter Janvier"], "engagementScore": 57, "lastActivity": "2024-03-14T16:45:00.000Z" }, { "email": "jane@example.com", "totalEmails": 12, "totalOpens": 12, "totalClicks": 5, "campaigns": ["Newsletter Janvier"], "engagementScore": 77, "lastActivity": "2024-03-13T09:30:00.000Z" } ]

Obtenir le Détail d’un Contact

Obtenir les informations d’engagement détaillées pour un contact spécifique, incluant l’historique complet d’activité.

Endpoint

GET /api/contacts/:email

Paramètres de Chemin

ParamètreTypeDescription
emailstringAdresse email encodée en URL

Exemple de Requête

curl -X GET NEXT_PUBLIC_BASE_URL/api/contacts/john%40example.com \ -H "x-api-key: votre-cle-api"

Schéma de Réponse

ChampTypeDescription
emailstringAdresse email du destinataire
totalEmailsnumberTotal d’emails envoyés
totalOpensnumberTotal d’événements d’ouverture
totalClicksnumberTotal d’événements de clic
campaignsstring[]Noms des campagnes
engagementScorenumberScore de 0 à 100
lastActivitystringTimestamp ISO 8601 de la dernière activité
firstSeenstringTimestamp ISO 8601 du premier email envoyé
openRatenumberRatio d’ouvertures par email
clickRatenumberRatio de clics par email
timelineTimelineEvent[]Liste chronologique des événements

Schéma TimelineEvent

ChampTypeDescription
typestring"sent", "opened" ou "clicked"
timestampstringTimestamp ISO 8601 de l’événement
subjectstringObjet de l’email
campaignstringNom de la campagne (optionnel)
linkstringURL cliquée (uniquement pour les événements "clicked")

Exemple de Réponse

{ "email": "john@example.com", "totalEmails": 24, "totalOpens": 18, "totalClicks": 7, "campaigns": ["Série de Bienvenue", "Newsletter Janvier"], "engagementScore": 57, "lastActivity": "2024-03-14T16:45:00.000Z", "firstSeen": "2024-01-05T08:00:00.000Z", "openRate": 0.75, "clickRate": 0.29, "timeline": [ { "type": "clicked", "timestamp": "2024-03-14T16:45:00.000Z", "subject": "Newsletter Mars", "campaign": "Newsletter Janvier", "link": "https://example.com/promo" }, { "type": "opened", "timestamp": "2024-03-14T16:40:00.000Z", "subject": "Newsletter Mars", "campaign": "Newsletter Janvier" }, { "type": "sent", "timestamp": "2024-03-14T10:00:00.000Z", "subject": "Newsletter Mars", "campaign": "Newsletter Janvier" } ] }

Réponses d’Erreur

StatutDescription
401 UnauthorizedClé API invalide ou manquante
404 Not FoundContact non trouvé dans votre organisation

Exemple d’Erreur

{ "error": "Contact non trouvé" }
Last updated on
Mailpulse Documentation