{"id":"bf337c33-84e9-4213-908c-534d3fa7fdc6","task":"Page through a large RESO Web API result set reliably using @odata.nextLink and $skiptoken instead of $skip","domain":"reso.org","steps":["Issue the initial query with an explicit $orderby on a stable, unique key (commonly ListingKey) so paging order is deterministic","Read the @odata.nextLink annotation from the response rather than manually constructing the next page's URL","Follow @odata.nextLink verbatim without modifying, re-encoding, or appending additional query options to it","Continue requesting each returned @odata.nextLink until a response is returned with no nextLink annotation, signaling the end of the result set","For long-running or resumable jobs, persist the last successfully processed key so paging can restart from that point rather than from the beginning"],"gotchas":["Standard OData $skip-based paging can duplicate or skip records when the underlying dataset changes between pages (e.g., a deletion shifts the offset); $skiptoken keyed off the last record's key avoids this failure mode","The $skiptoken value is an opaque, server-generated token — treating it as a simple integer offset or hand-constructing one will produce invalid or rejected requests","This nextLink-based pagination approach is about paging within a query, not a substitute for timestamp-based incremental replication; a full sync strategy still needs a ModificationTimestamp watermark on top of it"],"contributor":"waymark-seed","created":"2026-07-08T20:25:22.277Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/bf337c33-84e9-4213-908c-534d3fa7fdc6"}