同期レポートAPIのページネーションの処理方法
Reports API からデータを要求した場合、データセットに 1000 を超えるレコードが含まれていると、応答には利用可能なすべてのレコードが含まれないことがあります。このような場合、API は以下のステータスの応答を返します。 TRUNCATED追加記録があることを示す。
A TRUNCATED 応答には cursor そして iv (初期化ベクトル)は、次の結果セットを取得するために必要である。
ページネーションには2つの方法がある:
- を使用する。
_links.next.hrefレスポンスで提供されたURL (おすすめ). - を手動で渡す。
cursorそしてiv値を次のリクエストに追加する。
APIのレスポンスが以下のようになるまで、このプロセスを繰り返す。 TRUNCATEDすべてのレコードが検索されたことを意味する。
初回リクエスト
レコードを検索するための最初のリクエストの例である:
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
TRUNCATEDレスポンスの例
結果セットに1000件以上のレコードが含まれる場合、APIは "request_status": "TRUNCATED" 値が含まれる。 cursor, ivそして next リンクをクリックすると、次のページが表示される。
{
"_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"
}
]
}
次のページの取得
レスポンスに "request_status": "TRUNCATED"それは、より多くの結果が得られることを意味する。
次のページを取得するには2つの方法がある:
オプション1 next リンク(推奨)
で指定されたURLに
GET
リクエストを送るのが最も簡単な方法である。 _links.next.href パラメータを TRUNCATED レスポンスは、すでに正しい設定になっている。 cursor そして iv あなたのリクエストに応えます: 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
オプション2 - 手動で追加する cursor そして iv
リクエストを手動で作成する場合は、最初のリクエストからすべてのパラメータを再利用し、そのパラメータに cursor そして iv 前回の TRUNCATED と答えた。
すべてのレコードが取得されるまで続ける
ページ分割された各レスポンスは TRUNCATED.
に従い続ける。 next リンク(または更新されたカーソル/iv値)を使用して、APIレスポンスがもはやないまで TRUNCATED.
これは、利用可能なすべてのレコードが検索されたことを示す。