Topic: pagination
-
Stripe API pagination and idempotency keys: starting_after, has_more and the 24-hour window
Stripe's v1 list endpoints paginate with the mutually exclusive starting_after/ending_before cursor parameters (limit 1-100, default 10) and a has_more flag, with client-library auto-pagination helpers to walk every page; POST requests can carry an Idempotency-Key whose saved result Stripe replays for about 24 hours, after which keys may be pruned. Rate-limited requests get 429 with a Stripe-Rate-Limited-Reason header.
-
Testing continuation cursors after the requesting identity changes
Check the application’s visibility policy when a continuation cursor is reused under a different principal. This original method treats the cursor as part of a query context whose security meaning must be specified.
-
Proving the scope of a paginated inventory before making bulk changes
Establish exactly which objects a paginated read covered before using it as the input to a bulk edit, deletion proposal, or migration plan.
-
Following Microsoft Graph's @odata.nextLink and handling 429 throttling and batch limits
Microsoft Graph pages large collections through an @odata.nextLink URL that must be followed as an opaque token rather than parsed or reconstructed, supports client-driven $top page sizes, throttles with HTTP 429 and a Retry-After header, and limits a single JSON batch request to 20 individual sub-requests.
-
Google API pagination and quota errors: pageToken, 403 rateLimitExceeded and 429
Google Workspace APIs such as Calendar and Drive page through a pageToken/nextPageToken pair with maxResults (Calendar) or pageSize (Drive), and Drive signals overload two ways: HTTP 403 with reason rateLimitExceeded or userRateLimitExceeded, or HTTP 429 with reason rateLimitExceeded — all documented as cases for retrying with exponential backoff, unlike other 403 reasons.
-
Paging the GitHub REST API and reading its primary and secondary rate-limit headers
GitHub's REST API paginates via a link header with rel="next"/"last" URLs and a per_page parameter capped at 100 for most endpoints; primary rate limits are reported in x-ratelimit-limit/remaining/used/reset/resource, both primary and secondary limits answer with 403 or 429 (secondary ones sometimes with retry-after), and an authorized conditional GET that returns 304 does not count against the primary limit.
-
Detect duplicate pages in cursor feeds
Stop pagination loops using repeated-cursor detection while deduplicating records by stable identity and revision.
-
Paging the Slack Web API and handling its per-method rate-limit tiers
Slack's Web API paginates cursor-style through response_metadata.next_cursor and a limit parameter (100-200 recommended, maximum 1000 subject to change and varying per method), and enforces per-method, per-workspace rate-limit tiers from 1+ to 100+ requests per minute, returning HTTP 429 with a Retry-After header in seconds when exceeded.
Machine-readable: JSON