Reports API

Lorsque vous utilisez nos API de communication, deux types d'enregistrements sont créés : les journaux de serveur et les enregistrements détaillés des appels (CDR) - enregistrements transactionnels de l'activité. L'API Reports vous permet de télécharger vos CDR. Vous pouvez filtrer vos CDR en fonction d'attributs tels que les numéros de téléphone d'origine et de destination, le statut, la période, etc. Voir la liste des paramètres pris en charge. Vous pouvez inclure le corps/texte du message et télécharger des rapports pour n'importe lequel de vos Subaccounts.

Vous pouvez utiliser l'API Reports dans une grande variété de cas d'utilisation, notamment :

  • Facturation des clients - Téléchargez les transactions liées à tous vos sous-comptes et utilisez les données de prix incluses pour déterminer ce que vous devez facturer à vos clients.
  • Rapprochement des factures - Comparez vos données d'utilisation avec la facture que vous avez reçue.
  • Surveillance et analyse - Ajoutez des données CDR en temps réel à votre système de veille stratégique ou d'analyse pour les mettre en corrélation avec d'autres événements.
  • Gestion de la campagne - Contrôlez les performances de votre campagne à l'aide d'outils en libre-service.
  • Débogage - Résoudre les problèmes en explorant jusqu'à 13 mois de données d'utilisation détaillées.
  • Prévention de la fraude - Identifier les fraudes et surveiller les schémas afin de bloquer les utilisateurs qui se servent de l'Internet. Défenseur de la fraude produit.

Vous pouvez interroger vos CDR à l'aide d'un large éventail de filtres. Les enregistrements de données sont conservés pendant treize mois (période de conservation maximale) ou 90 jours pour Video API. Les enregistrements datant de plus de 13 mois (ou 90 jours pour Video API) ne peuvent pas être obtenus car ils sont automatiquement supprimés du système.

Fonctionnement synchrone et asynchrone

En fonction de votre modèle de requête, vous pouvez choisir l'une des deux approches pour l'API Reports :

  1. Synchrone
  2. Asynchrone

Les synchrone est optimisée pour l'extraction fréquente et périodique de petits lots d'enregistrements de données. Les tailles de lots typiques vont d'un enregistrement à des dizaines de milliers par requête.

Les asynchrone est optimisée pour les requêtes de données peu fréquentes et volumineuses. Les tailles de lots typiques vont de quelques milliers à des millions d'enregistrements.

Résumé de l'article

Le tableau suivant compare les caractéristiques des méthodes synchrones et asynchrones d'utilisation de l'API Reports :

Fonctionnalité Rapports Synchrone (GET endpoint) Rapports Asynchrones (point d'arrivée POST)
Recherche de données Renvoie les résultats immédiatement par lots de 1000 enregistrements maximum. La réponse contient un lot d'enregistrements de données et un lien vers le lot suivant (le cas échéant). Ne renvoie pas les données immédiatement. Au lieu de cela, il enregistre une demande de données, la traite de manière asynchrone et crée un fichier contenant tous les enregistrements. Lorsque le fichier de résultats est prêt, il renvoie un lien vers le fichier
Format de sortie JSON CSV
Compression Sans objet Le fichier CSV est compressé pour un téléchargement plus rapide.
Rapport TTL Sans objet Les fichiers de rapport sont automatiquement supprimés après 72 heures
Filtre temporel Peut récupérer jusqu'à 13 mois (période de rétention maximale) de données en une seule requête (90 jours pour Video API). Peut récupérer jusqu'à 13 mois (période de rétention maximale) de données en une seule requête (90 jours pour Video API).
Filtre d'identification Permet d'extraire un enregistrement de données par son ID Ne prend pas en charge le filtrage des identifiants
Corps du message Peut récupérer le corps du message Peut récupérer le corps du message
Subaccounts Nécessité d'une demande distincte pour chaque Subaccounts Nécessite une demande de rapport. Il regroupe automatiquement les enregistrements de données appartenant à des Subaccounts dans un seul rapport.
Rappels Sans objet Un rappel HTTP(S) POST peut être généré pour notifier l'achèvement du rapport.

Une note sur les performances: Même si l'API Reports est rapide et peut traiter d'énormes quantités de données, elle peut devenir plus lente lorsque vous essayez de télécharger des données pour des analyses en temps réel. L'utilisation de filtres judicieux peut accélérer considérablement le traitement.

Produits pris en charge

Tarification

Pour les prix, visitez le site cette page. Les prix indiqués dans les exemples ci-dessous ne sont donnés qu'à titre d'illustration.

Exemple de tarification (GET demandes)

Supposons que vous souhaitiez récupérer les enregistrements de SMS de la dernière minute, et qu'il s'avère qu'il y a 300 enregistrements dans cette période de temps. Le coût total de ce rapport sera le suivant :

Charge = 300 * 0.0004€ = 0.12€

GET Les requêtes (création et obtention d'un rapport JSON) peuvent renvoyer les enregistrements soit par leur identifiant, soit par la période à laquelle ils appartiennent. La recherche par identifiant n'est pas limitée dans le temps. La recherche par période prend en charge des plages allant jusqu'à 24 heures.

Exemple de tarification (POST demandes)

Supposons que vous créiez un rapport SMS pour récupérer un jour de données et que ce rapport contienne 10 000 CDR, le coût total de ce rapport sera le suivant :

Charge = 10,000 * 0.0004€ = 4€

Comment pouvez-vous vérifier l'utilisation de votre Reports API ?

Vous pouvez vérifier l'utilisation de votre Reports API en chargeant des enregistrements de manière synchrone ou en créant un rapport de manière asynchrone pour le produit "REPORTS-USAGE".

NB : Cette fonction peut être utilisée sans frais supplémentaires.

Récupérer les enregistrements de manière synchrone

Utilisez une requête HTTP GET pour récupérer ces informations :

curl --location --request GET 'https://api.nexmo.com/v2/reports/records?account_id=<API-KEY>&product=REPORTS-USAGE&date_start=YYYY-MM-DDTHH:MM:SSZ&date_end=YYYY-MM-DDTHH:MM:SSZ' --header 'Authorization: Basic <basic auth hash>='

Vous recevrez une réponse similaire à celle ci-dessous. La réponse "items_count": 3 indique que 3 rapports ont été extraits pendant la période de recherche.

{
  "_links": {
    "self": {
      "href": "https://api.nexmo.com/v2/reports/records?account_id=<API-KEY>&product=REPORTS-USAGE&date_start=YYYY-MM-DDTHH%3AMM%3ASSZ&date_end=YYYY-MM-DDTHH%3AMM%3ASSZ"
    }
  },
  "request_id": "555042c5-368a-4fd2-b983-f24197692bac",
  "request_status": "SUCCESS",
  "received_at": "2021-10-07T09:08:58+00:00",
  "price": 0.0,
  "currency": "",
  "limit": 1000,
  "items_count": 3,
  "include_subaccounts": false,
  "records": [
    ...
  ],
  "product": "REPORTS-USAGE",
  "account_id": "<API-KEY>",
  "date_start": "2021-10-06T00:00:00+00:00",
  "date_end": "2021-10-07T23:59:00+00:00",
  "endpoint_type": "PUBLIC"
}

Récupérer des enregistrements de manière asynchrone

Les enregistrements peuvent être récupérés de manière asynchrone en créant un rapport asynchrone et en définissant le paramètre product à "REPORTS-USAGE". L'exemple suivant montre comment créer un rapport asynchrone :

curl -X POST https://api.nexmo.com/v2/reports/ \ -u $API_KEY:$API_SECRET \ -H "Content-Type: application/json" \ -d '{"account_id": "API_KEY","product": "REPORTS-USAGE","direction": "outbound","date_start": "2024-06-01T00:00:00+0000","date_end": "2024-07-01T00:00:00+0000"}'

Pour plus d'informations, voir le site créer un rapport CSV à l'aide de la ligne de commande page.

Extraits de code

Tutoriels

Référence API