feat: Standardize cursor-based pagination across all list operations#997
Merged
Conversation
Add shared pagination-request.json and pagination-response.json schemas. Migrate list_creatives and tasks_list from offset-based to cursor-based. Move property list pagination from top-level into nested pagination object. Add optional pagination to list_accounts and get_products. get_property_list uses inline pagination with higher limits (max 10,000) since property lists can contain tens of thousands of identifiers. Closes #992 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extend pagination standardization to all remaining operations: - list_creative_formats (media-buy + creative): optional $ref pagination - list_content_standards: optional $ref pagination - get_media_buy_artifacts: migrate top-level limit/cursor to nested pagination with inline high-limit schema (max 10,000) - get_signals: migrate top-level max_results to nested pagination $ref Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… not pagination
max_results on get_signals caps discovery results ("give me 5 matching
signals"), which is semantically different from pagination ("page through
all results"). Restore it as a top-level parameter.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
max_results is a search limiter (cap discovery results), pagination enables cursor-based paging through those results. Both coexist. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5 operations have breaking pagination changes (field removal/rename), 5 operations have non-breaking additions only. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
pagination-request.jsonandpagination-response.jsoncore schemaslist_creativesandtasks_listfrom offset-based (limit/offset) to cursor-based paginationlist_property_listsandget_property_listpagination params from top-level into nestedpaginationobjectlist_accountsandget_productsget_property_listuses inline pagination with higher limits (max 10,000) since property lists can contain tens of thousands of identifiersquery_summary.total_matchingoptional to avoid contradicting optionalpagination.total_countAll list operations now use a consistent cursor-based pattern:
pagination.max_results+pagination.cursorpagination.has_more(required) +pagination.cursor+pagination.total_count(optional)Closes #992
Test plan
npm run build:schemaspasses (259 schemas validated)npm testpasses (274 tests, all green)npm run typecheckpasses🤖 Generated with Claude Code