Upgrading to Version 2025-09-03
We’ve released Notion API version 2025‑09‑03, introducing first-class support for multi-source databases. This enables a single database to contain multiple linked data sources — unlocking powerful new workflows.
For more information about data sources, see our FAQs.
However, this change is not backwards-compatible. Most existing database integrations must be updated to prevent disruptions.
If your integration is still using a previous API version and a user adds another data source to a database, the following API actions will fail:
- Create page when using the database as the parent
- Database read, write, or query
- Writing relation properties that point to that database
What’s changing
- Most API operations that used
database_idnow require adata_source_id - Several database endpoints have moved or been restructured to support the new data model
What this guide covers
- A breakdown of what’s new and why it changed
- A step-by-step migration checklist to safely update your integrations
Upgrade checklist
Use this checklist to see exactly what must change before you bump Notion-Version to 2025-09-03.
Required steps across all of your integrations
- Add a discovery step to fetch and store the
data_source_idto use in subsequent API calls. - Start sending
data_source_idwhen creating pages or defining relations - Migrate database endpoints to data sources.
- If you use the Search API, update result handling to process data source objects and possible multiple results per database
- If using the TypeScript SDK, upgrade to the correct version and set the new version in your client
- If using webhooks, handle the new shape and bump your subscription version
These steps primarily require code changes in your repositories or low-code platform. They cannot be fully completed through the Notion integration management UI.
Step-by-step guide
Step 1: Add a discovery step to fetch and store the data_source_id
First, identify the parts of your system that process database IDs. These may include:
- Responses of list and search APIs, e.g. Search.
- Database IDs provided directly by users of your system, or hard-coded based on URLs in the Notion app.
- Events for integration webhooks (covered in the Webhook changes section below).
For each entry point that uses database IDs, start your migration process by introducing an API call to the new Get Database API (GET /v1/databases/:database_id) endpoint to retrieve a list of child data_sources. For this new call, make sure to use the 2025-09-03 version in the Notion-Version header, even if the rest of your API calls haven’t been updated yet.
To get a data source ID in the Notion app, the settings menu for a database includes a “Copy data source ID” button under “Manage data sources”:

For new webhook endpoints, we recommend starting with the most recent version. For existing webhook subscriptions, you’ll need to carefully introduce support for the added and changed webhook types. Ensure your webhook handler can accept both old & new event payloads before using the “Edit subscription” form to upgrade to the 2025-09-03 API version.
After you’ve tested your webhook endpoint to ensure the new events are being handled correctly for some period of time (for example, a few hours), you can clean up your system to only expect events with the updated shape. Read on below for specific details on what’s changed in 2025-09-03.
New and modified event types
New data_source specific events have been added, and the corresponding existing database events now apply at the database level.
Here’s a breakdown of how event types change names or behavior when upgraded to 2025-09-03:
Updates to parent data
With the 2025-09-03 version, all webhooks for entities that can have data sources as parents now include a new field data_source_id under the data.parent object.
This applies to:
- Page events (
page.*) - Data source events (the
data_source.*ones listed above) - Database events (
database.*), but only in rarer cases where databases are directly parented by another database (i.e. wikis)
For example, when a Notion user creates a page within a data source using the Notion app, the resulting page.created event has the following example shape (note the new data.parent.data_source_id field):
For compatibility with multi-source databases, use the provided parent.data_source_id to distinguish which data source the page lives in.