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ètre | Type | Défaut | Description |
|---|---|---|---|
period | string | month | Granularité : day (30 derniers jours) ou month (12 derniers mois) |
app_id | UUID | - | 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ètre | Type | Défaut | Description |
|---|---|---|---|
limit | integer | 20 | Nombre de logs à retourner (max: 100) |
offset | integer | 0 | Décalage pour la pagination |
app_id | UUID | - | Filtrer par application |
status | string | - | Filtrer par statut : sent, failed_temp, failed_perm |
plugin | string | - | Filtrer par plugin : gmail, microsoft |
from_date | ISO 8601 | - | Logs à partir de cette date |
to_date | ISO 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.