Passer au contenu

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 to

Utilisez 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
  1. Appelez export avec les mêmes filtres que messages:list. La réponse renvoie immédiatement un identifiant de tâche uid, avant que le fichier ne soit généré.
  2. Interrogez status avec cet uid jusqu’à ce qu’il signale STATUS_SUCCESS (ou STATUS_FAILED).
  3. Appelez result avec le même uid pour obtenir le nom du fichier généré.
  4. 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.

Le cycle de vie de l’exportation comporte cinq méthodes, plus un point de terminaison de téléchargement simple :

MéthodeDescription
exportMessagesStatistics/exportMet en file d’attente une exportation et renvoie un uid de tâche.
exportMessagesStatistics/statusVérifie la progression de la tâche.
exportMessagesStatistics/resultRenvoie le nom du fichier généré une fois la tâche terminée.
exportMessagesStatistics/lastTasksListe les tâches d’exportation récentes pour une application.
exportMessagesStatistics/deleteAnnule une tâche ou supprime son fichier avant l’expiration de la période de rétention.
TéléchargementTélécharge le fichier CSV généré par son nom.

Met 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

La requête nécessite un jeton d’API serveur :

NomRequisDescription
AuthorizationOuiJeton d’API serveur. Doit être fourni dans le format suivant : Authorization: Api <Server Key>.
Paramètres du corps de la requête
Anchor link to

Le corps de la requête accepte les champs suivants :

NomRequisTypeDescription
typeOuiChaîneDoit être “TASK_TYPE_EXPORT_MESSAGES_V2”.
export_messages_v2OuiObjetParamètres d’exportation, décrits ci-dessous.
export_messages_v2.application_codeVoir noteChaîneCode d’application Pushwoosh. Requis si app_group_code n’est pas défini.
export_messages_v2.app_group_codeVoir noteChaîneCode de groupe d’applications, exporte à travers chaque application du groupe. Requis si application_code n’est pas défini.
export_messages_v2.searchNonChaîneRecherche en texte libre sur le titre et le contenu du message.
export_messages_v2.filtersNonObjetFiltres de message, décrits ci-dessous. Omettez pour exporter tout l’historique du compte.
export_messages_v2.propertiesNonTableauColonnes à inclure dans le CSV, décrites ci-dessous.

export_messages_v2.filters accepte :

Nom
TypeDescription
statusesTableauStatuts de message à inclure.
Valeurs possibles
  • ”MESSAGE_STATUS_CANCELED"
  • "MESSAGE_STATUS_CREATING"
  • "MESSAGE_STATUS_DONE"
  • "MESSAGE_STATUS_FAIL"
  • "MESSAGE_STATUS_PENDING"
  • "MESSAGE_STATUS_PROCESSING"
  • "MESSAGE_STATUS_WAITING”
platformsTableauCodes de plateforme (numériques, par ex. 1 pour iOS), et non les chaînes de noms de plateforme utilisées par messages:list.
sent_dateObjetPériode de rapport filtrée sur la date d’envoi : {"date_from": "YYYY-MM-DD", "date_to": "YYYY-MM-DD"}.
created_dateObjetPériode de rapport filtrée sur la date de création du message, même format que sent_date.
created_viaTableauSource du message.
Valeurs possibles
  • ”AB_TEST"
  • "API"
  • "AUTO_PUSH"
  • "CP"
  • "CSV"
  • "CUSTOMER_JOURNEY"
  • "EMAIL_API"
  • "EMAIL_CP"
  • "GEO_ZONE"
  • "PUSH_ON_EVENT"
  • "RSS"
  • "SYSTEM”
segmentsTableauCodes de filtre auxquels le message a été envoyé.
campaignsTableauCodes de campagne. Contrairement à messages:list, ce paramètre accepte une liste, et non un seul code.
message_idChaîne (uint64)Un seul ID de message numérique, entre guillemets. Contrairement à messages:list, l’exportation prend un seul ID, pas un tableau.
message_codeChaîneUn 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"
}

Renvoie 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 to

Passez l’identifiant de la tâche renvoyé par export :

NomRequisTypeDescription
uidOuiChaî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.

Renvoie 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 to

Passez le même identifiant de tâche renvoyé par export :

NomRequisTypeDescription
uidOuiChaî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.

Liste 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 to

Chaque paramètre est un filtre optionnel ; omettez-les tous pour lister toutes les tâches auxquelles le jeton a accès :

NomRequisTypeDescription
applicationNonChaîneCode d’application Pushwoosh. Omettez pour lister les tâches de toutes les applications auxquelles le jeton a accès.
typesNonTableauRestreindre à des types de tâches spécifiques. Utilisez [“TASK_TYPE_EXPORT_MESSAGES_V2”] pour ne voir que les exportations de messages.
campaignNonChaîneFiltrer par code de campagne.
message_idNonChaîne (uint64)Filtrer par un seul ID de message numérique, entre guillemets.
message_codeNonChaîneFiltrer par un seul code de message.
limitNonEntierNombre maximum de tâches à renvoyer.
timestamp_fromNonChaîneNe 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"
}
}
]
}

Supprime 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 to

Passez l’identifiant de la tâche renvoyé par export :

NomRequisTypeDescription
uidOuiChaî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 to

Télécharge le fichier CSV généré par result, par son nom.

GET https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/<file>

Authentifiez-vous de la même manière que les autres méthodes, ou utilisez une session active du Control Panel :

NomRequisDescription
AuthorizationOuiJeton 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.csv

Le 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.