Aller au contenu principal

API — Statistiques et Logs

Les endpoints de statistiques et de logs permettent de monitorer l'activité de vos applications SendAs.me.

GET /stats

Retourne les statistiques globales du tenant : nombre d'applications et d'utilisateurs OAuth actifs.

Requête :

GET /stats
X-Api-Secret: votre_api_secret

Réponse 200 :

{
"apps_count": 3,
"active_oauth_users": 5,
"total_emails_sent": 12847,
"emails_sent_today": 234,
"emails_sent_month": 3421,
"success_rate": 0.9976,
"plugins": {
"gmail": {
"credentials_count": 3,
"emails_sent_month": 2890
},
"microsoft": {
"credentials_count": 2,
"emails_sent_month": 531
}
}
}

GET /email-stats

Retourne les statistiques d'envoi d'e-mails agrégées par mois ou par jour, avec détail par statut et par plugin.

Paramètres de requête :

ParamètreTypeDéfautDescription
periodstringmonthGranularité : day (30 derniers jours) ou month (12 derniers mois)
app_idUUID-Filtrer par application spécifique (optionnel)

Requête :

GET /email-stats?period=month
X-Api-Secret: votre_api_secret

Réponse 200 (period=month) :

{
"period": "month",
"data": [
{
"date": "2023-08",
"total": 2341,
"sent": 2330,
"failed_temp": 8,
"failed_perm": 3,
"by_plugin": {
"gmail": 1987,
"microsoft": 354
}
},
{
"date": "2023-09",
"total": 2589,
"sent": 2580,
"failed_temp": 6,
"failed_perm": 3,
"by_plugin": {
"gmail": 2200,
"microsoft": 389
}
},
{
"date": "2024-01",
"total": 3421,
"sent": 3413,
"failed_temp": 5,
"failed_perm": 3,
"by_plugin": {
"gmail": 2890,
"microsoft": 531
}
}
],
"summary": {
"total_12months": 28934,
"avg_per_month": 2411,
"best_month": "2024-01",
"success_rate": 0.9976
}
}

Réponse 200 (period=day) :

{
"period": "day",
"data": [
{
"date": "2024-01-14",
"total": 108,
"sent": 108,
"failed_temp": 0,
"failed_perm": 0
},
{
"date": "2024-01-15",
"total": 126,
"sent": 124,
"failed_temp": 1,
"failed_perm": 1
}
]
}

GET /logs

Retourne les logs d'e-mails envoyés par les applications du tenant.

Paramètres de requête :

ParamètreTypeDéfautDescription
limitinteger20Nombre de logs à retourner (max: 100)
offsetinteger0Décalage pour la pagination
app_idUUID-Filtrer par application
statusstring-Filtrer par statut : sent, failed_temp, failed_perm
pluginstring-Filtrer par plugin : gmail, microsoft
from_dateISO 8601-Logs à partir de cette date
to_dateISO 8601-Logs jusqu'à cette date

Requête :

GET /logs?limit=10&status=sent&plugin=gmail
X-Api-Secret: votre_api_secret

Réponse 200 :

{
"logs": [
{
"id": "log_abc123def456",
"app_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"app_name": "Mon Application CRM",
"oauth_credential_id": "cred_xyz789abc",
"from_address": "alice@gmail.com",
"to_address": "client@example.com",
"subject": "Confirmation de commande #12345",
"plugin": "gmail",
"status": "sent",
"error_message": null,
"message_id": "18d4a2b3c1e4f567",
"size_bytes": 4821,
"sent_at": "2024-01-15T10:35:22.543Z"
},
{
"id": "log_def789ghi012",
"app_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"app_name": "Mon Application CRM",
"oauth_credential_id": "cred_xyz789abc",
"from_address": "alice@gmail.com",
"to_address": "autre-client@example.com",
"subject": "Votre facture du mois",
"plugin": "gmail",
"status": "sent",
"error_message": null,
"message_id": "18d4a2b3c1e4f568",
"size_bytes": 8234,
"sent_at": "2024-01-15T10:30:11.123Z"
}
],
"total": 3413,
"has_more": true
}

Exemple avec pagination

# Page 1
curl "https://api.sendas.me/logs?limit=20&offset=0" \
-H "X-Api-Secret: votre_api_secret"

# Page 2
curl "https://api.sendas.me/logs?limit=20&offset=20" \
-H "X-Api-Secret: votre_api_secret"

Exemple avec filtres de date

# Logs de la semaine passée
curl "https://api.sendas.me/logs?from_date=2024-01-08T00:00:00Z&to_date=2024-01-15T23:59:59Z" \
-H "X-Api-Secret: votre_api_secret"

GET /logs/{log_id}

Retourne le détail d'un log spécifique.

Requête :

GET /logs/log_abc123def456
X-Api-Secret: votre_api_secret

Réponse 200 :

{
"id": "log_abc123def456",
"app_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"app_name": "Mon Application CRM",
"oauth_credential_id": "cred_xyz789abc",
"from_address": "alice@gmail.com",
"to_address": "client@example.com",
"cc_addresses": [],
"bcc_addresses": [],
"subject": "Confirmation de commande #12345",
"plugin": "gmail",
"status": "sent",
"error_message": null,
"message_id": "18d4a2b3c1e4f567",
"size_bytes": 4821,
"has_attachments": false,
"sent_at": "2024-01-15T10:35:22.543Z",
"webhook_deliveries": [
{
"id": "wdel_abc123",
"event": "email_sent",
"success": true,
"delivered_at": "2024-01-15T10:35:23.100Z"
}
]
}
Rétention des logs

Les logs sont conservés 90 jours par défaut. Cette durée peut être configurée via la variable d'environnement LOG_RETENTION_DAYS.