如何高效获取Notion集成有权访问的所有数据库列表
Notion 获取授权数据库列表最优方案
核心解决方案(官方推荐)
你之前直接调用/search接口未加过滤参数才会返回页面、数据库内记录等无关内容,只要在POST请求体中添加类型过滤条件,即可仅返回集成有权访问的所有数据库,完全可以替代已经废弃的https://api.notion.com/v1/databases端点。
请求示例:
接口地址:POST https://api.notion.com/v1/search
请求体配置:
{ "filter": { "value": "database", "property": "object" }, "page_size": 100 }
场景化优化方案
如果你仅需要查询某个父页面下的所有数据库,不需要遍历整个工作区资源,可以调用/v1/blocks/{父页面ID}/children接口,对返回的子资源列表过滤object为database的条目即可,查询效率更高。
注意事项
- 所有需要被查询到的数据库,都需要手动将你的集成添加到对应数据库的共享列表中,Notion 集成采用逐资源授权机制,未授权的资源无法通过接口检索到
- 请求时需携带正确的
Notion-Version请求头,建议使用官方最新的版本号避免兼容性问题 - 如果检索结果超过单页上限,可携带响应返回的
next_cursor作为下一次请求的start_cursor参数,拉取全量数据库列表
内容的提问来源于stack exchange,提问作者user16578778
相关产品推荐
相关产品推荐

