Using Notion’s API to share pages by setting a People property causes errors with both page and database parents. Try this alternative approach:
var fetchedPage = await notionService.FetchPageAsync(pageId);
fetchedPage.Attributes["members"] = new MemberGroup { GroupId = "Admins", Users = externalUsersList };
await notionService.CommitPageUpdateAsync(pageId, fetchedPage.Attributes);
hey, i tried making a sharable link then adding externals as viewers. works better than touchng the people property. check your api scopes too, might be the trick!
hey guys, i tried an alternative approach: fetch the page then assign a temp sharing token for external access. its not perfect but bypasses the people property glitches. might be a handy workaround if api permission settings are a pain.
I encountered a similar challenge when trying to share a Notion page externally. Instead of modifying the People property, I opted to create a dedicated public view for the page. This involved setting a temporary public sharing option that allowed external users to access the content without encountering permission errors. Although this approach isn’t perfect because it requires enabling public sharing for a period of time, it proved to be a reliable alternative. Exploring this method helped me manage external access when direct API modifications led to complications.
Based on my experience, a viable workaround was to generate a custom access token dedicated solely for external users. Instead of modifying the People property, I fetched the page data before injecting a temporary token. This token was then used by an external interface to retrieve the content on a separate read-only endpoint. Although it required additional coordination between our API and access management layers, this method minimized issues with permission errors. Careful auditing of API scopes and thorough testing proved essential to ensure the solution operated as expected in all use cases.
In my experience managing external access to Notion pages via the API, I discovered that a more robust solution was to integrate a secondary service that handles notifications for page updates. By setting up a webhook to monitor changes, I could then trigger an additional process that customized permissions for external users. Although this approach required setting up intermediate logic and a bit of extra coordination with the API, it provided a reliable way to work around the People property limitations. Testing this method thoroughly saved me a lot of time in troubleshooting permission errors.