Exportation asynchrone des statistiques de messages
exportMessagesStatistics exporte l’historique et les statistiques des messages vers un fichier CSV sur le serveur. Utilisez-le pour les extractions volumineuses ou de comptes complets que messages:list ne peut pas gérer.
Quand utiliser l’exportation au lieu de messages:list
Anchor link toUtilisez messages:list pour les recherches en direct et paginées sur une période délimitée. Utilisez exportMessagesStatistics lorsque le résultat dépasserait la limite de pagination profonde de messages:list (page × per_page > 100000), ou lorsque l’objectif est un seul fichier téléchargeable plutôt qu’un JSON paginé. L’exportation n’a pas de limite sur date_range ou le nombre de lignes, car elle diffuse le résultat vers un fichier sur le disque au lieu de le conserver dans une seule réponse.
Comment fonctionne le flux d’exportation
Anchor link to- Appelez
exportavec les mêmes filtres quemessages:list. La réponse renvoie immédiatement un identifiant de tâcheuid, avant que le fichier ne soit généré. - Interrogez
statusavec cetuidjusqu’à ce qu’il signaleSTATUS_SUCCESS(ouSTATUS_FAILED). - Appelez
resultavec le mêmeuidpour obtenir le nom du fichier généré. - Téléchargez le fichier par son nom.
Utilisez lastTasks pour rechercher les tâches d’exportation récentes pour une application, et delete pour annuler une tâche ou supprimer son fichier plus tôt.
Méthodes
Anchor link toLe cycle de vie de l’exportation comporte cinq méthodes, plus un point de terminaison de téléchargement simple :
| Méthode | Description |
|---|---|
exportMessagesStatistics/export | Met en file d’attente une exportation et renvoie un uid de tâche. |
exportMessagesStatistics/status | Vérifie la progression de la tâche. |
exportMessagesStatistics/result | Renvoie le nom du fichier généré une fois la tâche terminée. |
exportMessagesStatistics/lastTasks | Liste les tâches d’exportation récentes pour une application. |
exportMessagesStatistics/delete | Annule une tâche ou supprime son fichier avant l’expiration de la période de rétention. |
| Téléchargement | Télécharge le fichier CSV généré par son nom. |
export
Anchor link toMet en file d’attente une exportation de l’historique des messages et renvoie immédiatement un identifiant de tâche.
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/export
En-têtes
Anchor link toLa requête nécessite un jeton d’API serveur :
| Nom | Requis | Description |
|---|---|---|
Authorization | Oui | Jeton d’API serveur. Doit être fourni dans le format suivant : Authorization: Api <Server Key>. |
Paramètres du corps de la requête
Anchor link toLe corps de la requête accepte les champs suivants :
| Nom | Requis | Type | Description |
|---|---|---|---|
type | Oui | Chaîne | Doit être “TASK_TYPE_EXPORT. |
export_messages | Oui | Objet | Paramètres d’exportation, décrits ci-dessous. |
export_messages | Voir note | Chaîne | Code d’application Pushwoosh. Requis si app_group_code n’est pas défini. |
export_messages | Voir note | Chaîne | Code de groupe d’applications, exporte à travers chaque application du groupe. Requis si application_code n’est pas défini. |
export_messages | Non | Chaîne | Recherche en texte libre sur le titre et le contenu du message. |
export_messages | Non | Objet | Filtres de message, décrits ci-dessous. Omettez pour exporter tout l’historique du compte. |
export_messages | Non | Tableau | Colonnes à inclure dans le CSV, décrites ci-dessous. |
export_messages_v2.filters accepte :
| Nom | Type | Description |
|---|---|---|
statuses | Tableau | Statuts de message à inclure. Valeurs possibles
|
platforms | Tableau | Codes de plateforme (numériques, par ex. 1 pour iOS), et non les chaînes de noms de plateforme utilisées par messages:list. |
sent_date | Objet | Période de rapport filtrée sur la date d’envoi : {"date_from": "YYYY-MM-DD", "date_to": "YYYY-MM-DD"}. |
created_date | Objet | Période de rapport filtrée sur la date de création du message, même format que sent_date. |
created_via | Tableau | Source du message. Valeurs possibles
|
segments | Tableau | Codes de filtre auxquels le message a été envoyé. |
campaigns | Tableau | Codes de campagne. Contrairement à messages:list, ce paramètre accepte une liste, et non un seul code. |
message_id | Chaîne (uint64) | Un seul ID de message numérique, entre guillemets. Contrairement à messages:list, l’exportation prend un seul ID, pas un tableau. |
message_code | Chaîne | Un seul code de message. |
export_messages_v2.properties sélectionne les colonnes que le CSV contient.
Valeurs possibles
"EXPORT_MESSAGE_PROPERTY_ID""EXPORT_MESSAGE_PROPERTY_TIMESTAMP""EXPORT_MESSAGE_PROPERTY_CONTENT""EXPORT_MESSAGE_PROPERTY_TITLE""EXPORT_MESSAGE_PROPERTY_APPLICATIONS""EXPORT_MESSAGE_PROPERTY_STATUS""EXPORT_MESSAGE_PROPERTY_PLATFORMS""EXPORT_MESSAGE_PROPERTY_SOURCE""EXPORT_MESSAGE_PROPERTY_FILTER""EXPORT_MESSAGE_PROPERTY_SUBSCRIPTION_SEGMENTS""EXPORT_MESSAGE_PROPERTY_SENT""EXPORT_MESSAGE_PROPERTY_OPENED""EXPORT_MESSAGE_PROPERTY_ERRORS""EXPORT_MESSAGE_PROPERTY_RECIPIENTS""EXPORT_MESSAGE_PROPERTY_DELIVERED""EXPORT_MESSAGE_PROPERTY_TOTAL_DELIVERED""EXPORT_MESSAGE_PROPERTY_TOTAL_OPENED""EXPORT_MESSAGE_PROPERTY_TOTAL_CLICKS""EXPORT_MESSAGE_PROPERTY_CLICKS""EXPORT_MESSAGE_PROPERTY_UNSUBSCRIBED"
Exemple de requête
Anchor link to{ "type": "TASK_TYPE_EXPORT_MESSAGES_V2", "export_messages_v2": { "application_code": "XXXXX-XXXXX", "filters": { "created_date": { "date_from": "2026-01-01", "date_to": "2026-06-30" }, "statuses": ["MESSAGE_STATUS_DONE"], "platforms": [1, 3] }, "properties": [ "EXPORT_MESSAGE_PROPERTY_ID", "EXPORT_MESSAGE_PROPERTY_TIMESTAMP", "EXPORT_MESSAGE_PROPERTY_STATUS", "EXPORT_MESSAGE_PROPERTY_PLATFORMS", "EXPORT_MESSAGE_PROPERTY_SENT", "EXPORT_MESSAGE_PROPERTY_OPENED" ] }}{ "uid": "177458"}{ "error": "account not found"}status
Anchor link toRenvoie la progression d’une tâche d’exportation.
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/status
Paramètres du corps de la requête
Anchor link toPassez l’identifiant de la tâche renvoyé par export :
| Nom | Requis | Type | Description |
|---|---|---|---|
uid | Oui | Chaîne (int64) | Identifiant de la tâche provenant de la réponse export, par ex. "177458". |
Exemple de requête
Anchor link to{ "uid": "177458"}{ "status": "STATUS_SUCCESS", "progress": 1}status est l’un des suivants : "STATUS_PENDING", "STATUS_SUCCESS", ou "STATUS_FAILED". progress est une fraction entre 0 et 1 ; interrogez status jusqu’à ce qu’il atteigne "STATUS_SUCCESS" avant d’appeler result.
result
Anchor link toRenvoie le nom du fichier généré une fois la tâche terminée.
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/result
Paramètres du corps de la requête
Anchor link toPassez le même identifiant de tâche renvoyé par export :
| Nom | Requis | Type | Description |
|---|---|---|---|
uid | Oui | Chaîne (int64) | Identifiant de la tâche provenant de la réponse export, par ex. "177458". |
Exemple de requête
Anchor link to{ "uid": "177458"}{ "export_messages_v2_result": { "file": "Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv" }}Appeler result avant que status ne signale "STATUS_SUCCESS" renvoie un résultat vide. Passez la valeur file telle quelle au point de terminaison de téléchargement.
lastTasks
Anchor link toListe les tâches d’exportation récentes pour une application, les plus récentes en premier.
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/lastTasks
Paramètres du corps de la requête
Anchor link toChaque paramètre est un filtre optionnel ; omettez-les tous pour lister toutes les tâches auxquelles le jeton a accès :
| Nom | Requis | Type | Description |
|---|---|---|---|
application | Non | Chaîne | Code d’application Pushwoosh. Omettez pour lister les tâches de toutes les applications auxquelles le jeton a accès. |
types | Non | Tableau | Restreindre à des types de tâches spécifiques. Utilisez [“TASK_TYPE_EXPORT pour ne voir que les exportations de messages. |
campaign | Non | Chaîne | Filtrer par code de campagne. |
message_id | Non | Chaîne (uint64) | Filtrer par un seul ID de message numérique, entre guillemets. |
message_code | Non | Chaîne | Filtrer par un seul code de message. |
limit | Non | Entier | Nombre maximum de tâches à renvoyer. |
timestamp_from | Non | Chaîne | Ne renvoyer que les tâches créées après cet horodatage (RFC 3339). |
Exemple de requête
Anchor link to{ "application": "XXXXX-XXXXX", "types": ["TASK_TYPE_EXPORT_MESSAGES_V2"], "limit": 10}{ "tasks": [ { "id": "177458", "timestamp": "2026-08-13T12:00:00Z", "status": "STATUS_SUCCESS", "requested_by_user": "user@example.com", "export_messages_v2": { "application_code": "XXXXX-XXXXX" }, "export_messages_v2_result": { "file": "Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv" } } ]}delete
Anchor link toSupprime une tâche et son fichier avant l’expiration de la période de rétention de 7 jours.
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/delete
Paramètres du corps de la requête
Anchor link toPassez l’identifiant de la tâche renvoyé par export :
| Nom | Requis | Type | Description |
|---|---|---|---|
uid | Oui | Chaîne (int64) | Identifiant de la tâche provenant de la réponse export, par ex. "177458". |
Exemple de requête
Anchor link to{ "uid": "177458"}{}Téléchargement
Anchor link toTélécharge le fichier CSV généré par result, par son nom.
GET https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/<file>
En-têtes
Anchor link toAuthentifiez-vous de la même manière que les autres méthodes, ou utilisez une session active du Control Panel :
| Nom | Requis | Description |
|---|---|---|
Authorization | Oui | Jeton d’API serveur, dans le même format que les autres méthodes exportMessagesStatistics : Authorization: Api <Server Key> (le schéma Api est insensible à la casse). Une requête sans en-tête Authorization et sans session Control Panel connectée reçoit une erreur 401 Unauthorized. |
Remplacez <file> par la valeur exacte file de la réponse result, par exemple :
https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/Export_Messages_v2_12345_20260813120000-a1b2c3d4.csvLe fichier est un CSV contenant les colonnes sélectionnées dans properties. Il reste disponible pendant 7 jours après la fin de l’exportation, puis la tâche de nettoyage le supprime et l’URL cesse de fonctionner.