Skip to content

Notion API, select all pages with a specific emoji

New Courses Coming Soon

Join the waiting lists

Here’s something I used to select all subpages of a Notion page that used a specific emoji icon:

const notion = new Client({ auth: process.env.NOTION_API_KEY })
const pageId = process.env.NOTION_PAGE_ID

async function getAllSubpagesOfPage(page, notion) {
  const pages = []

  const blocks = await notion.blocks.children.list({
  for (const block of blocks.results) {
    if (block.type === 'child_page') {
      //we need to add icons to the block because 
			//it's not provided by default
      const temp = await notion.pages.retrieve({ page_id: })
      block.icon = temp.icon

  return pages

const pages = await getAllSubpagesOfPage(page, notion) (page) => {
  if (page.icon?.emoji === '✅') {
    //ok the page has that emoji

Here is how can I help you: