Developer changelog, snapshot dated 2026-05-18

Notion API updates, May 2026: what shipped and what it still cannot reach

Notion shipped a developer-platform release in mid-May 2026. Most write-ups stop at listing the four new things. This one does the list too, then does the part those write-ups skip: the workspace tasks the REST API still has no endpoint for, even after this release, and what you do about them.

M
Matthew Diakonov
7 min read

Direct answer (verified 2026-05-18)

The mid-May 2026 Notion API release added four things: a meeting notes query endpoint with filter, sort, and limit support; a 10,000-result pagination cap on data source and view query endpoints, with a new request_status field that flags truncated result sets; multi-value filters that let equals / does_not_equal on select and status, and contains / does_not_contain on multi_select, take an array of values; and agent-tool fixes to the search and fetch tools, including a new is_archived flag on fetched page resources. The authoritative, always-current list is Notion's developer changelog; the wider release context sits under the 3.5 developer platform release notes.

The May 2026 changelog, in one table

Four entries. Two of them, the pagination cap and the multi-value filters, touch query endpoints you almost certainly already call. The other two, the meeting notes endpoint and the agent-tool fixes, only matter if your integration uses those features. Read the area column first to decide whether a row is your problem.

ChangeAreaWhat it does
Meeting notes query endpointNew endpointReturns AI meeting notes for the integration's user. Accepts optional filter, sort, and limit. Attendee aliases are normalized.
10,000-result pagination capQuery endpointsData source and view query endpoints stop at 10,000 results. A new request_status field reports when a query matched more rows than the cap.
Multi-value property filtersFiltersequals and does_not_equal on select and status, and contains and does_not_contain on multi_select, now accept an array of values.
Agent tool fixesAgent toolsThe search tool keeps Slack DM and private-channel results when the Slack integration is enabled. The fetch tool accepts any first-party Notion domain, and its page resources now include an is_archived flag.

Source: Notion developer changelog, developers.notion.com/page/changelog. SDK landing tracked at the notion-sdk-js releases page.

The one change that can quietly break a sync

Three of the four entries are additive. You can ignore the meeting notes endpoint, the agent-tool fixes, and the multi-value filters indefinitely and nothing you built stops working. The pagination cap is different, and it is the one worth slowing down on.

Before this release, the contract for paging a query was simple: keep requesting pages while has_more is true, and when it goes false you have the whole result set. With a 10,000-result cap, that contract no longer holds for large databases. has_more can go false because you reached the end, or because you hit the cap. The only way to tell the two apart is the new request_status field in the response.

If your integration syncs a database that could ever exceed ten thousand matching rows, treat an incomplete request_status as a real code branch, not a logged warning. The practical fix is to narrow the query with filters so each call returns under the cap, or to partition the read by a date or status property. The thing you cannot do anymore is assume one query call enumerates an arbitrarily large database.

Upgrading an existing integration for the May 2026 changes

1

Audit every query endpoint call

Find each place you call a data source or view query endpoint. For any that can return large result sets, you have a pagination assumption to fix.

2

Read request_status on every page

Stop trusting has_more alone for completeness. Branch on request_status, and surface an incomplete result set as an error or a narrowed retry, not a silent partial sync.

3

Collapse or-block filters where it helps

Optional. Anywhere you built an or block of single-value conditions on select, status, or multi_select, you can now pass an array to one condition. Smaller payloads, same result.

4

Pin your SDK version

If you use notion-sdk-js, check the GitHub releases page for the version that includes these changes, and pin to it so a future bump does not surprise you.

What the changelog never closes

Here is the part the other guides on this release skip entirely. The Notion REST API is a deliberately bounded surface. It is not a mirror of the desktop client, and no single monthly update is going to make it one. After the May 2026 release it exposes pages, databases and data sources, blocks, users, comments, file uploads, search, and the newer agent and meeting-notes endpoints. That is a lot. It is also a subset.

These are real tasks people automate, and as of mid-May 2026 not one of them has a public endpoint:

Reordering blocks and database views

Drag-to-reorder of blocks inside a page, and rearranging or reconfiguring saved database views, are UI gestures with no equivalent REST endpoint.

In-editor Notion AI

Invoking the AI surface inside a page, accepting or rejecting its suggestions, and AI autofill on a property happen in the client, not over the API.

Workspace and member settings

Changing workspace settings, managing members and permission groups, and billing all live in admin UI with no public endpoint.

Very large database enumeration

After the 10,000-result cap, a single query call no longer fully enumerates an oversized database. You either filter down or drive the UI.

Sidebar and navigation state

Expanding the sidebar tree, pinning pages, and moving items between teamspaces are navigation actions the API does not model.

None of this is a complaint about Notion. A bounded API is the correct design: it is stable, versioned, and safe to build on. But it means a REST client and a desktop agent that drives the real app are different tools, and the gap above is exactly where the second tool earns its place.

How a desktop agent reaches the gap, honestly

Fazm is a native macOS app that wraps Claude Code and Codex. The same agent loop that edits your code reaches past the terminal, into the browser and native Mac apps, through accessibility APIs rather than screenshot guessing. So the obvious question for this page: can it drive Notion?

The honest answer is yes, but not the way it drives Finder or Mail. Notion's desktop app exposes a thin accessibility tree. The editor is a contenteditable surface, and the macOS accessibility tree underdescribes block boundaries inside it. So for Notion specifically, Fazm leans on the browser extension: it drives the real notion.so tab in your already-logged-in browser, the way a human would, with a screenshot fallback when the tree is not enough. That is the anchor fact for this page, and it is checkable: it is why Notion behaves differently from a native Cocoa app inside a desktop agent.

What that buys you is the gap. Reordering blocks, accepting an in-editor AI suggestion, reconfiguring a database view, moving a page between teamspaces: UI-only tasks with no REST endpoint, done by an agent operating the actual interface. It also means no integration token and no OAuth dance for personal automation, because the agent is using your existing session.

The tradeoff is equally honest. When an endpoint exists, an API call is faster and more reliable than driving a UI. So this is not a pitch to throw away the Notion API. It is the opposite: use the API for everything in the table above, and reach for a desktop agent only for the tasks the table cannot cover. Fazm is fully open source and runs locally, so the part that clicks around inside your logged-in browser is inspectable.

Have a Notion workflow the API cannot reach?

Walk through it with us and see whether a desktop agent driving the real app is the right fit, or whether the REST API already covers you.

Frequently asked questions

Frequently asked questions

What changed in the Notion API in May 2026?

The mid-May 2026 release, published on Notion's developer changelog and grouped under the platform's 3.5 release notes, has four headline items. First, a meeting notes query endpoint that returns AI meeting notes for the integration's user, with optional filter, sort, and limit parameters and normalized attendee aliases. Second, a 10,000-result pagination limit on data source and view query endpoints, with a new request_status field in the response that tells you when a query matched more rows than the cap. Third, multi-value filters: equals and does_not_equal on select and status properties, and contains and does_not_contain on multi_select properties, now accept an array of values instead of a single value. Fourth, agent-tool fixes: the search tool no longer drops Slack DMs and private channel results when the workspace has the Slack integration enabled, the fetch tool accepts any first-party Notion domain, and page resources from the fetch tool now carry an is_archived flag.

Why does the new request_status field matter?

Before this release, a query endpoint that matched more rows than the engine would page through gave you no signal that the result set was truncated. You paged until has_more was false and assumed you had everything. With the 10,000-result cap, has_more going false no longer guarantees completeness, so the response now includes request_status. If your integration syncs a large database, you have to read request_status on every page and treat an incomplete status as a real branch in your code, not an edge case. The honest reading of this change is that very large Notion databases are no longer fully enumerable through a single query call, and you need filtering or a different access path for those.

Do multi-value filters replace the old compound filter syntax?

No. The old approach was to build an or block with one condition per value, which still works. The May 2026 change lets equals, does_not_equal, contains, and does_not_contain take an array directly, which collapses a five-value or block into one condition. It matches the multi-value conditions the Notion UI already supported. It is a convenience and a payload-size win, not a breaking change, so existing or-block filters keep working and you can migrate at your own pace.

Is the meeting notes query endpoint available to every integration?

It returns AI meeting notes scoped to the integration's user, which means it depends on the integration's authorized user having access to those notes and on the workspace having the meeting notes feature. It is not a workspace-wide firehose. Treat it as a per-user read with filter, sort, and limit, and check the official changelog at developers.notion.com for the exact capability and scope requirements before you build against it.

Why can the Notion REST API still not do everything I see in the app?

Because the REST API is a deliberately bounded surface, not a mirror of the desktop client. As of mid-May 2026 it exposes pages, databases and data sources, blocks, users, comments, file uploads, search, and the newer agent and meeting-notes endpoints. It does not expose the editor's full block-level interaction model, view configuration changes, sidebar and workspace navigation, account and member settings, or the in-editor Notion AI surface. Anything that lives only in the UI has no endpoint, and no May 2026 update changed that. That gap is structural, which is why a desktop agent that drives the real app is a different tool from an API client, not a worse one.

How does Fazm automate Notion if the API does not cover the task?

Fazm wraps Claude Code and Codex in a native macOS app, and the same agent loop reaches past the terminal. For Notion specifically it leans on the browser extension, because Notion's desktop app exposes a thin accessibility tree: the editor is a contenteditable surface and the macOS accessibility tree underdescribes block boundaries. So Fazm drives the real notion.so tab in your already-logged-in browser, the way a human would, with a screenshot fallback when the tree is not enough. That means it can do UI-only tasks the REST API has no endpoint for, and it does not need an integration token or OAuth setup for personal automation. The tradeoff is honest: an API call is faster and more reliable than driving a UI when an endpoint exists, so Fazm is the right tool for the gap, not a replacement for the API where the API already works.

Where is the authoritative, always-current Notion API changelog?

Notion publishes it at developers.notion.com on the changelog page. The notion.com releases pages cover the broader product, including the 3.5 developer platform release notes. For the official JavaScript SDK, the makenotion/notion-sdk-js releases page on GitHub tracks which API changes have landed in a published client version. This page is a snapshot dated 2026-05-18; for anything time-sensitive, the developer changelog is the source of truth.

How did this page land for you?

React to reveal totals

Comments ()

Leave a comment to see what others are saying.

Public and anonymous. No signup.