Comment gérer la pagination pour l'API Reports Synchronous
Lorsque vous demandez des données à l'API Reports, il se peut que la réponse n'inclue pas tous les enregistrements disponibles si l'ensemble de données contient plus de 1 000 enregistrements. Dans ce cas, l'API renvoie une réponse avec le statut TRUNCATEDindiquant que des enregistrements supplémentaires sont disponibles.
A TRUNCATED La réponse comprend un cursor et un iv (vecteur d'initialisation), qui sont nécessaires pour récupérer la prochaine série de résultats.
Vous pouvez gérer la pagination de deux manières :
- Utiliser le
_links.next.hrefURL fournie dans la réponse (recommandé). - Passer manuellement le
cursoretivdans votre prochaine demande.
Vous répétez ce processus jusqu'à ce que la réponse de l'API ne soit plus TRUNCATEDce qui signifie que tous les enregistrements ont été récupérés.
Demande initiale
Voici un exemple de demande initiale d'extraction d'enregistrements :
GET https://api.nexmo.com/v2/reports/records?product=VERIFY-API&date_start=2025-10-28T00:00:00-0000&date_end=2025-10-30T00:00:00-0000&account_id=test123
Exemple de réponse tronquée
Si l'ensemble de résultats contient plus de 1000 enregistrements, l'API répond par un message "request_status": "TRUNCATED" et inclut la valeur cursor, ivet un next pour obtenir la page suivante.
{
"_links": {
"next": {
"href": "https://api.nexmo.com/v2/reports/records?product=VERIFY-API&date_start=2025-10-28T00%3A00%3A00-0000&date_end=2025-10-30T00%3A00%3A00-0000&account_id=test123&cursor=VwwxWeDsSHrf5eDbC7OA4NAUJKjy0Jw91uGIhbsjpH254R3Og6HCsfy5pmcw_Nzerlbt_p6J3xRxvocnv8CIoasCH0C3Z-Gq7n1VQ5Es6hgZKx4m0IN0G6lgqahNjoRoW67XysF32MGzYs2jkol1EmZ_o-TN5wvfILqGuDuXuUiUh-QvmmNPd5p066GTRxhuS6_DGRT-x7Lw2oxV&iv=QnJtvajk5bH0wMX-8JHLRQ"
},
"self": {
"href": "https://api.nexmo.com/v2/reports/records?product=VERIFY-API&date_start=2025-10-28T00%3A00%3A00-0000&date_end=2025-10-30T00%3A00%3A00-0000&account_id=test123"
}
},
"request_id": "aaaa111111-b222-4556-789c-fb123456789",
"request_status": "TRUNCATED",
"cursor": "VwwxWeDsSHrf5eDbC7OA4NAUJKjy0Jw91uGIhbsjpH254R3Og6HCsfy5pmcw_Nzerlbt_p6J3xRxvocnv8CIoasCH0C3Z-Gq7n1VQ5Es6hgZKx4m0IN0G6lgqahNjoRoW67XysF32MGzYs2jkol1EmZ_o-TN5wvfILqGuDuXuUiUh-QvmmNPd5p066GTRxhuS6_DGRT-x7Lw2oxV",
"iv": "QnJtvajk5bH0wMX-8JHLRQ",
"received_at": "2025-10-29T10:04:09+00:00",
"price": 0.0,
"currency": "",
"product": "VERIFY-API",
"account_id": "41aa7248",
"date_start": "2025-10-28T00:00:00+00:00",
"date_end": "2025-10-30T00:00:00+00:00",
"items_count": 1000,
"include_subaccounts": false,
"records": [
{
"account_id": "test123",
"request_id": "06a1e004a84e4b47ab48a15f072ef0dd",
"from": "verify",
"to": "123456789",
"locale": "pl-pl",
"number_type": "MOBILE",
"network": "26003",
"network_name": "Orange Polska S.A.",
"country": "PL",
"country_name": "Poland",
"date_received": "2025-10-29T09:56:36+00:00",
"date_finalized": "2025-10-29T10:01:49+00:00",
"first_event_date": "2025-10-29T09:56:36+00:00",
"last_event_date": "2025-10-29T10:01:43+00:00",
"status": "EXPIRED",
"sms_event_count": "1",
"tts_event_count": "2",
"currency": "",
"pricing_model": "1",
"price": "0.1",
"estimated_price": "0.1",
"sms_price": "0.03980000",
"tts_price": "0.00238217",
"id": "06a1e004a84e4b47ab48a15f072ef0dd"
}
]
}
Recherche de la page suivante
Lorsque la réponse contient "request_status": "TRUNCATED"Cela signifie que davantage de résultats sont disponibles.
Il y a deux façons de récupérer la page suivante :
Option 1 - Utiliser le next Lien (recommandé)
La méthode la plus simple consiste à envoyer une requête
_links.next.href du paramètre TRUNCATED qui est déjà configurée avec la bonne cursor et iv pour votre demande : GET https://api.nexmo.com/v2/reports/records?product=VERIFY-API&date_start=2025-10-28T00%3A00%3A00-0000&date_end=2025-10-30T00%3A00%3A00-0000&account_id=test123&cursor=VwwxWeDsSHrf5eDbC7OA4NAUJKjy0Jw91uGIhbsjpH254R3Og6HCsfy5pmcw_Nzerlbt_p6J3xRxvocnv8CIoasCH0C3Z-Gq7n1VQ5Es6hgZKx4m0IN0G6lgqahNjoRoW67XysF32MGzYs2jkol1EmZ_o-TN5wvfILqGuDuXuUiUh-QvmmNPd5p066GTRxhuS6_DGRT-x7Lw2oxV&iv=QnJtvajk5bH0wMX-8JHLRQ
Option 2 - Ajouter manuellement cursor et iv
Si vous construisez des requêtes manuellement, réutilisez tous les paramètres de votre requête initiale et ajoutez l'élément cursor et iv des valeurs de l'exercice précédent TRUNCATED réponse.
Continuer jusqu'à ce que tous les enregistrements soient récupérés
Chaque réponse paginée peut également être TRUNCATED.
Continuer à suivre le next (ou en utilisant des valeurs de curseur/iv mises à jour) jusqu'à ce que la réponse de l'API ne soit plus TRUNCATED.
Cela indique que tous les enregistrements disponibles ont été récupérés.