Skip to content

Complete contact and conversation pagination

Released: October 1, 2026

Reliable bulk-list traversal Fixed

Section titled “Reliable bulk-list traversal ”

GET /v1/{phone_number_id}/contacts and GET /v1/{phone_number_id}/conversations now preserve full timestamp precision inside their opaque cursors.

Previously, a large import or history sync could create many rows within the same millisecond. A cursor at that boundary could skip some of those rows even though they remained retrievable through an exact filter. Iterating until has_more is false now returns every matching row without that gap.

No client changes are required. Continue passing each next_cursor value back verbatim and do not parse or modify it.

Review pagination semantics