Cómo gestionar la paginación en la API de Reports API síncrona
Cuando se solicitan datos a la API de Reports, es posible que la respuesta no incluya todos los registros disponibles si el conjunto de datos contiene más de 1000 registros. En estos casos, la API devuelve una respuesta con el estado TRUNCATED, lo que indica que hay registros adicionales disponibles.
A TRUNCATED La respuesta incluye un cursor y un iv (vector de inicialización), que son necesarios para recuperar el siguiente conjunto de resultados.
Puede manejar la paginación de dos maneras:
- Utiliza el
_links.next.hrefproporcionada en la respuesta (recomendado). - Pasar manualmente el
cursoryivvalores en tu próxima solicitud.
Repite este proceso hasta que la respuesta de la API ya no sea TRUNCATEDlo que significa que se han recuperado todos los registros.
Solicitud inicial
He aquí un ejemplo de solicitud inicial para recuperar registros:
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
Ejemplo de una respuesta TRUNCADA
Si el conjunto de resultados contiene más de 1000 registros, la API responde con un "request_status": "TRUNCATED" e incluye el valor cursor, ivy un next enlace para acceder a la siguiente página.
{
"_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"
}
]
}
Cargando la página siguiente
Siempre que la respuesta contenga "request_status": "TRUNCATED", lo que significa que hay más resultados disponibles.
Hay dos formas de recuperar la página siguiente:
Opción 1 - Utilice el next Enlace (recomendado)
El método más sencillo consiste en enviar una solicitud GET a la URL indicada en el archivo _links.next.href parámetro del TRUNCATED respuesta, que ya está configurada con el cursor y iv valores para su solicitud:
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
Opción 2 - Añadir manualmente cursor y iv
Si creas las solicitudes manualmente, reutiliza todos los parámetros de tu solicitud inicial y añade el cursor y iv de los valores anteriores TRUNCATED respuesta.
Continuar hasta que se hayan recuperado todos los registros
Cada respuesta paginada también puede ser TRUNCATED.
Continúe siguiendo el next (o utilizando valores cursor/iv actualizados) hasta que la respuesta de la API deje de ser TRUNCATED.
Esto indica que se han recuperado todos los registros disponibles.