Getting database info from child_database block in Notion API

Hey everyone! I’m stuck trying to fetch a database from a child_database block using the Notion API. I’ve got the page and its blocks, but I can’t seem to get the actual database info.

Here’s what I’ve tried:

// Get the page
const myPage = notionClient.pages.retrieve({ page_id: myPageId })

// List the blocks
const blockList = notionClient.blocks.children.list({
  block_id: myPageId,
  page_size: 50
})

// Try to get more info about the child_database block
const blockInfo = notionClient.blocks.retrieve({ block_id: childDatabaseBlockId })
const blockChildren = notionClient.blocks.children.list({ block_id: childDatabaseBlockId })

The block metadata shows it’s a child_database, but I can’t find the database ID. The children list is empty, and the block.retrieve() doesn’t give me more info.

I know the database exists because I can access it through the API elsewhere. Any ideas on how to get the database details from this child_database block? Thanks for your help!

hey there! i’ve dealt with this before. the trick is to use the child_database block’s ID as the database_id in a separate API call.

try this:

const dbBlock = blockList.results.find(b => b.type === ‘child_database’);
const dbInfo = await notionClient.databases.retrieve({ database_id: dbBlock.id });

that should give u all the database details you need. good luck!

I’ve run into this issue before, and it can be tricky! The key is that child_database blocks don’t actually contain the database info directly. Instead, you need to use the id of the child_database block as the database_id in a separate API call.

Try something like this:

const childDatabaseBlock = blockList.results.find(block => block.type === 'child_database');
const databaseId = childDatabaseBlock.id;

const databaseInfo = await notionClient.databases.retrieve({ database_id: databaseId });

This should give you the full database information. Remember, the child_database block is just a reference to the database, not the database itself. Hope this helps solve your problem!

I encountered a similar challenge when working with the Notion API. The solution lies in understanding that child_database blocks are essentially pointers to the actual database. To retrieve the database information, you need to use the block’s ID as the database_id in a separate API call.

Here’s what worked for me:

  1. Identify the child_database block in your block list.
  2. Extract its ID.
  3. Use that ID to fetch the database details.

Example code:

const childDatabaseBlock = blockList.results.find(b => b.type === ‘child_database’);
const databaseId = childDatabaseBlock.id;
const databaseInfo = await notionClient.databases.retrieve({ database_id: databaseId });

This approach should give you access to all the database properties and content. Let me know if you need any clarification on implementing this solution.