Retrieving page revision history via Notion API

Hey everyone,

I’ve been trying to figure out how to get the page revision history using the Notion API. You know, the stuff you can see when you click the ‘Updates’ button in the Notion app. I’ve looked everywhere, even in the official API docs, but I can’t find anything about it.

Is there a way to do this? Maybe I’m missing something obvious. It would be really helpful for tracking changes in my projects.

If anyone has experience with this or knows a workaround, I’d really appreciate some help. Thanks in advance!

# Example of what I'm looking for:
import notion_api

page_id = 'abc123'
page_history = notion_api.get_page_history(page_id)

for update in page_history:
    print(f'Update on {update.date}: {update.description}')

This is just a made-up example, but something like this would be awesome. Let me know if you have any ideas!

I’ve grappled with this exact issue in my projects. While the API doesn’t offer direct access to revision history, I’ve found a clever workaround that might help. I built a simple script that regularly polls the Notion page and stores snapshots in a local database. It’s not perfect, but it gets the job done. The basic idea is to fetch the page content periodically, compare it with the previous version, and if there are changes, store the new version with a timestamp.

This approach has saved me countless times when I needed to track changes or roll back to a previous version. It does require some setup and maintenance, but it’s worth it for critical projects. One caveat: this method won’t capture every single edit, especially if multiple changes happen between polls. For most use cases, it’s a solid solution until Notion hopefully adds official revision history to their API.

Unfortunately, the Notion API doesn’t currently offer a direct method to retrieve page revision history. This is a limitation many developers have encountered. While the ‘Updates’ feature is available in the Notion app interface, it’s not accessible via the API.

As a workaround, you could consider implementing your own version control system. This might involve periodically fetching the page content and storing snapshots in your own database. You’d then compare these snapshots to identify changes.

Another approach could be using Notion’s webhooks to receive real-time updates when a page changes. This wouldn’t give you the full history, but it would allow you to track changes as they happen.

It’s worth keeping an eye on Notion’s API changelog. They might introduce this feature in future updates, given its usefulness for tracking document evolution.

yeah, notion’s api can be frustrating sometimes. i’ve run into similar issues. one thing u could try is using the ‘last edited time’ property for blocks. it’s not perfect, but it gives u some idea of when changes happened. maybe combine that with regular content snapshots to piece together a basic history? just a thought. good luck!