Menu

Post image 1
Post image 2
1 / 2
0

Notion's API Now Caps Pagination at 10,000 Results — Your 'Fetch All Rows' Sync Is Silently Truncating

DEV Community·FlareCanary·20 days ago
#6ktlPUPc
#notion#api#monitoring#javascript#rows#query
Reading 0:00
15s threshold

If you have a Notion integration that "fetches all the rows in this database" — a sync job, an export, a reporting pipeline — it may have started returning incomplete data without throwing anything. As of an early-2026 API change, Notion's paginated query and list endpoints enforce a hard 10,000-result maximum pagination depth . Past that point you don't get an error. You get a 200 OK , no next_cursor , and a new field telling you the result set was truncated — a field most existing code has never heard of and doesn't check. So the loop terminates normally, the caller treats the partial set as the whole set, and everything downstream — the warehouse table, the dashboard, the "we synced N records" log line — is quietly wrong for every database with more than 10k matching rows. What Actually Changed The classic Notion pagination contract was: call the endpoint, read results , if has_more is true call again with start_cursor: next_cursor , repeat until has_more is false .…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.

Read More