@notionhq/client 5.13.0 → 5.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/package.json +1 -1
- package/build/src/Client.d.ts +37 -1
- package/build/src/Client.d.ts.map +1 -1
- package/build/src/Client.js +124 -0
- package/build/src/Client.js.map +1 -1
- package/build/src/api-endpoints.d.ts +841 -3
- package/build/src/api-endpoints.d.ts.map +1 -1
- package/build/src/api-endpoints.js +82 -1
- package/build/src/api-endpoints.js.map +1 -1
- package/build/src/helpers.d.ts +5 -1
- package/build/src/helpers.d.ts.map +1 -1
- package/build/src/helpers.js +7 -0
- package/build/src/helpers.js.map +1 -1
- package/build/src/index.d.ts +2 -2
- package/build/src/index.d.ts.map +1 -1
- package/build/src/index.js +2 -1
- package/build/src/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-endpoints.js","sourceRoot":"","sources":["../../src/api-endpoints.ts"],"names":[],"mappings":"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","sourcesContent":["// cspell:disable-file\n// Note: This is a generated file. DO NOT EDIT!\n\ntype AnnotationRequest = {\n // Whether the text is formatted as bold.\n bold?: boolean\n // Whether the text is formatted as italic.\n italic?: boolean\n // Whether the text is formatted with a strikethrough.\n strikethrough?: boolean\n // Whether the text is formatted with an underline.\n underline?: boolean\n // Whether the text is formatted as code.\n code?: boolean\n // The color of the text.\n color?: ApiColor\n}\n\ntype AnnotationResponse = {\n bold: boolean\n italic: boolean\n strikethrough: boolean\n underline: boolean\n code: boolean\n color: ApiColor\n}\n\n/**\n * One of: `default`, `gray`, `brown`, `orange`, `yellow`, `green`, `blue`, `purple`,\n * `pink`, `red`, `default_background`, `gray_background`, `brown_background`,\n * `orange_background`, `yellow_background`, `green_background`, `blue_background`,\n * `purple_background`, `pink_background`, `red_background`\n */\ntype ApiColor =\n | \"default\"\n | \"gray\"\n | \"brown\"\n | \"orange\"\n | \"yellow\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n | \"default_background\"\n | \"gray_background\"\n | \"brown_background\"\n | \"orange_background\"\n | \"yellow_background\"\n | \"green_background\"\n | \"blue_background\"\n | \"purple_background\"\n | \"pink_background\"\n | \"red_background\"\n\ntype ApiTranscriptionStatus =\n | \"transcription_not_started\"\n | \"transcription_paused\"\n | \"transcription_in_progress\"\n | \"summary_in_progress\"\n | \"notes_ready\"\n\ntype ArrayBasedPropertyValueResponse =\n | TitleArrayBasedPropertyValueResponse\n | RichTextArrayBasedPropertyValueResponse\n | PeopleArrayBasedPropertyValueResponse\n | RelationArrayBasedPropertyValueResponse\n\ntype ArrayPartialRollupValueResponse = {\n // Always `array`\n type: \"array\"\n array: Array<SimpleOrArrayPropertyValueResponse>\n}\n\nexport type AudioBlockObjectResponse = {\n type: \"audio\"\n audio: MediaContentWithFileAndCaptionResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype BlockIdCommentParentResponse = {\n // Always `block_id`\n type: \"block_id\"\n block_id: IdResponse\n}\n\ntype BlockIdParentForBlockBasedObjectResponse = {\n // The parent type.\n type: \"block_id\"\n // The ID of the parent block.\n block_id: IdResponse\n}\n\nexport type BlockObjectRequest =\n | {\n embed: MediaContentWithUrlAndCaptionRequest\n type?: \"embed\"\n object?: \"block\"\n }\n | {\n bookmark: MediaContentWithUrlAndCaptionRequest\n type?: \"bookmark\"\n object?: \"block\"\n }\n | {\n image: MediaContentWithFileAndCaptionRequest\n type?: \"image\"\n object?: \"block\"\n }\n | {\n video: MediaContentWithFileAndCaptionRequest\n type?: \"video\"\n object?: \"block\"\n }\n | {\n pdf: MediaContentWithFileAndCaptionRequest\n type?: \"pdf\"\n object?: \"block\"\n }\n | {\n file: MediaContentWithFileNameAndCaptionRequest\n type?: \"file\"\n object?: \"block\"\n }\n | {\n audio: MediaContentWithFileAndCaptionRequest\n type?: \"audio\"\n object?: \"block\"\n }\n | {\n code: {\n rich_text: Array<RichTextItemRequest>\n language: LanguageRequest\n caption?: Array<RichTextItemRequest>\n }\n type?: \"code\"\n object?: \"block\"\n }\n | {\n equation: ContentWithExpressionRequest\n type?: \"equation\"\n object?: \"block\"\n }\n | { divider: EmptyObject; type?: \"divider\"; object?: \"block\" }\n | { breadcrumb: EmptyObject; type?: \"breadcrumb\"; object?: \"block\" }\n | {\n table_of_contents: { color?: ApiColor }\n type?: \"table_of_contents\"\n object?: \"block\"\n }\n | {\n link_to_page:\n | { page_id: IdRequest; type?: \"page_id\" }\n | { database_id: IdRequest; type?: \"database_id\" }\n | { comment_id: IdRequest; type?: \"comment_id\" }\n type?: \"link_to_page\"\n object?: \"block\"\n }\n | {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n object?: \"block\"\n }\n | {\n table: TableRequestWithTableRowChildren\n type?: \"table\"\n object?: \"block\"\n }\n | { column_list: ColumnListRequest; type?: \"column_list\"; object?: \"block\" }\n | { column: ColumnWithChildrenRequest; type?: \"column\"; object?: \"block\" }\n | {\n heading_1: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"heading_1\"\n object?: \"block\"\n }\n | {\n heading_2: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"heading_2\"\n object?: \"block\"\n }\n | {\n heading_3: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"heading_3\"\n object?: \"block\"\n }\n | {\n paragraph: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"paragraph\"\n object?: \"block\"\n }\n | {\n bulleted_list_item: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"bulleted_list_item\"\n object?: \"block\"\n }\n | {\n numbered_list_item: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"numbered_list_item\"\n object?: \"block\"\n }\n | {\n quote: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"quote\"\n object?: \"block\"\n }\n | {\n to_do: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n checked?: boolean\n }\n type?: \"to_do\"\n object?: \"block\"\n }\n | {\n toggle: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"toggle\"\n object?: \"block\"\n }\n | {\n template: {\n rich_text: Array<RichTextItemRequest>\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"template\"\n object?: \"block\"\n }\n | {\n callout: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n icon?: PageIconRequest\n }\n type?: \"callout\"\n object?: \"block\"\n }\n | {\n synced_block: {\n synced_from: { block_id: IdRequest; type?: \"block_id\" } | null\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"synced_block\"\n object?: \"block\"\n }\n\nexport type BlockObjectRequestWithoutChildren =\n | {\n embed: MediaContentWithUrlAndCaptionRequest\n type?: \"embed\"\n object?: \"block\"\n }\n | {\n bookmark: MediaContentWithUrlAndCaptionRequest\n type?: \"bookmark\"\n object?: \"block\"\n }\n | {\n image: MediaContentWithFileAndCaptionRequest\n type?: \"image\"\n object?: \"block\"\n }\n | {\n video: MediaContentWithFileAndCaptionRequest\n type?: \"video\"\n object?: \"block\"\n }\n | {\n pdf: MediaContentWithFileAndCaptionRequest\n type?: \"pdf\"\n object?: \"block\"\n }\n | {\n file: MediaContentWithFileNameAndCaptionRequest\n type?: \"file\"\n object?: \"block\"\n }\n | {\n audio: MediaContentWithFileAndCaptionRequest\n type?: \"audio\"\n object?: \"block\"\n }\n | {\n code: {\n rich_text: Array<RichTextItemRequest>\n language: LanguageRequest\n caption?: Array<RichTextItemRequest>\n }\n type?: \"code\"\n object?: \"block\"\n }\n | {\n equation: ContentWithExpressionRequest\n type?: \"equation\"\n object?: \"block\"\n }\n | { divider: EmptyObject; type?: \"divider\"; object?: \"block\" }\n | { breadcrumb: EmptyObject; type?: \"breadcrumb\"; object?: \"block\" }\n | {\n table_of_contents: { color?: ApiColor }\n type?: \"table_of_contents\"\n object?: \"block\"\n }\n | {\n link_to_page:\n | { page_id: IdRequest; type?: \"page_id\" }\n | { database_id: IdRequest; type?: \"database_id\" }\n | { comment_id: IdRequest; type?: \"comment_id\" }\n type?: \"link_to_page\"\n object?: \"block\"\n }\n | {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n object?: \"block\"\n }\n | {\n heading_1: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_1\"\n object?: \"block\"\n }\n | {\n heading_2: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_2\"\n object?: \"block\"\n }\n | {\n heading_3: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_3\"\n object?: \"block\"\n }\n | {\n paragraph: ContentWithRichTextAndColorRequest\n type?: \"paragraph\"\n object?: \"block\"\n }\n | {\n bulleted_list_item: ContentWithRichTextAndColorRequest\n type?: \"bulleted_list_item\"\n object?: \"block\"\n }\n | {\n numbered_list_item: ContentWithRichTextAndColorRequest\n type?: \"numbered_list_item\"\n object?: \"block\"\n }\n | {\n quote: ContentWithRichTextAndColorRequest\n type?: \"quote\"\n object?: \"block\"\n }\n | {\n to_do: {\n rich_text: Array<RichTextItemRequest>\n checked?: boolean\n color?: ApiColor\n }\n type?: \"to_do\"\n object?: \"block\"\n }\n | {\n toggle: ContentWithRichTextAndColorRequest\n type?: \"toggle\"\n object?: \"block\"\n }\n | {\n template: ContentWithRichTextRequest\n type?: \"template\"\n object?: \"block\"\n }\n | {\n callout: {\n rich_text: Array<RichTextItemRequest>\n icon?: PageIconRequest\n color?: ApiColor\n }\n type?: \"callout\"\n object?: \"block\"\n }\n | {\n synced_block: {\n synced_from: { block_id: IdRequest; type?: \"block_id\" } | null\n }\n type?: \"synced_block\"\n object?: \"block\"\n }\n\nexport type BlockObjectResponse =\n | ParagraphBlockObjectResponse\n | Heading1BlockObjectResponse\n | Heading2BlockObjectResponse\n | Heading3BlockObjectResponse\n | BulletedListItemBlockObjectResponse\n | NumberedListItemBlockObjectResponse\n | QuoteBlockObjectResponse\n | ToDoBlockObjectResponse\n | ToggleBlockObjectResponse\n | TemplateBlockObjectResponse\n | SyncedBlockBlockObjectResponse\n | ChildPageBlockObjectResponse\n | ChildDatabaseBlockObjectResponse\n | EquationBlockObjectResponse\n | CodeBlockObjectResponse\n | CalloutBlockObjectResponse\n | DividerBlockObjectResponse\n | BreadcrumbBlockObjectResponse\n | TableOfContentsBlockObjectResponse\n | ColumnListBlockObjectResponse\n | ColumnBlockObjectResponse\n | LinkToPageBlockObjectResponse\n | TableBlockObjectResponse\n | TableRowBlockObjectResponse\n | MeetingNotesBlockObjectResponse\n | TranscriptionBlockObjectResponse\n | EmbedBlockObjectResponse\n | BookmarkBlockObjectResponse\n | ImageBlockObjectResponse\n | VideoBlockObjectResponse\n | PdfBlockObjectResponse\n | FileBlockObjectResponse\n | AudioBlockObjectResponse\n | LinkPreviewBlockObjectResponse\n | UnsupportedBlockObjectResponse\n\ntype BlockObjectWithSingleLevelOfChildrenRequest =\n | {\n embed: MediaContentWithUrlAndCaptionRequest\n type?: \"embed\"\n object?: \"block\"\n }\n | {\n bookmark: MediaContentWithUrlAndCaptionRequest\n type?: \"bookmark\"\n object?: \"block\"\n }\n | {\n image: MediaContentWithFileAndCaptionRequest\n type?: \"image\"\n object?: \"block\"\n }\n | {\n video: MediaContentWithFileAndCaptionRequest\n type?: \"video\"\n object?: \"block\"\n }\n | {\n pdf: MediaContentWithFileAndCaptionRequest\n type?: \"pdf\"\n object?: \"block\"\n }\n | {\n file: MediaContentWithFileNameAndCaptionRequest\n type?: \"file\"\n object?: \"block\"\n }\n | {\n audio: MediaContentWithFileAndCaptionRequest\n type?: \"audio\"\n object?: \"block\"\n }\n | {\n code: {\n rich_text: Array<RichTextItemRequest>\n language: LanguageRequest\n caption?: Array<RichTextItemRequest>\n }\n type?: \"code\"\n object?: \"block\"\n }\n | {\n equation: ContentWithExpressionRequest\n type?: \"equation\"\n object?: \"block\"\n }\n | { divider: EmptyObject; type?: \"divider\"; object?: \"block\" }\n | { breadcrumb: EmptyObject; type?: \"breadcrumb\"; object?: \"block\" }\n | {\n table_of_contents: { color?: ApiColor }\n type?: \"table_of_contents\"\n object?: \"block\"\n }\n | {\n link_to_page:\n | { page_id: IdRequest; type?: \"page_id\" }\n | { database_id: IdRequest; type?: \"database_id\" }\n | { comment_id: IdRequest; type?: \"comment_id\" }\n type?: \"link_to_page\"\n object?: \"block\"\n }\n | {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n object?: \"block\"\n }\n | {\n heading_1: HeaderContentWithSingleLevelOfChildrenRequest\n type?: \"heading_1\"\n object?: \"block\"\n }\n | {\n heading_2: HeaderContentWithSingleLevelOfChildrenRequest\n type?: \"heading_2\"\n object?: \"block\"\n }\n | {\n heading_3: HeaderContentWithSingleLevelOfChildrenRequest\n type?: \"heading_3\"\n object?: \"block\"\n }\n | {\n paragraph: ContentWithSingleLevelOfChildrenRequest\n type?: \"paragraph\"\n object?: \"block\"\n }\n | {\n bulleted_list_item: ContentWithSingleLevelOfChildrenRequest\n type?: \"bulleted_list_item\"\n object?: \"block\"\n }\n | {\n numbered_list_item: ContentWithSingleLevelOfChildrenRequest\n type?: \"numbered_list_item\"\n object?: \"block\"\n }\n | {\n quote: ContentWithSingleLevelOfChildrenRequest\n type?: \"quote\"\n object?: \"block\"\n }\n | {\n table: TableRequestWithTableRowChildren\n type?: \"table\"\n object?: \"block\"\n }\n | {\n to_do: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectRequestWithoutChildren>\n checked?: boolean\n }\n type?: \"to_do\"\n object?: \"block\"\n }\n | {\n toggle: ContentWithSingleLevelOfChildrenRequest\n type?: \"toggle\"\n object?: \"block\"\n }\n | {\n template: {\n rich_text: Array<RichTextItemRequest>\n children?: Array<BlockObjectRequestWithoutChildren>\n }\n type?: \"template\"\n object?: \"block\"\n }\n | {\n callout: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectRequestWithoutChildren>\n icon?: PageIconRequest\n }\n type?: \"callout\"\n object?: \"block\"\n }\n | {\n synced_block: {\n synced_from: { block_id: IdRequest; type?: \"block_id\" } | null\n children?: Array<BlockObjectRequestWithoutChildren>\n }\n type?: \"synced_block\"\n object?: \"block\"\n }\n\nexport type BookmarkBlockObjectResponse = {\n type: \"bookmark\"\n bookmark: MediaContentWithUrlAndCaptionResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype BooleanFormulaPropertyResponse = {\n type: \"boolean\"\n boolean: boolean | null\n}\n\ntype BooleanFormulaPropertyValueResponse = {\n // Always `boolean`\n type: \"boolean\"\n boolean: boolean | null\n}\n\ntype BotInfoResponse = {\n // Details about the owner of the bot.\n owner:\n | {\n // Always `user`\n type: \"user\"\n // Details about the owner of the bot, when the `type` of the owner is `user`. This means\n // the bot is for a integration.\n user:\n | {\n // The ID of the user.\n id: IdResponse\n // The user object type name.\n object: \"user\"\n // The name of the user.\n name: string | null\n // The avatar URL of the user.\n avatar_url: string | null\n // The type of the user.\n type: \"person\"\n // The person info of the user.\n person: {\n // The email of the person.\n email?: string\n }\n }\n | PartialUserObjectResponse\n }\n | {\n // Always `workspace`\n type: \"workspace\"\n // Details about the owner of the bot, when the `type` of the owner is `workspace`. This\n // means the bot is for an internal integration.\n workspace: true\n }\n // The ID of the bot's workspace.\n workspace_id: string\n // Limits and restrictions that apply to the bot's workspace\n workspace_limits: {\n // The maximum allowable size of a file upload, in bytes\n max_file_upload_size_in_bytes: number\n }\n // The name of the bot's workspace.\n workspace_name: string | null\n}\n\nexport type BotUserObjectResponse = {\n // Indicates this user is a bot.\n type: \"bot\"\n // Details about the bot, when the `type` of the user is `bot`.\n bot: EmptyObject | BotInfoResponse\n}\n\nexport type BreadcrumbBlockObjectResponse = {\n type: \"breadcrumb\"\n breadcrumb: EmptyObject\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type BulletedListItemBlockObjectResponse = {\n type: \"bulleted_list_item\"\n bulleted_list_item: ContentWithRichTextAndColorResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype ButtonPropertyConfigurationRequest = {\n // Always `button`\n type?: \"button\"\n button: EmptyObject\n}\n\nexport type ButtonPropertyItemObjectResponse = {\n type: \"button\"\n button: EmptyObject\n object: \"property_item\"\n id: string\n}\n\ntype ButtonSimplePropertyValueResponse = {\n // Always `button`\n type: \"button\"\n button: EmptyObject\n}\n\nexport type CalloutBlockObjectResponse = {\n type: \"callout\"\n callout: {\n rich_text: Array<RichTextItemResponse>\n color: ApiColor\n icon: PageIconResponse | null\n }\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype CheckboxDatabasePropertyConfigResponse = {\n // Always `checkbox`\n type: \"checkbox\"\n checkbox: EmptyObject\n}\n\ntype CheckboxPropertyConfigurationRequest = {\n // Always `checkbox`\n type?: \"checkbox\"\n checkbox: EmptyObject\n}\n\ntype CheckboxPropertyFilter = { equals: boolean } | { does_not_equal: boolean }\n\nexport type CheckboxPropertyItemObjectResponse = {\n type: \"checkbox\"\n checkbox: boolean\n object: \"property_item\"\n id: string\n}\n\ntype CheckboxSimplePropertyValueResponse = {\n // Always `checkbox`\n type: \"checkbox\"\n checkbox: boolean\n}\n\nexport type ChildDatabaseBlockObjectResponse = {\n type: \"child_database\"\n child_database: TitleObjectResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type ChildPageBlockObjectResponse = {\n type: \"child_page\"\n child_page: TitleObjectResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type CodeBlockObjectResponse = {\n type: \"code\"\n code: {\n rich_text: Array<RichTextItemResponse>\n caption: Array<RichTextItemResponse>\n language: LanguageRequest\n }\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type ColumnBlockObjectResponse = {\n type: \"column\"\n column: ColumnResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype ColumnBlockWithChildrenRequest = {\n column: ColumnWithChildrenRequest\n type?: \"column\"\n object?: \"block\"\n}\n\nexport type ColumnListBlockObjectResponse = {\n type: \"column_list\"\n column_list: EmptyObject\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype ColumnListRequest = { children: Array<ColumnBlockWithChildrenRequest> }\n\ntype ColumnResponse = {\n // Ratio between 0 and 1 of the width of this column relative to all columns in the list.\n // If not provided, uses an equal width.\n width_ratio?: number\n}\n\ntype ColumnWithChildrenRequest = {\n children: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n // Ratio between 0 and 1 of the width of this column relative to all columns in the list.\n // If not provided, uses an equal width.\n width_ratio?: number\n}\n\nexport type CommentObjectResponse = {\n // The comment object type name.\n object: \"comment\"\n // The ID of the comment.\n id: IdResponse\n // The parent of the comment.\n parent: CommentParentResponse\n // The ID of the discussion thread this comment belongs to.\n discussion_id: IdResponse\n // The time when the comment was created.\n created_time: string\n // The time when the comment was last edited.\n last_edited_time: string\n // The user who created the comment.\n created_by: PartialUserObjectResponse\n // The rich text content of the comment.\n rich_text: Array<RichTextItemResponse>\n // The display name of the comment.\n display_name: {\n // One of: `custom`, `user`, `integration`\n type: \"custom\" | \"user\" | \"integration\"\n resolved_name: string | null\n }\n // Any file attachments associated with the comment.\n attachments?: Array<{\n // One of: `audio`, `image`, `pdf`, `productivity`, `video`\n category: \"audio\" | \"image\" | \"pdf\" | \"productivity\" | \"video\"\n file: InternalFileResponse\n }>\n}\n\ntype CommentParentResponse =\n | PageIdCommentParentResponse\n | BlockIdCommentParentResponse\n\ntype ContentPositionSchema =\n | { type: \"after_block\"; after_block: { id: IdRequest } }\n | { type: \"start\" }\n | { type: \"end\" }\n\ntype ContentWithExpressionRequest = { expression: string }\n\ntype ContentWithRichTextAndColorAndListResponse = {\n rich_text: Array<RichTextItemResponse>\n color: ApiColor\n list_start_index?: number\n list_format?: NumberedListFormat\n}\n\ntype ContentWithRichTextAndColorRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n}\n\ntype ContentWithRichTextAndColorResponse = {\n rich_text: Array<RichTextItemResponse>\n color: ApiColor\n}\n\ntype ContentWithRichTextRequest = { rich_text: Array<RichTextItemRequest> }\n\ntype ContentWithSingleLevelOfChildrenRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectRequestWithoutChildren>\n}\n\ntype ContentWithTableResponse = {\n has_column_header: boolean\n has_row_header: boolean\n table_width: number\n}\n\ntype ContentWithTableRowRequest = { cells: Array<Array<RichTextItemRequest>> }\n\ntype ContentWithTableRowResponse = { cells: Array<Array<RichTextItemResponse>> }\n\ntype CreatedByDatabasePropertyConfigResponse = {\n // Always `created_by`\n type: \"created_by\"\n created_by: EmptyObject\n}\n\ntype CreatedByPropertyConfigurationRequest = {\n // Always `created_by`\n type?: \"created_by\"\n created_by: EmptyObject\n}\n\nexport type CreatedByPropertyItemObjectResponse = {\n type: \"created_by\"\n created_by: PartialUserObjectResponse | UserObjectResponse\n object: \"property_item\"\n id: string\n}\n\ntype CreatedBySimplePropertyValueResponse = {\n // Always `created_by`\n type: \"created_by\"\n created_by: UserValueResponse\n}\n\ntype CreatedTimeDatabasePropertyConfigResponse = {\n // Always `created_time`\n type: \"created_time\"\n created_time: EmptyObject\n}\n\ntype CreatedTimePropertyConfigurationRequest = {\n // Always `created_time`\n type?: \"created_time\"\n created_time: EmptyObject\n}\n\nexport type CreatedTimePropertyItemObjectResponse = {\n type: \"created_time\"\n created_time: string\n object: \"property_item\"\n id: string\n}\n\ntype CreatedTimeSimplePropertyValueResponse = {\n // Always `created_time`\n type: \"created_time\"\n created_time: string\n}\n\ntype CustomEmojiPageIconRequest = {\n // Always `custom_emoji`\n type?: \"custom_emoji\"\n custom_emoji: {\n // The ID of the custom emoji.\n id: IdRequest\n // The name of the custom emoji.\n name?: string\n // The URL of the custom emoji.\n url?: string\n }\n}\n\ntype CustomEmojiPageIconResponse = {\n // Type of icon. In this case, a custom emoji.\n type: \"custom_emoji\"\n // The custom emoji details for the icon.\n custom_emoji: CustomEmojiResponse\n}\n\ntype CustomEmojiResponse = {\n // The ID of the custom emoji.\n id: IdResponse\n // The name of the custom emoji.\n name: string\n // The URL of the custom emoji.\n url: string\n}\n\nexport type DataSourceObjectResponse = {\n // The data source object type name.\n object: \"data_source\"\n // The ID of the data source.\n id: IdResponse\n // The title of the data source.\n title: Array<RichTextItemResponse>\n // The description of the data source.\n description: Array<RichTextItemResponse>\n // The parent of the data source.\n parent: ParentOfDataSourceResponse\n // The parent of the data source's containing database. This is typically a page, block,\n // or workspace, but can be another database in the case of wikis.\n database_parent: ParentOfDatabaseResponse\n // Whether the data source is inline.\n is_inline: boolean\n // Whether the data source is in the trash.\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n // The time when the data source was created.\n created_time: string\n // The time when the data source was last edited.\n last_edited_time: string\n // The user who created the data source.\n created_by: PartialUserObjectResponse\n // The user who last edited the data source.\n last_edited_by: PartialUserObjectResponse\n // The properties schema of the data source.\n properties: Record<string, DatabasePropertyConfigResponse>\n // The icon of the data source.\n icon: PageIconResponse | null\n // The cover of the data source.\n cover: PageCoverResponse | null\n // The URL of the data source.\n url: string\n // The public URL of the data source if it is publicly accessible.\n public_url: string | null\n}\n\ntype DataSourceParentResponse = {\n // The parent type.\n type: \"data_source_id\"\n // The ID of the parent data source.\n data_source_id: IdResponse\n // The ID of the data source's parent database.\n database_id: IdResponse\n}\n\ntype DataSourceReferenceResponse = {\n // The ID of the data source.\n id: IdResponse\n // The name of the data source.\n name: string\n}\n\nexport type DatabaseObjectResponse = {\n // The database object type name.\n object: \"database\"\n // The ID of the database.\n id: IdResponse\n // The title of the database.\n title: Array<RichTextItemResponse>\n // The description of the database.\n description: Array<RichTextItemResponse>\n // The parent of the database. This is typically a page, block, or workspace, but can be\n // another database in the case of wikis.\n parent: ParentOfDatabaseResponse\n // Whether the database is inline.\n is_inline: boolean\n // Whether the database is in the trash.\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n // Whether the database is locked from editing in the Notion app UI.\n is_locked: boolean\n // The time when the database was created.\n created_time: string\n // The time when the database was last edited.\n last_edited_time: string\n // The data sources of the database.\n data_sources: Array<DataSourceReferenceResponse>\n // The icon of the database.\n icon: PageIconResponse | null\n // The cover of the database.\n cover: PageCoverResponse | null\n // The URL of the database.\n url: string\n // The public URL of the database if it is publicly accessible.\n public_url: string | null\n}\n\ntype DatabaseParentResponse = {\n // The parent type.\n type: \"database_id\"\n // The ID of the parent database.\n database_id: IdResponse\n}\n\ntype DatabasePropertyConfigResponse = DatabasePropertyConfigResponseCommon &\n (\n | NumberDatabasePropertyConfigResponse\n | FormulaDatabasePropertyConfigResponse\n | SelectDatabasePropertyConfigResponse\n | MultiSelectDatabasePropertyConfigResponse\n | StatusDatabasePropertyConfigResponse\n | RelationDatabasePropertyConfigResponse\n | RollupDatabasePropertyConfigResponse\n | UniqueIdDatabasePropertyConfigResponse\n | TitleDatabasePropertyConfigResponse\n | RichTextDatabasePropertyConfigResponse\n | UrlDatabasePropertyConfigResponse\n | PeopleDatabasePropertyConfigResponse\n | FilesDatabasePropertyConfigResponse\n | EmailDatabasePropertyConfigResponse\n | PhoneNumberDatabasePropertyConfigResponse\n | DateDatabasePropertyConfigResponse\n | CheckboxDatabasePropertyConfigResponse\n | CreatedByDatabasePropertyConfigResponse\n | CreatedTimeDatabasePropertyConfigResponse\n | LastEditedByDatabasePropertyConfigResponse\n | LastEditedTimeDatabasePropertyConfigResponse\n )\n\ntype DatabasePropertyConfigResponseCommon = {\n // The ID of the property.\n id: string\n // The name of the property.\n name: string\n // The description of the property.\n description: PropertyDescriptionRequest | null\n}\n\ntype DatabasePropertyRelationConfigResponse =\n DatabasePropertyRelationConfigResponseCommon &\n (\n | SinglePropertyDatabasePropertyRelationConfigResponse\n | DualPropertyDatabasePropertyRelationConfigResponse\n )\n\ntype DatabasePropertyRelationConfigResponseCommon = {\n database_id: IdResponse\n data_source_id: IdResponse\n}\n\ntype DateDatabasePropertyConfigResponse = {\n // Always `date`\n type: \"date\"\n date: EmptyObject\n}\n\ntype DateFormulaPropertyResponse = { type: \"date\"; date: DateResponse | null }\n\ntype DateFormulaPropertyValueResponse = {\n // Always `date`\n type: \"date\"\n date: DateResponse | null\n}\n\ntype DatePartialRollupValueResponse = {\n // Always `date`\n type: \"date\"\n date: DateResponse | null\n}\n\ntype DatePropertyConfigurationRequest = {\n // Always `date`\n type?: \"date\"\n date: EmptyObject\n}\n\ntype DatePropertyFilter =\n | { equals: string }\n | { before: string }\n | { after: string }\n | { on_or_before: string }\n | { on_or_after: string }\n | { this_week: EmptyObject }\n | { past_week: EmptyObject }\n | { past_month: EmptyObject }\n | { past_year: EmptyObject }\n | { next_week: EmptyObject }\n | { next_month: EmptyObject }\n | { next_year: EmptyObject }\n | ExistencePropertyFilter\n\nexport type DatePropertyItemObjectResponse = {\n type: \"date\"\n date: DateResponse | null\n object: \"property_item\"\n id: string\n}\n\ntype DateRequest = {\n // The start date of the date object.\n start: string\n // The end date of the date object, if any.\n end?: string | null\n // The time zone of the date object, if any. E.g. America/Los_Angeles, Europe/London,\n // etc.\n time_zone?: TimeZoneRequest | null\n}\n\ntype DateResponse = {\n // The start date of the date object.\n start: string\n // The end date of the date object, if any.\n end: string | null\n // The time zone of the date object.\n time_zone: TimeZoneRequest | null\n}\n\ntype DateSimplePropertyValueResponse = {\n // Always `date`\n type: \"date\"\n date: DateResponse | null\n}\n\nexport type DividerBlockObjectResponse = {\n type: \"divider\"\n divider: EmptyObject\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype DualPropertyDatabasePropertyRelationConfigResponse = {\n // Always `dual_property`\n type?: \"dual_property\"\n dual_property: { synced_property_id: string; synced_property_name: string }\n}\n\ntype EmailDatabasePropertyConfigResponse = {\n // Always `email`\n type: \"email\"\n email: EmptyObject\n}\n\ntype EmailPropertyConfigurationRequest = {\n // Always `email`\n type?: \"email\"\n email: EmptyObject\n}\n\nexport type EmailPropertyItemObjectResponse = {\n type: \"email\"\n email: string | null\n object: \"property_item\"\n id: string\n}\n\ntype EmailSimplePropertyValueResponse = {\n // Always `email`\n type: \"email\"\n email: string | null\n}\n\nexport type EmbedBlockObjectResponse = {\n type: \"embed\"\n embed: MediaContentWithUrlAndCaptionResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype EmojiPageIconRequest = {\n // Always `emoji`\n type?: \"emoji\"\n // An emoji character.\n emoji: EmojiRequest\n}\n\ntype EmojiPageIconResponse = {\n // Type of icon. In this case, an emoji.\n type: \"emoji\"\n // The emoji character used as the icon.\n emoji: EmojiRequest\n}\n\ntype EmojiRequest = string\n\ntype EmptyObject = Record<string, never>\n\nexport type EquationBlockObjectResponse = {\n type: \"equation\"\n equation: ExpressionObjectResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype EquationRichTextItemRequest = {\n // Always `equation`\n type?: \"equation\"\n // Notion supports inline LaTeX equations as rich text objects with a type value of\n // `equation`.\n equation: {\n // A KaTeX compatible string.\n expression: string\n }\n}\n\nexport type EquationRichTextItemResponse = {\n // Always `equation`\n type: \"equation\"\n // Notion supports inline LaTeX equations as rich text objects with a type value of\n // `equation`.\n equation: {\n // A KaTeX compatible string.\n expression: string\n }\n}\n\ntype ExistencePropertyFilter = { is_empty: true } | { is_not_empty: true }\n\ntype ExpressionObjectResponse = { expression: string }\n\ntype ExternalFileRequest = { url: TextRequest }\n\ntype ExternalInternalOrExternalFileWithNameResponse = {\n // Type of attachment. In this case, an external URL.\n type: \"external\"\n // The external URL.\n external: {\n // The URL of the external file or resource.\n url: string\n }\n}\n\ntype ExternalMediaContentWithFileAndCaptionResponse = {\n type: \"external\"\n external: { url: TextRequest }\n caption: Array<RichTextItemResponse>\n}\n\ntype ExternalMediaContentWithFileNameAndCaptionResponse = {\n type: \"external\"\n external: { url: TextRequest }\n caption: Array<RichTextItemResponse>\n name: string\n}\n\ntype ExternalPageCoverRequest = {\n // Always `external`\n type?: \"external\"\n // External URL for the cover.\n external: {\n // The URL of the external file.\n url: string\n }\n}\n\ntype ExternalPageCoverResponse = {\n // Type of cover. In this case, an external URL.\n type: \"external\"\n // The external URL for the cover.\n external: {\n // The URL of the external file or resource.\n url: string\n }\n}\n\ntype ExternalPageIconRequest = {\n // Always `external`\n type?: \"external\"\n external: {\n // The URL of the external file.\n url: string\n }\n}\n\ntype ExternalPageIconResponse = {\n // Type of icon. In this case, an external URL.\n type: \"external\"\n // The external URL for the icon.\n external: {\n // The URL of the external file or resource.\n url: string\n }\n}\n\nexport type FileBlockObjectResponse = {\n type: \"file\"\n file: MediaContentWithFileNameAndCaptionResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype FileInternalOrExternalFileWithNameResponse = {\n // Type of attachment. In this case, a file uploaded to a Notion workspace.\n type: \"file\"\n // The file URL.\n file: InternalFileResponse\n}\n\ntype FileMediaContentWithFileAndCaptionResponse = {\n type: \"file\"\n file: InternalFileResponse\n caption: Array<RichTextItemResponse>\n}\n\ntype FileMediaContentWithFileNameAndCaptionResponse = {\n type: \"file\"\n file: InternalFileResponse\n caption: Array<RichTextItemResponse>\n name: string\n}\n\ntype FilePageCoverResponse = {\n // Type of cover. In this case, a file.\n type: \"file\"\n // The file URL for the cover.\n file: InternalFileResponse\n}\n\ntype FilePageIconResponse = {\n // Type of icon. In this case, a file.\n type: \"file\"\n // The file URL for the icon.\n file: InternalFileResponse\n}\n\ntype FileUploadIdRequest = { id: IdRequest }\n\nexport type FileUploadObjectResponse = {\n // Always `file_upload`\n object: \"file_upload\"\n id: IdResponse\n created_time: string\n created_by: {\n id: IdResponse\n // One of: `person`, `bot`, `agent`\n type: \"person\" | \"bot\" | \"agent\"\n }\n last_edited_time: string\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n expiry_time: string | null\n // One of: `pending`, `uploaded`, `expired`, `failed`\n status: \"pending\" | \"uploaded\" | \"expired\" | \"failed\"\n filename: string | null\n content_type: string | null\n content_length: number | null\n upload_url?: string\n complete_url?: string\n file_import_result?: {\n // The time the file was imported into Notion. ISO 8601 format.\n imported_time: string\n } & (\n | {\n // Indicates a successful import.\n type: \"success\"\n // Empty object for success type.\n success: EmptyObject\n }\n | {\n // Indicates an error occurred during import.\n type: \"error\"\n // Details about the error that occurred during file import.\n error: {\n // The type of error that occurred during file import.\n type:\n | \"validation_error\"\n | \"internal_system_error\"\n | \"download_error\"\n | \"upload_error\"\n // A short string code representing the error.\n code: string\n // A human-readable message describing the error.\n message: string\n // The parameter related to the error, if applicable. Null if not applicable.\n parameter: string | null\n // The HTTP status code associated with the error, if available. Null if not applicable.\n status_code: number | null\n }\n }\n )\n number_of_parts?: { total: number; sent: number }\n}\n\ntype FileUploadPageCoverRequest = {\n // Always `file_upload`\n type?: \"file_upload\"\n // The file upload for the cover.\n file_upload: {\n // ID of a FileUpload object that has the status `uploaded`.\n id: string\n }\n}\n\ntype FileUploadPageIconRequest = {\n // Always `file_upload`\n type?: \"file_upload\"\n file_upload: {\n // ID of a FileUpload object that has the status `uploaded`.\n id: string\n }\n}\n\ntype FileUploadWithOptionalNameRequest = {\n file_upload: FileUploadIdRequest\n type?: \"file_upload\"\n name?: StringRequest\n}\n\ntype FilesDatabasePropertyConfigResponse = {\n // Always `files`\n type: \"files\"\n files: EmptyObject\n}\n\ntype FilesPropertyConfigurationRequest = {\n // Always `files`\n type?: \"files\"\n files: EmptyObject\n}\n\nexport type FilesPropertyItemObjectResponse = {\n type: \"files\"\n files: Array<InternalOrExternalFileWithNameResponse>\n object: \"property_item\"\n id: string\n}\n\ntype FilesSimplePropertyValueResponse = {\n // Always `files`\n type: \"files\"\n files: Array<InternalOrExternalFileWithNameResponse>\n}\n\ntype FormulaDatabasePropertyConfigResponse = {\n // Always `formula`\n type: \"formula\"\n formula: { expression: string }\n}\n\ntype FormulaPropertyConfigurationRequest = {\n // Always `formula`\n type?: \"formula\"\n formula: { expression?: string }\n}\n\ntype FormulaPropertyFilter =\n | { string: TextPropertyFilter }\n | { checkbox: CheckboxPropertyFilter }\n | { number: NumberPropertyFilter }\n | { date: DatePropertyFilter }\n\nexport type FormulaPropertyItemObjectResponse = {\n type: \"formula\"\n formula: FormulaPropertyResponse\n object: \"property_item\"\n id: string\n}\n\ntype FormulaPropertyResponse =\n | StringFormulaPropertyResponse\n | DateFormulaPropertyResponse\n | NumberFormulaPropertyResponse\n | BooleanFormulaPropertyResponse\n\ntype FormulaPropertyValueResponse =\n | BooleanFormulaPropertyValueResponse\n | DateFormulaPropertyValueResponse\n | NumberFormulaPropertyValueResponse\n | StringFormulaPropertyValueResponse\n\ntype FormulaSimplePropertyValueResponse = {\n // Always `formula`\n type: \"formula\"\n formula: FormulaPropertyValueResponse\n}\n\ntype GroupFilterOperatorArray = Array<\n | PropertyOrTimestampFilter\n | { or: PropertyOrTimestampFilterArray }\n | { and: PropertyOrTimestampFilterArray }\n>\n\ntype GroupObjectRequest = {\n id: IdRequest\n name?: string | null\n object?: \"group\"\n}\n\nexport type GroupObjectResponse = {\n // The ID of the group.\n id: IdResponse\n // The group object type name.\n object: \"group\"\n // The name of the group.\n name: string | null\n}\n\ntype HeaderContentWithRichTextAndColorRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n}\n\ntype HeaderContentWithRichTextAndColorResponse = {\n rich_text: Array<RichTextItemResponse>\n color: ApiColor\n is_toggleable: boolean\n}\n\ntype HeaderContentWithSingleLevelOfChildrenRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectRequestWithoutChildren>\n}\n\nexport type Heading1BlockObjectResponse = {\n type: \"heading_1\"\n heading_1: HeaderContentWithRichTextAndColorResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type Heading2BlockObjectResponse = {\n type: \"heading_2\"\n heading_2: HeaderContentWithRichTextAndColorResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type Heading3BlockObjectResponse = {\n type: \"heading_3\"\n heading_3: HeaderContentWithRichTextAndColorResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype IdObjectResponse = { id: string }\n\ntype IdRequest = string\n\ntype IdResponse = string\n\nexport type ImageBlockObjectResponse = {\n type: \"image\"\n image: MediaContentWithFileAndCaptionResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype InitialDataSourceRequest = {\n // Property schema for the initial data source, if you'd like to create one.\n properties?: Record<string, PropertyConfigurationRequest>\n}\n\ntype InternalFileRequest = { url: string; expiry_time?: string }\n\ntype InternalFileResponse = {\n // The URL of the file.\n url: string\n // The time when the URL will expire.\n expiry_time: string\n}\n\ntype InternalOrExternalFileWithNameRequest =\n | { file: InternalFileRequest; name: StringRequest; type?: \"file\" }\n | { external: ExternalFileRequest; name: StringRequest; type?: \"external\" }\n\ntype InternalOrExternalFileWithNameResponse =\n InternalOrExternalFileWithNameResponseCommon &\n (\n | FileInternalOrExternalFileWithNameResponse\n | ExternalInternalOrExternalFileWithNameResponse\n )\n\ntype InternalOrExternalFileWithNameResponseCommon = {\n // The name of the file.\n name: string\n}\n\ntype LanguageRequest =\n | \"abap\"\n | \"abc\"\n | \"agda\"\n | \"arduino\"\n | \"ascii art\"\n | \"assembly\"\n | \"bash\"\n | \"basic\"\n | \"bnf\"\n | \"c\"\n | \"c#\"\n | \"c++\"\n | \"clojure\"\n | \"coffeescript\"\n | \"coq\"\n | \"css\"\n | \"dart\"\n | \"dhall\"\n | \"diff\"\n | \"docker\"\n | \"ebnf\"\n | \"elixir\"\n | \"elm\"\n | \"erlang\"\n | \"f#\"\n | \"flow\"\n | \"fortran\"\n | \"gherkin\"\n | \"glsl\"\n | \"go\"\n | \"graphql\"\n | \"groovy\"\n | \"haskell\"\n | \"hcl\"\n | \"html\"\n | \"idris\"\n | \"java\"\n | \"javascript\"\n | \"json\"\n | \"julia\"\n | \"kotlin\"\n | \"latex\"\n | \"less\"\n | \"lisp\"\n | \"livescript\"\n | \"llvm ir\"\n | \"lua\"\n | \"makefile\"\n | \"markdown\"\n | \"markup\"\n | \"matlab\"\n | \"mathematica\"\n | \"mermaid\"\n | \"nix\"\n | \"notion formula\"\n | \"objective-c\"\n | \"ocaml\"\n | \"pascal\"\n | \"perl\"\n | \"php\"\n | \"plain text\"\n | \"powershell\"\n | \"prolog\"\n | \"protobuf\"\n | \"purescript\"\n | \"python\"\n | \"r\"\n | \"racket\"\n | \"reason\"\n | \"ruby\"\n | \"rust\"\n | \"sass\"\n | \"scala\"\n | \"scheme\"\n | \"scss\"\n | \"shell\"\n | \"smalltalk\"\n | \"solidity\"\n | \"sql\"\n | \"swift\"\n | \"toml\"\n | \"typescript\"\n | \"vb.net\"\n | \"verilog\"\n | \"vhdl\"\n | \"visual basic\"\n | \"webassembly\"\n | \"xml\"\n | \"yaml\"\n | \"java/c/c++/c#\"\n\ntype LastEditedByDatabasePropertyConfigResponse = {\n // Always `last_edited_by`\n type: \"last_edited_by\"\n last_edited_by: EmptyObject\n}\n\ntype LastEditedByPropertyConfigurationRequest = {\n // Always `last_edited_by`\n type?: \"last_edited_by\"\n last_edited_by: EmptyObject\n}\n\nexport type LastEditedByPropertyItemObjectResponse = {\n type: \"last_edited_by\"\n last_edited_by: PartialUserObjectResponse | UserObjectResponse\n object: \"property_item\"\n id: string\n}\n\ntype LastEditedBySimplePropertyValueResponse = {\n // Always `last_edited_by`\n type: \"last_edited_by\"\n last_edited_by: UserValueResponse\n}\n\ntype LastEditedTimeDatabasePropertyConfigResponse = {\n // Always `last_edited_time`\n type: \"last_edited_time\"\n last_edited_time: EmptyObject\n}\n\ntype LastEditedTimePropertyConfigurationRequest = {\n // Always `last_edited_time`\n type?: \"last_edited_time\"\n last_edited_time: EmptyObject\n}\n\nexport type LastEditedTimePropertyItemObjectResponse = {\n type: \"last_edited_time\"\n last_edited_time: string\n object: \"property_item\"\n id: string\n}\n\ntype LastEditedTimeSimplePropertyValueResponse = {\n // Always `last_edited_time`\n type: \"last_edited_time\"\n last_edited_time: string\n}\n\ntype LastVisitedTimePropertyConfigurationRequest = {\n // Always `last_visited_time`\n type?: \"last_visited_time\"\n last_visited_time: EmptyObject\n}\n\ntype LinkMentionResponse = {\n // The href of the link mention.\n href: string\n // The title of the link.\n title?: string\n // The description of the link.\n description?: string\n // The author of the link.\n link_author?: string\n // The provider of the link.\n link_provider?: string\n // The thumbnail URL of the link.\n thumbnail_url?: string\n // The icon URL of the link.\n icon_url?: string\n // The iframe URL of the link.\n iframe_url?: string\n // The height of the link preview iframe.\n height?: number\n // The padding of the link preview iframe.\n padding?: number\n // The top padding of the link preview iframe.\n padding_top?: number\n}\n\nexport type LinkPreviewBlockObjectResponse = {\n type: \"link_preview\"\n link_preview: MediaContentWithUrlResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype LinkPreviewMentionResponse = {\n // The URL of the link preview mention.\n url: string\n}\n\nexport type LinkToPageBlockObjectResponse = {\n type: \"link_to_page\"\n link_to_page:\n | { type: \"page_id\"; page_id: IdRequest }\n | { type: \"database_id\"; database_id: IdRequest }\n | { type: \"comment_id\"; comment_id: IdRequest }\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype LocationPropertyConfigurationRequest = {\n // Always `location`\n type?: \"location\"\n location: EmptyObject\n}\n\ntype MediaContentWithFileAndCaptionRequest =\n | {\n external: ExternalFileRequest\n type?: \"external\"\n caption?: Array<RichTextItemRequest>\n }\n | {\n file_upload: FileUploadIdRequest\n type?: \"file_upload\"\n caption?: Array<RichTextItemRequest>\n }\n\ntype MediaContentWithFileAndCaptionResponse =\n | ExternalMediaContentWithFileAndCaptionResponse\n | FileMediaContentWithFileAndCaptionResponse\n\ntype MediaContentWithFileNameAndCaptionRequest =\n | {\n external: ExternalFileRequest\n type?: \"external\"\n caption?: Array<RichTextItemRequest>\n name?: StringRequest\n }\n | {\n file_upload: FileUploadIdRequest\n type?: \"file_upload\"\n caption?: Array<RichTextItemRequest>\n name?: StringRequest\n }\n\ntype MediaContentWithFileNameAndCaptionResponse =\n | ExternalMediaContentWithFileNameAndCaptionResponse\n | FileMediaContentWithFileNameAndCaptionResponse\n\ntype MediaContentWithUrlAndCaptionRequest = {\n url: string\n caption?: Array<RichTextItemRequest>\n}\n\ntype MediaContentWithUrlAndCaptionResponse = {\n url: string\n caption: Array<RichTextItemResponse>\n}\n\ntype MediaContentWithUrlResponse = { url: TextRequest }\n\n/**\n * @deprecated Use MeetingNotesBlockObjectResponse instead. Renamed in API version 2026-03-11.\n */\nexport type TranscriptionBlockObjectResponse = {\n type: \"transcription\"\n transcription: TranscriptionBlockResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type MeetingNotesBlockObjectResponse = {\n type: \"meeting_notes\"\n meeting_notes: TranscriptionBlockResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype MentionRichTextItemRequest = {\n // Always `mention`\n type?: \"mention\"\n // Mention objects represent an inline mention of a database, date, link preview mention,\n // page, template mention, or user. A mention is created in the Notion UI when a user\n // types `@` followed by the name of the reference.\n mention:\n | {\n // Always `user`\n type?: \"user\"\n // Details of the user mention.\n user: PartialUserObjectRequest\n }\n | {\n // Always `date`\n type?: \"date\"\n // Details of the date mention.\n date: DateRequest\n }\n | {\n // Always `page`\n type?: \"page\"\n // Details of the page mention.\n page: {\n // The ID of the page in the mention.\n id: IdRequest\n }\n }\n | {\n // Always `database`\n type?: \"database\"\n // Details of the database mention.\n database: {\n // The ID of the database in the mention.\n id: IdRequest\n }\n }\n | {\n // Always `template_mention`\n type?: \"template_mention\"\n // Details of the template mention.\n template_mention: TemplateMentionRequest\n }\n | {\n // Always `custom_emoji`\n type?: \"custom_emoji\"\n // Details of the custom emoji mention.\n custom_emoji: {\n // The ID of the custom emoji.\n id: IdRequest\n // The name of the custom emoji.\n name?: string\n // The URL of the custom emoji.\n url?: string\n }\n }\n}\n\nexport type MentionRichTextItemResponse = {\n // Always `mention`\n type: \"mention\"\n // Mention objects represent an inline mention of a database, date, link preview mention,\n // page, template mention, or user. A mention is created in the Notion UI when a user\n // types `@` followed by the name of the reference.\n mention:\n | {\n // Always `user`\n type: \"user\"\n // Details of the user mention.\n user: UserValueResponse\n }\n | {\n // Always `date`\n type: \"date\"\n // Details of the date mention.\n date: DateResponse\n }\n | {\n // Always `link_preview`\n type: \"link_preview\"\n // Details of the link preview mention.\n link_preview: LinkPreviewMentionResponse\n }\n | {\n // Always `link_mention`\n type: \"link_mention\"\n // Details of the link mention.\n link_mention: LinkMentionResponse\n }\n | {\n // Always `page`\n type: \"page\"\n // Details of the page mention.\n page: {\n // The ID of the page in the mention.\n id: IdResponse\n }\n }\n | {\n // Always `database`\n type: \"database\"\n // Details of the database mention.\n database: {\n // The ID of the database in the mention.\n id: IdResponse\n }\n }\n | {\n // Always `template_mention`\n type: \"template_mention\"\n // Details of the template mention.\n template_mention: TemplateMentionResponse\n }\n | {\n // Always `custom_emoji`\n type: \"custom_emoji\"\n // Details of the custom emoji mention.\n custom_emoji: CustomEmojiResponse\n }\n}\n\ntype MultiSelectDatabasePropertyConfigResponse = {\n // Always `multi_select`\n type: \"multi_select\"\n multi_select: { options: Array<SelectPropertyResponse> }\n}\n\ntype MultiSelectPropertyConfigurationRequest = {\n // Always `multi_select`\n type?: \"multi_select\"\n multi_select: {\n options?: Array<{\n name: string\n color?: SelectColor\n description?: string | null\n }>\n }\n}\n\ntype MultiSelectPropertyFilter =\n | { contains: string }\n | { does_not_contain: string }\n | ExistencePropertyFilter\n\nexport type MultiSelectPropertyItemObjectResponse = {\n type: \"multi_select\"\n multi_select: Array<PartialSelectResponse>\n object: \"property_item\"\n id: string\n}\n\ntype MultiSelectSimplePropertyValueResponse = {\n // Always `multi_select`\n type: \"multi_select\"\n multi_select: Array<PartialSelectPropertyValueResponse>\n}\n\ntype NumberDatabasePropertyConfigResponse = {\n // Always `number`\n type: \"number\"\n number: {\n // The number format for the property.\n format: NumberFormat\n }\n}\n\ntype NumberFormat = string\n\ntype NumberFormulaPropertyResponse = { type: \"number\"; number: number | null }\n\ntype NumberFormulaPropertyValueResponse = {\n // Always `number`\n type: \"number\"\n number: number | null\n}\n\ntype NumberPartialRollupValueResponse = {\n // Always `number`\n type: \"number\"\n number: number | null\n}\n\ntype NumberPropertyConfigurationRequest = {\n // Always `number`\n type?: \"number\"\n number: { format?: NumberFormat }\n}\n\ntype NumberPropertyFilter =\n | { equals: number }\n | { does_not_equal: number }\n | { greater_than: number }\n | { less_than: number }\n | { greater_than_or_equal_to: number }\n | { less_than_or_equal_to: number }\n | ExistencePropertyFilter\n\nexport type NumberPropertyItemObjectResponse = {\n type: \"number\"\n number: number | null\n object: \"property_item\"\n id: string\n}\n\ntype NumberSimplePropertyValueResponse = {\n // Always `number`\n type: \"number\"\n number: number | null\n}\n\ntype NumberedListFormat = \"numbers\" | \"letters\" | \"roman\"\n\nexport type NumberedListItemBlockObjectResponse = {\n type: \"numbered_list_item\"\n numbered_list_item: ContentWithRichTextAndColorAndListResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype PageCoverRequest = FileUploadPageCoverRequest | ExternalPageCoverRequest\n\ntype PageCoverResponse = FilePageCoverResponse | ExternalPageCoverResponse\n\ntype PageIconRequest =\n | FileUploadPageIconRequest\n | EmojiPageIconRequest\n | ExternalPageIconRequest\n | CustomEmojiPageIconRequest\n\ntype PageIconResponse =\n | EmojiPageIconResponse\n | FilePageIconResponse\n | ExternalPageIconResponse\n | CustomEmojiPageIconResponse\n\ntype PageIdCommentParentResponse = {\n // Always `page_id`\n type: \"page_id\"\n page_id: IdResponse\n}\n\ntype PageIdParentForBlockBasedObjectResponse = {\n // The parent type.\n type: \"page_id\"\n // The ID of the parent page.\n page_id: IdResponse\n}\n\ntype PageMarkdownResponse = {\n // The type of object, always 'page_markdown'.\n object: \"page_markdown\"\n // The ID of the page or block.\n id: IdResponse\n // The page content rendered as enhanced Markdown.\n markdown: string\n // Whether the content was truncated due to exceeding the record count limit.\n truncated: boolean\n // Block IDs that could not be loaded (appeared as <unknown> tags in the markdown). Pass\n // these IDs back to this endpoint to fetch their content separately.\n unknown_block_ids: Array<IdResponse>\n}\n\nexport type PageObjectResponse = {\n // The page object type name.\n object: \"page\"\n // The ID of the page.\n id: IdResponse\n // Date and time when this page was created.\n created_time: string\n // Date and time when this page was last edited.\n last_edited_time: string\n // Whether the page is in trash.\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n // Whether the page is locked from editing in the Notion app UI.\n is_locked: boolean\n // The URL of the Notion page.\n url: string\n // The public URL of the Notion page, if it has been published to the web.\n public_url: string | null\n // Information about the page's parent.\n parent: ParentForBlockBasedObjectResponse\n // Property values of this page.\n properties: Record<string, PagePropertyValueWithIdResponse>\n // Page icon.\n icon: PageIconResponse | null\n // Page cover image.\n cover: PageCoverResponse | null\n // User who created the page.\n created_by: PartialUserObjectResponse\n // User who last edited the page.\n last_edited_by: PartialUserObjectResponse\n}\n\ntype PagePositionSchema =\n | { type: \"after_block\"; after_block: { id: IdRequest } }\n | { type: \"page_start\" }\n | { type: \"page_end\" }\n\ntype PagePropertyValueWithIdResponse = IdObjectResponse &\n (SimpleOrArrayPropertyValueResponse | PartialRollupPropertyResponse)\n\nexport type ParagraphBlockObjectResponse = {\n type: \"paragraph\"\n paragraph: ContentWithRichTextAndColorResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype ParentForBlockBasedObjectResponse =\n | DatabaseParentResponse\n | DataSourceParentResponse\n | PageIdParentForBlockBasedObjectResponse\n | BlockIdParentForBlockBasedObjectResponse\n | WorkspaceParentForBlockBasedObjectResponse\n\ntype ParentOfDataSourceRequest = {\n // Always `database_id`\n type?: \"database_id\"\n // The ID of the parent database (with or without dashes), for example,\n // 195de9221179449fab8075a27c979105\n database_id: IdRequest\n}\n\n/**\n * The parent of the data source. This is typically a database (`database_id`), but for\n * externally synced data sources, can be another data source (`data_source_id`).\n */\ntype ParentOfDataSourceResponse =\n | DatabaseParentResponse\n | DataSourceParentResponse\n\ntype ParentOfDatabaseResponse =\n | PageIdParentForBlockBasedObjectResponse\n | WorkspaceParentForBlockBasedObjectResponse\n | DatabaseParentResponse\n | BlockIdParentForBlockBasedObjectResponse\n\nexport type PartialBlockObjectResponse = { object: \"block\"; id: string }\n\nexport type PartialCommentObjectResponse = {\n // The comment object type name.\n object: \"comment\"\n // The ID of the comment.\n id: IdResponse\n}\n\nexport type PartialDataSourceObjectResponse = {\n // The data source object type name.\n object: \"data_source\"\n // The ID of the data source.\n id: IdResponse\n // The properties schema of the data source.\n properties: Record<string, DatabasePropertyConfigResponse>\n}\n\nexport type PartialDatabaseObjectResponse = {\n // The database object type name.\n object: \"database\"\n // The ID of the database.\n id: IdResponse\n}\n\nexport type PartialPageObjectResponse = {\n // The page object type name.\n object: \"page\"\n // The ID of the page.\n id: IdResponse\n}\n\ntype PartialRollupPropertyResponse = {\n // Always `rollup`\n type: \"rollup\"\n rollup: PartialRollupValueResponse\n}\n\ntype PartialRollupValueResponse = PartialRollupValueResponseCommon &\n (\n | NumberPartialRollupValueResponse\n | DatePartialRollupValueResponse\n | ArrayPartialRollupValueResponse\n )\n\ntype PartialRollupValueResponseCommon = {\n // The function used for the rollup, e.g. count, count_values, percent_not_empty, max.\n function: RollupFunction\n}\n\ntype PartialSelectPropertyValueResponse = {\n id: string\n name: string\n // One of: `default`, `gray`, `brown`, `orange`, `yellow`, `green`, `blue`, `purple`,\n // `pink`, `red`\n color:\n | \"default\"\n | \"gray\"\n | \"brown\"\n | \"orange\"\n | \"yellow\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n}\n\ntype PartialSelectResponse = { id: string; name: string; color: SelectColor }\n\ntype PartialUserObjectRequest = {\n // The ID of the user.\n id: IdRequest\n // The user object type name.\n object?: \"user\"\n}\n\nexport type PartialUserObjectResponse = {\n id: IdResponse\n // Always `user`\n object: \"user\"\n}\n\nexport type PdfBlockObjectResponse = {\n type: \"pdf\"\n pdf: MediaContentWithFileAndCaptionResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype PeopleArrayBasedPropertyValueResponse = {\n // Always `people`\n type: \"people\"\n people: Array<UserValueResponse | GroupObjectResponse>\n}\n\ntype PeopleDatabasePropertyConfigResponse = {\n // Always `people`\n type: \"people\"\n people: EmptyObject\n}\n\ntype PeoplePropertyConfigurationRequest = {\n // Always `people`\n type?: \"people\"\n people: EmptyObject\n}\n\ntype PeoplePropertyFilter =\n | { contains: IdRequest }\n | { does_not_contain: IdRequest }\n | ExistencePropertyFilter\n\nexport type PeoplePropertyItemObjectResponse = {\n type: \"people\"\n people: PartialUserObjectResponse | UserObjectResponse\n object: \"property_item\"\n id: string\n}\n\nexport type PersonUserObjectResponse = {\n // Indicates this user is a person.\n type: \"person\"\n // Details about the person, when the `type` of the user is `person`.\n person: {\n // The email of the person.\n email?: string\n }\n}\n\ntype PhoneNumberDatabasePropertyConfigResponse = {\n // Always `phone_number`\n type: \"phone_number\"\n phone_number: EmptyObject\n}\n\ntype PhoneNumberPropertyConfigurationRequest = {\n // Always `phone_number`\n type?: \"phone_number\"\n phone_number: EmptyObject\n}\n\nexport type PhoneNumberPropertyItemObjectResponse = {\n type: \"phone_number\"\n phone_number: string | null\n object: \"property_item\"\n id: string\n}\n\ntype PhoneNumberSimplePropertyValueResponse = {\n // Always `phone_number`\n type: \"phone_number\"\n phone_number: string | null\n}\n\ntype PlacePropertyConfigurationRequest = {\n // Always `place`\n type?: \"place\"\n place: EmptyObject\n}\n\nexport type PlacePropertyItemObjectResponse = {\n type: \"place\"\n place: {\n lat: number\n lon: number\n name?: string | null\n address?: string | null\n aws_place_id?: string | null\n google_place_id?: string | null\n } | null\n object: \"property_item\"\n id: string\n}\n\ntype PlacePropertyValueResponse = {\n lat: number\n lon: number\n name?: string | null\n address?: string | null\n aws_place_id?: string | null\n google_place_id?: string | null\n}\n\ntype PlaceSimplePropertyValueResponse = {\n // Always `place`\n type: \"place\"\n place: PlacePropertyValueResponse | null\n}\n\ntype PropertyConfigurationRequest = PropertyConfigurationRequestCommon &\n (\n | NumberPropertyConfigurationRequest\n | FormulaPropertyConfigurationRequest\n | SelectPropertyConfigurationRequest\n | MultiSelectPropertyConfigurationRequest\n | StatusPropertyConfigurationRequest\n | RelationPropertyConfigurationRequest\n | RollupPropertyConfigurationRequest\n | UniqueIdPropertyConfigurationRequest\n | TitlePropertyConfigurationRequest\n | RichTextPropertyConfigurationRequest\n | UrlPropertyConfigurationRequest\n | PeoplePropertyConfigurationRequest\n | FilesPropertyConfigurationRequest\n | EmailPropertyConfigurationRequest\n | PhoneNumberPropertyConfigurationRequest\n | DatePropertyConfigurationRequest\n | CheckboxPropertyConfigurationRequest\n | CreatedByPropertyConfigurationRequest\n | CreatedTimePropertyConfigurationRequest\n | LastEditedByPropertyConfigurationRequest\n | LastEditedTimePropertyConfigurationRequest\n | ButtonPropertyConfigurationRequest\n | LocationPropertyConfigurationRequest\n | VerificationPropertyConfigurationRequest\n | LastVisitedTimePropertyConfigurationRequest\n | PlacePropertyConfigurationRequest\n )\n\ntype PropertyConfigurationRequestCommon = {\n // The description of the property.\n description?: PropertyDescriptionRequest | null\n}\n\ntype PropertyDescriptionRequest = string\n\ntype PropertyFilter =\n | { title: TextPropertyFilter; property: string; type?: \"title\" }\n | { rich_text: TextPropertyFilter; property: string; type?: \"rich_text\" }\n | { number: NumberPropertyFilter; property: string; type?: \"number\" }\n | { checkbox: CheckboxPropertyFilter; property: string; type?: \"checkbox\" }\n | { select: SelectPropertyFilter; property: string; type?: \"select\" }\n | {\n multi_select: MultiSelectPropertyFilter\n property: string\n type?: \"multi_select\"\n }\n | { status: StatusPropertyFilter; property: string; type?: \"status\" }\n | { date: DatePropertyFilter; property: string; type?: \"date\" }\n | { people: PeoplePropertyFilter; property: string; type?: \"people\" }\n | { files: ExistencePropertyFilter; property: string; type?: \"files\" }\n | { url: TextPropertyFilter; property: string; type?: \"url\" }\n | { email: TextPropertyFilter; property: string; type?: \"email\" }\n | {\n phone_number: TextPropertyFilter\n property: string\n type?: \"phone_number\"\n }\n | { relation: RelationPropertyFilter; property: string; type?: \"relation\" }\n | { created_by: PeoplePropertyFilter; property: string; type?: \"created_by\" }\n | {\n created_time: DatePropertyFilter\n property: string\n type?: \"created_time\"\n }\n | {\n last_edited_by: PeoplePropertyFilter\n property: string\n type?: \"last_edited_by\"\n }\n | {\n last_edited_time: DatePropertyFilter\n property: string\n type?: \"last_edited_time\"\n }\n | { formula: FormulaPropertyFilter; property: string; type?: \"formula\" }\n | { unique_id: NumberPropertyFilter; property: string; type?: \"unique_id\" }\n | { rollup: RollupPropertyFilter; property: string; type?: \"rollup\" }\n | {\n verification: VerificationPropertyStatusFilter\n property: string\n type?: \"verification\"\n }\n\nexport type PropertyItemListResponse = PropertyItemPropertyItemListResponse\n\nexport type PropertyItemObjectResponse =\n | NumberPropertyItemObjectResponse\n | UrlPropertyItemObjectResponse\n | SelectPropertyItemObjectResponse\n | MultiSelectPropertyItemObjectResponse\n | StatusPropertyItemObjectResponse\n | DatePropertyItemObjectResponse\n | EmailPropertyItemObjectResponse\n | PhoneNumberPropertyItemObjectResponse\n | CheckboxPropertyItemObjectResponse\n | FilesPropertyItemObjectResponse\n | CreatedByPropertyItemObjectResponse\n | CreatedTimePropertyItemObjectResponse\n | LastEditedByPropertyItemObjectResponse\n | LastEditedTimePropertyItemObjectResponse\n | FormulaPropertyItemObjectResponse\n | ButtonPropertyItemObjectResponse\n | UniqueIdPropertyItemObjectResponse\n | VerificationPropertyItemObjectResponse\n | PlacePropertyItemObjectResponse\n | TitlePropertyItemObjectResponse\n | RichTextPropertyItemObjectResponse\n | PeoplePropertyItemObjectResponse\n | RelationPropertyItemObjectResponse\n | RollupPropertyItemObjectResponse\n\ntype PropertyItemPropertyItemListResponse = {\n type: \"property_item\"\n property_item:\n | { type: \"title\"; title: EmptyObject; next_url: string | null; id: string }\n | {\n type: \"rich_text\"\n rich_text: EmptyObject\n next_url: string | null\n id: string\n }\n | {\n type: \"people\"\n people: EmptyObject\n next_url: string | null\n id: string\n }\n | {\n type: \"relation\"\n relation: EmptyObject\n next_url: string | null\n id: string\n }\n | {\n type: \"rollup\"\n rollup:\n | { type: \"number\"; number: number | null; function: RollupFunction }\n | {\n type: \"date\"\n date: DateResponse | null\n function: RollupFunction\n }\n | {\n type: \"array\"\n array: Array<EmptyObject>\n function: RollupFunction\n }\n | {\n type: \"unsupported\"\n unsupported: EmptyObject\n function: RollupFunction\n }\n | {\n type: \"incomplete\"\n incomplete: EmptyObject\n function: RollupFunction\n }\n next_url: string | null\n id: string\n }\n object: \"list\"\n next_cursor: string | null\n has_more: boolean\n results: Array<PropertyItemObjectResponse>\n}\n\ntype PropertyOrTimestampFilter = PropertyFilter | TimestampFilter\n\ntype PropertyOrTimestampFilterArray = Array<PropertyOrTimestampFilter>\n\nexport type QuoteBlockObjectResponse = {\n type: \"quote\"\n quote: ContentWithRichTextAndColorResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype RelationArrayBasedPropertyValueResponse = {\n // Always `relation`\n type: \"relation\"\n relation: Array<RelationItemPropertyValueResponse>\n}\n\ntype RelationDatabasePropertyConfigResponse = {\n // Always `relation`\n type: \"relation\"\n relation: DatabasePropertyRelationConfigResponse\n}\n\ntype RelationItemPropertyValueResponse = { id: IdRequest }\n\ntype RelationPropertyConfigurationRequest = {\n // Always `relation`\n type?: \"relation\"\n relation: { data_source_id: IdRequest } & (\n | {\n // Always `single_property`\n type?: \"single_property\"\n single_property: EmptyObject\n }\n | {\n // Always `dual_property`\n type?: \"dual_property\"\n dual_property: {\n synced_property_id?: string\n synced_property_name?: string\n }\n }\n )\n}\n\ntype RelationPropertyFilter =\n | { contains: IdRequest }\n | { does_not_contain: IdRequest }\n | ExistencePropertyFilter\n\nexport type RelationPropertyItemObjectResponse = {\n type: \"relation\"\n relation: { id: string }\n object: \"property_item\"\n id: string\n}\n\ntype RichTextArrayBasedPropertyValueResponse = {\n // Always `rich_text`\n type: \"rich_text\"\n rich_text: Array<RichTextItemResponse>\n}\n\ntype RichTextDatabasePropertyConfigResponse = {\n // Always `rich_text`\n type: \"rich_text\"\n rich_text: EmptyObject\n}\n\ntype RichTextItemRequest = RichTextItemRequestCommon &\n (\n | TextRichTextItemRequest\n | MentionRichTextItemRequest\n | EquationRichTextItemRequest\n )\n\ntype RichTextItemRequestCommon = {\n // All rich text objects contain an annotations object that sets the styling for the rich\n // text.\n annotations?: AnnotationRequest\n}\n\nexport type RichTextItemResponse = RichTextItemResponseCommon &\n (\n | TextRichTextItemResponse\n | MentionRichTextItemResponse\n | EquationRichTextItemResponse\n )\n\nexport type RichTextItemResponseCommon = {\n // The plain text content of the rich text object, without any styling.\n plain_text: string\n // A URL that the rich text object links to or mentions.\n href: string | null\n // All rich text objects contain an annotations object that sets the styling for the rich\n // text.\n annotations: AnnotationResponse\n}\n\ntype RichTextPropertyConfigurationRequest = {\n // Always `rich_text`\n type?: \"rich_text\"\n rich_text: EmptyObject\n}\n\nexport type RichTextPropertyItemObjectResponse = {\n type: \"rich_text\"\n rich_text: RichTextItemResponse\n object: \"property_item\"\n id: string\n}\n\ntype RollupDatabasePropertyConfigResponse = {\n // Always `rollup`\n type: \"rollup\"\n rollup: {\n // The function to use for the rollup, e.g. count, count_values, percent_not_empty, max.\n function: RollupFunction\n rollup_property_name: string\n relation_property_name: string\n rollup_property_id: string\n relation_property_id: string\n }\n}\n\ntype RollupFunction =\n | \"count\"\n | \"count_values\"\n | \"empty\"\n | \"not_empty\"\n | \"unique\"\n | \"show_unique\"\n | \"percent_empty\"\n | \"percent_not_empty\"\n | \"sum\"\n | \"average\"\n | \"median\"\n | \"min\"\n | \"max\"\n | \"range\"\n | \"earliest_date\"\n | \"latest_date\"\n | \"date_range\"\n | \"checked\"\n | \"unchecked\"\n | \"percent_checked\"\n | \"percent_unchecked\"\n | \"count_per_group\"\n | \"percent_per_group\"\n | \"show_original\"\n\ntype RollupPropertyConfigurationRequest = {\n // Always `rollup`\n type?: \"rollup\"\n rollup: {\n // The function to use for the rollup, e.g. count, count_values, percent_not_empty, max.\n function: RollupFunction\n } & (\n | { relation_property_name: string; rollup_property_name: string }\n | { relation_property_id: string; rollup_property_name: string }\n | { relation_property_name: string; rollup_property_id: string }\n | { relation_property_id: string; rollup_property_id: string }\n )\n}\n\ntype RollupPropertyFilter =\n | { any: RollupSubfilterPropertyFilter }\n | { none: RollupSubfilterPropertyFilter }\n | { every: RollupSubfilterPropertyFilter }\n | { date: DatePropertyFilter }\n | { number: NumberPropertyFilter }\n\nexport type RollupPropertyItemObjectResponse = {\n type: \"rollup\"\n rollup:\n | { type: \"number\"; number: number | null; function: RollupFunction }\n | { type: \"date\"; date: DateResponse | null; function: RollupFunction }\n | { type: \"array\"; array: Array<EmptyObject>; function: RollupFunction }\n | {\n type: \"unsupported\"\n unsupported: EmptyObject\n function: RollupFunction\n }\n | { type: \"incomplete\"; incomplete: EmptyObject; function: RollupFunction }\n object: \"property_item\"\n id: string\n}\n\ntype RollupSubfilterPropertyFilter =\n | { rich_text: TextPropertyFilter }\n | { number: NumberPropertyFilter }\n | { checkbox: CheckboxPropertyFilter }\n | { select: SelectPropertyFilter }\n | { multi_select: MultiSelectPropertyFilter }\n | { relation: RelationPropertyFilter }\n | { date: DatePropertyFilter }\n | { people: PeoplePropertyFilter }\n | { files: ExistencePropertyFilter }\n | { status: StatusPropertyFilter }\n\n/**\n * One of: `default`, `gray`, `brown`, `orange`, `yellow`, `green`, `blue`, `purple`,\n * `pink`, `red`\n */\ntype SelectColor =\n | \"default\"\n | \"gray\"\n | \"brown\"\n | \"orange\"\n | \"yellow\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n\ntype SelectDatabasePropertyConfigResponse = {\n // Always `select`\n type: \"select\"\n select: { options: Array<SelectPropertyResponse> }\n}\n\ntype SelectPropertyConfigurationRequest = {\n // Always `select`\n type?: \"select\"\n select: {\n options?: Array<{\n name: string\n color?: SelectColor\n description?: string | null\n }>\n }\n}\n\ntype SelectPropertyFilter =\n | { equals: string }\n | { does_not_equal: string }\n | ExistencePropertyFilter\n\nexport type SelectPropertyItemObjectResponse = {\n type: \"select\"\n select: PartialSelectResponse | null\n object: \"property_item\"\n id: string\n}\n\ntype SelectPropertyResponse = {\n id: string\n name: string\n color: SelectColor\n description: string | null\n}\n\ntype SelectSimplePropertyValueResponse = {\n // Always `select`\n type: \"select\"\n select: PartialSelectPropertyValueResponse | null\n}\n\ntype SimpleOrArrayPropertyValueResponse =\n | SimplePropertyValueResponse\n | ArrayBasedPropertyValueResponse\n\ntype SimplePropertyValueResponse =\n | NumberSimplePropertyValueResponse\n | UrlSimplePropertyValueResponse\n | SelectSimplePropertyValueResponse\n | MultiSelectSimplePropertyValueResponse\n | StatusSimplePropertyValueResponse\n | DateSimplePropertyValueResponse\n | EmailSimplePropertyValueResponse\n | PhoneNumberSimplePropertyValueResponse\n | CheckboxSimplePropertyValueResponse\n | FilesSimplePropertyValueResponse\n | CreatedBySimplePropertyValueResponse\n | CreatedTimeSimplePropertyValueResponse\n | LastEditedBySimplePropertyValueResponse\n | LastEditedTimeSimplePropertyValueResponse\n | FormulaSimplePropertyValueResponse\n | ButtonSimplePropertyValueResponse\n | UniqueIdSimplePropertyValueResponse\n | VerificationSimplePropertyValueResponse\n | PlaceSimplePropertyValueResponse\n\ntype SinglePropertyDatabasePropertyRelationConfigResponse = {\n // Always `single_property`\n type: \"single_property\"\n single_property: EmptyObject\n}\n\ntype StatusDatabasePropertyConfigResponse = {\n // Always `status`\n type: \"status\"\n status: {\n // The options for the status property.\n options: Array<StatusPropertyResponse>\n // The groups for the status property.\n groups: Array<{\n // The ID of the status group.\n id: string\n // The name of the status group.\n name: string\n // The color of the status group.\n color: SelectColor\n // The IDs of the status options in this group.\n option_ids: Array<string>\n }>\n }\n}\n\ntype StatusPropertyConfigurationRequest = {\n // Always `status`\n type?: \"status\"\n status: EmptyObject\n}\n\ntype StatusPropertyFilter =\n | { equals: string }\n | { does_not_equal: string }\n | ExistencePropertyFilter\n\nexport type StatusPropertyItemObjectResponse = {\n type: \"status\"\n status: PartialSelectResponse | null\n object: \"property_item\"\n id: string\n}\n\ntype StatusPropertyResponse = {\n // The ID of the status option.\n id: string\n // The name of the status option.\n name: string\n // The color of the status option.\n color: SelectColor\n // The description of the status option.\n description: string | null\n}\n\ntype StatusSimplePropertyValueResponse = {\n // Always `status`\n type: \"status\"\n status: PartialSelectPropertyValueResponse | null\n}\n\ntype StringFormulaPropertyResponse = { type: \"string\"; string: string | null }\n\ntype StringFormulaPropertyValueResponse = {\n // Always `string`\n type: \"string\"\n string: string | null\n}\n\ntype StringRequest = string\n\nexport type SyncedBlockBlockObjectResponse = {\n type: \"synced_block\"\n synced_block: {\n synced_from: { type: \"block_id\"; block_id: IdRequest } | null\n }\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type TableBlockObjectResponse = {\n type: \"table\"\n table: ContentWithTableResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type TableOfContentsBlockObjectResponse = {\n type: \"table_of_contents\"\n table_of_contents: { color: ApiColor }\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype TableRequestWithTableRowChildren = {\n table_width: number\n children: Array<TableRowRequest>\n has_column_header?: boolean\n has_row_header?: boolean\n}\n\nexport type TableRowBlockObjectResponse = {\n type: \"table_row\"\n table_row: ContentWithTableRowResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype TableRowRequest = {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n object?: \"block\"\n}\n\nexport type TemplateBlockObjectResponse = {\n type: \"template\"\n template: { rich_text: Array<RichTextItemResponse> }\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype TemplateMentionDateTemplateMentionRequest = {\n // Always `template_mention_date`\n type?: \"template_mention_date\"\n // The date of the template mention.\n template_mention_date: \"today\" | \"now\"\n}\n\ntype TemplateMentionDateTemplateMentionResponse = {\n // Always `template_mention_date`\n type: \"template_mention_date\"\n // The date of the template mention.\n template_mention_date: \"today\" | \"now\"\n}\n\ntype TemplateMentionRequest =\n | TemplateMentionDateTemplateMentionRequest\n | TemplateMentionUserTemplateMentionRequest\n\ntype TemplateMentionResponse =\n | TemplateMentionDateTemplateMentionResponse\n | TemplateMentionUserTemplateMentionResponse\n\ntype TemplateMentionUserTemplateMentionRequest = {\n // Always `template_mention_user`\n type?: \"template_mention_user\"\n // The user of the template mention.\n template_mention_user: \"me\"\n}\n\ntype TemplateMentionUserTemplateMentionResponse = {\n // Always `template_mention_user`\n type: \"template_mention_user\"\n // The user of the template mention.\n template_mention_user: \"me\"\n}\n\n/**\n * IANA timezone to use when resolving template variables like @now and @today (e.g.\n * 'America/New_York'). Defaults to the authorizing user's timezone for public\n * integrations, or UTC for internal integrations.\n */\ntype TemplateTimezone = string\n\ntype TextPropertyFilter =\n | { equals: string }\n | { does_not_equal: string }\n | { contains: string }\n | { does_not_contain: string }\n | { starts_with: string }\n | { ends_with: string }\n | ExistencePropertyFilter\n\ntype TextRequest = string\n\ntype TextRichTextItemRequest = {\n // Always `text`\n type?: \"text\"\n // If a rich text object's type value is `text`, then the corresponding text field\n // contains an object including the text content and any inline link.\n text: {\n // The actual text content of the text.\n content: string\n // An object with information about any inline link in this text, if included.\n link?: {\n // The URL of the link.\n url: string\n } | null\n }\n}\n\nexport type TextRichTextItemResponse = {\n // Always `text`\n type: \"text\"\n // If a rich text object's type value is `text`, then the corresponding text field\n // contains an object including the text content and any inline link.\n text: {\n // The actual text content of the text.\n content: string\n // An object with information about any inline link in this text, if included.\n link: {\n // The URL of the link.\n url: string\n } | null\n }\n}\n\ntype TimeZoneRequest = string\n\ntype TimestampCreatedTimeFilter = {\n created_time: DatePropertyFilter\n timestamp: \"created_time\"\n type?: \"created_time\"\n}\n\ntype TimestampFilter =\n | TimestampCreatedTimeFilter\n | TimestampLastEditedTimeFilter\n\ntype TimestampLastEditedTimeFilter = {\n last_edited_time: DatePropertyFilter\n timestamp: \"last_edited_time\"\n type?: \"last_edited_time\"\n}\n\ntype TitleArrayBasedPropertyValueResponse = {\n // Always `title`\n type: \"title\"\n title: Array<RichTextItemResponse>\n}\n\ntype TitleDatabasePropertyConfigResponse = {\n // Always `title`\n type: \"title\"\n title: EmptyObject\n}\n\ntype TitleObjectResponse = { title: string }\n\ntype TitlePropertyConfigurationRequest = {\n // Always `title`\n type?: \"title\"\n title: EmptyObject\n}\n\nexport type TitlePropertyItemObjectResponse = {\n type: \"title\"\n title: RichTextItemResponse\n object: \"property_item\"\n id: string\n}\n\nexport type ToDoBlockObjectResponse = {\n type: \"to_do\"\n to_do: {\n rich_text: Array<RichTextItemResponse>\n color: ApiColor\n checked: boolean\n }\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type ToggleBlockObjectResponse = {\n type: \"toggle\"\n toggle: ContentWithRichTextAndColorResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype TranscriptionBlockResponse = {\n title?: Array<RichTextItemResponse>\n status?: ApiTranscriptionStatus\n children?: TranscriptionChildrenResponse\n calendar_event?: TranscriptionCalendarEventResponse\n recording?: TranscriptionRecordingResponse\n}\n\ntype TranscriptionCalendarEventResponse = {\n start_time: string\n end_time: string\n attendees?: Array<IdRequest>\n}\n\ntype TranscriptionChildrenResponse = {\n summary_block_id?: IdRequest\n notes_block_id?: IdRequest\n transcript_block_id?: IdRequest\n}\n\ntype TranscriptionRecordingResponse = { start_time?: string; end_time?: string }\n\ntype UniqueIdDatabasePropertyConfigResponse = {\n // Always `unique_id`\n type: \"unique_id\"\n unique_id: {\n // The prefix for the unique ID.\n prefix: string | null\n }\n}\n\ntype UniqueIdPropertyConfigurationRequest = {\n // Always `unique_id`\n type?: \"unique_id\"\n unique_id: { prefix?: string | null }\n}\n\nexport type UniqueIdPropertyItemObjectResponse = {\n type: \"unique_id\"\n unique_id: { prefix: string | null; number: number | null }\n object: \"property_item\"\n id: string\n}\n\ntype UniqueIdPropertyValueResponse = {\n prefix: string | null\n number: number | null\n}\n\ntype UniqueIdSimplePropertyValueResponse = {\n // Always `unique_id`\n type: \"unique_id\"\n unique_id: UniqueIdPropertyValueResponse\n}\n\nexport type UnsupportedBlockObjectResponse = {\n type: \"unsupported\"\n unsupported: {\n // The underlying block type that is not currently supported by the Public API. Example\n // values include: tab, form, button, drive.\n block_type: string\n }\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype UpdateMediaContentWithFileAndCaptionRequest = {\n caption?: Array<RichTextItemRequest>\n external?: ExternalFileRequest\n file_upload?: FileUploadIdRequest\n}\n\ntype UpdateMediaContentWithFileNameAndCaptionRequest = {\n caption?: Array<RichTextItemRequest>\n external?: ExternalFileRequest\n file_upload?: FileUploadIdRequest\n name?: StringRequest\n}\n\ntype UpdateMediaContentWithUrlAndCaptionRequest = {\n url?: string\n caption?: Array<RichTextItemRequest>\n}\n\ntype UrlDatabasePropertyConfigResponse = {\n // Always `url`\n type: \"url\"\n url: EmptyObject\n}\n\ntype UrlPropertyConfigurationRequest = {\n // Always `url`\n type?: \"url\"\n url: EmptyObject\n}\n\nexport type UrlPropertyItemObjectResponse = {\n type: \"url\"\n url: string | null\n object: \"property_item\"\n id: string\n}\n\ntype UrlSimplePropertyValueResponse = {\n // Always `url`\n type: \"url\"\n url: string | null\n}\n\nexport type UserObjectResponse = UserObjectResponseCommon &\n (PersonUserObjectResponse | BotUserObjectResponse)\n\nexport type UserObjectResponseCommon = {\n // The ID of the user.\n id: IdResponse\n // The user object type name.\n object: \"user\"\n // The name of the user.\n name: string | null\n // The avatar URL of the user.\n avatar_url: string | null\n}\n\ntype UserValueResponse = PartialUserObjectResponse | UserObjectResponse\n\ntype VerificationPropertyConfigurationRequest = {\n // Always `verification`\n type?: \"verification\"\n verification: EmptyObject\n}\n\nexport type VerificationPropertyItemObjectResponse = {\n type: \"verification\"\n verification: VerificationPropertyValueResponse | null\n object: \"property_item\"\n id: string\n}\n\ntype VerificationPropertyResponse = {\n // One of: `verified`, `expired`\n state: \"verified\" | \"expired\"\n date: DateResponse | null\n verified_by: PartialUserObjectResponse | null\n}\n\ntype VerificationPropertyStatusFilter = {\n status: \"verified\" | \"expired\" | \"none\"\n}\n\ntype VerificationPropertyUnverifiedResponse = {\n // Always `unverified`\n state: \"unverified\"\n date: null\n verified_by: null\n}\n\ntype VerificationPropertyValueResponse =\n | VerificationPropertyUnverifiedResponse\n | VerificationPropertyResponse\n\ntype VerificationSimplePropertyValueResponse = {\n // Always `verification`\n type: \"verification\"\n verification: VerificationPropertyValueResponse | null\n}\n\nexport type VideoBlockObjectResponse = {\n type: \"video\"\n video: MediaContentWithFileAndCaptionResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype WorkspaceParentForBlockBasedObjectResponse = {\n // The parent type.\n type: \"workspace\"\n // Always true for workspace parent.\n workspace: true\n}\nexport type GetSelfParameters = Record<string, never>\n\nexport type GetSelfResponse = UserObjectResponse\n\n/**\n * Retrieve your token's bot user\n */\nexport const getSelf = {\n method: \"get\",\n pathParams: [],\n queryParams: [],\n bodyParams: [],\n\n path: (): string => `users/me`,\n} as const\n\ntype GetUserPathParameters = {\n user_id: IdRequest\n}\n\nexport type GetUserParameters = GetUserPathParameters\n\nexport type GetUserResponse = UserObjectResponse\n\n/**\n * Retrieve a user\n */\nexport const getUser = {\n method: \"get\",\n pathParams: [\"user_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: GetUserPathParameters): string => `users/${p.user_id}`,\n} as const\n\ntype ListUsersQueryParameters = {\n start_cursor?: string\n page_size?: number\n}\n\nexport type ListUsersParameters = ListUsersQueryParameters\n\nexport type ListUsersResponse = {\n type: \"user\"\n user: EmptyObject\n object: \"list\"\n next_cursor: string | null\n has_more: boolean\n results: Array<UserObjectResponse>\n}\n\n/**\n * List all users\n */\nexport const listUsers = {\n method: \"get\",\n pathParams: [],\n queryParams: [\"start_cursor\", \"page_size\"],\n bodyParams: [],\n\n path: (): string => `users`,\n} as const\n\ntype CreatePageBodyParameters = {\n parent?:\n | { page_id: IdRequest; type?: \"page_id\" }\n | { database_id: IdRequest; type?: \"database_id\" }\n | { data_source_id: IdRequest; type?: \"data_source_id\" }\n | { workspace: true; type?: \"workspace\" }\n properties?: Record<\n string,\n | { title: Array<RichTextItemRequest>; type?: \"title\" }\n | { rich_text: Array<RichTextItemRequest>; type?: \"rich_text\" }\n | { number: number | null; type?: \"number\" }\n | { url: TextRequest | null; type?: \"url\" }\n | {\n select:\n | {\n id: StringRequest\n name?: TextRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | {\n name: TextRequest\n id?: StringRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | null\n type?: \"select\"\n }\n | {\n multi_select: Array<\n | {\n id: StringRequest\n name?: TextRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | {\n name: TextRequest\n id?: StringRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n >\n type?: \"multi_select\"\n }\n | {\n people: Array<PartialUserObjectRequest | GroupObjectRequest>\n type?: \"people\"\n }\n | { email: StringRequest | null; type?: \"email\" }\n | { phone_number: StringRequest | null; type?: \"phone_number\" }\n | { date: DateRequest | null; type?: \"date\" }\n | { checkbox: boolean; type?: \"checkbox\" }\n | { relation: Array<RelationItemPropertyValueResponse>; type?: \"relation\" }\n | {\n files: Array<\n | InternalOrExternalFileWithNameRequest\n | FileUploadWithOptionalNameRequest\n >\n type?: \"files\"\n }\n | {\n status:\n | {\n id: StringRequest\n name?: TextRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | {\n name: TextRequest\n id?: StringRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | null\n type?: \"status\"\n }\n | {\n place: {\n lat: number\n lon: number\n name?: string | null\n address?: string | null\n aws_place_id?: string | null\n google_place_id?: string | null\n } | null\n type?: \"place\"\n }\n >\n icon?: PageIconRequest | null\n cover?: PageCoverRequest | null\n content?: Array<BlockObjectRequest>\n children?: Array<BlockObjectRequest>\n // Page content as Notion-flavored Markdown. Mutually exclusive with content/children.\n markdown?: string\n template?:\n | { type: \"none\" }\n | { type: \"default\"; timezone?: TemplateTimezone }\n | {\n type: \"template_id\"\n template_id: IdRequest\n timezone?: TemplateTimezone\n }\n position?: PagePositionSchema\n}\n\nexport type CreatePageParameters = CreatePageBodyParameters\n\nexport type CreatePageResponse = PageObjectResponse | PartialPageObjectResponse\n\n/**\n * Create a page\n */\nexport const createPage = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\n \"parent\",\n \"properties\",\n \"icon\",\n \"cover\",\n \"content\",\n \"children\",\n \"markdown\",\n \"template\",\n \"position\",\n ],\n\n path: (): string => `pages`,\n} as const\n\ntype GetPagePathParameters = {\n // The ID of the page to retrieve.\n page_id: IdRequest\n}\n\ntype GetPageQueryParameters = {\n // Supply a list of property IDs to filter properties in the response. Note that if a\n // page doesn't have a property, it won't be included in the filtered response.\n filter_properties?: Array<string>\n}\n\nexport type GetPageParameters = GetPagePathParameters & GetPageQueryParameters\n\nexport type GetPageResponse = PartialPageObjectResponse | PageObjectResponse\n\n/**\n * Retrieve a page\n */\nexport const getPage = {\n method: \"get\",\n pathParams: [\"page_id\"],\n queryParams: [\"filter_properties\"],\n bodyParams: [],\n\n path: (p: GetPagePathParameters): string => `pages/${p.page_id}`,\n} as const\n\ntype UpdatePagePathParameters = {\n page_id: IdRequest\n}\n\ntype UpdatePageBodyParameters = {\n properties?: Record<\n string,\n | { title: Array<RichTextItemRequest>; type?: \"title\" }\n | { rich_text: Array<RichTextItemRequest>; type?: \"rich_text\" }\n | { number: number | null; type?: \"number\" }\n | { url: TextRequest | null; type?: \"url\" }\n | {\n select:\n | {\n id: StringRequest\n name?: TextRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | {\n name: TextRequest\n id?: StringRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | null\n type?: \"select\"\n }\n | {\n multi_select: Array<\n | {\n id: StringRequest\n name?: TextRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | {\n name: TextRequest\n id?: StringRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n >\n type?: \"multi_select\"\n }\n | {\n people: Array<PartialUserObjectRequest | GroupObjectRequest>\n type?: \"people\"\n }\n | { email: StringRequest | null; type?: \"email\" }\n | { phone_number: StringRequest | null; type?: \"phone_number\" }\n | { date: DateRequest | null; type?: \"date\" }\n | { checkbox: boolean; type?: \"checkbox\" }\n | { relation: Array<RelationItemPropertyValueResponse>; type?: \"relation\" }\n | {\n files: Array<\n | InternalOrExternalFileWithNameRequest\n | FileUploadWithOptionalNameRequest\n >\n type?: \"files\"\n }\n | {\n status:\n | {\n id: StringRequest\n name?: TextRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | {\n name: TextRequest\n id?: StringRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | null\n type?: \"status\"\n }\n | {\n place: {\n lat: number\n lon: number\n name?: string | null\n address?: string | null\n aws_place_id?: string | null\n google_place_id?: string | null\n } | null\n type?: \"place\"\n }\n >\n icon?: PageIconRequest | null\n cover?: PageCoverRequest | null\n // Whether the page should be locked from editing in the Notion app UI. If not provided,\n // the locked state will not be updated.\n is_locked?: boolean\n template?:\n | { type: \"default\"; timezone?: TemplateTimezone }\n | {\n type: \"template_id\"\n template_id: IdRequest\n timezone?: TemplateTimezone\n }\n // Whether to erase all existing content from the page. When used with a template, the\n // template content replaces the existing content. When used without a template, simply\n // clears the page content.\n erase_content?: boolean\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n}\n\nexport type UpdatePageParameters = UpdatePagePathParameters &\n UpdatePageBodyParameters\n\nexport type UpdatePageResponse = PageObjectResponse | PartialPageObjectResponse\n\n/**\n * Update page\n */\nexport const updatePage = {\n method: \"patch\",\n pathParams: [\"page_id\"],\n queryParams: [],\n bodyParams: [\n \"archived\",\n \"properties\",\n \"icon\",\n \"cover\",\n \"is_locked\",\n \"template\",\n \"erase_content\",\n \"in_trash\",\n ],\n\n path: (p: UpdatePagePathParameters): string => `pages/${p.page_id}`,\n} as const\n\ntype MovePagePathParameters = {\n // The ID of the page to move.\n page_id: IdRequest\n}\n\ntype MovePageBodyParameters = {\n // The new parent of the page.\n parent:\n | {\n // The ID of the parent page (with or without dashes), for example,\n // 195de9221179449fab8075a27c979105\n page_id: IdRequest\n // Always `page_id`\n type?: \"page_id\"\n }\n | {\n // The ID of the parent data source (collection), with or without dashes. For example,\n // f336d0bc-b841-465b-8045-024475c079dd\n data_source_id: IdRequest\n // Always `data_source_id`\n type?: \"data_source_id\"\n }\n}\n\nexport type MovePageParameters = MovePagePathParameters & MovePageBodyParameters\n\nexport type MovePageResponse = PartialPageObjectResponse | PageObjectResponse\n\n/**\n * Move a page\n */\nexport const movePage = {\n method: \"post\",\n pathParams: [\"page_id\"],\n queryParams: [],\n bodyParams: [\"parent\"],\n\n path: (p: MovePagePathParameters): string => `pages/${p.page_id}/move`,\n} as const\n\ntype GetPagePropertyPathParameters = {\n page_id: IdRequest\n property_id: string\n}\n\ntype GetPagePropertyQueryParameters = {\n start_cursor?: string\n page_size?: number\n}\n\nexport type GetPagePropertyParameters = GetPagePropertyPathParameters &\n GetPagePropertyQueryParameters\n\nexport type GetPagePropertyResponse =\n | PropertyItemObjectResponse\n | PropertyItemListResponse\n\n/**\n * Retrieve a page property item\n */\nexport const getPageProperty = {\n method: \"get\",\n pathParams: [\"page_id\", \"property_id\"],\n queryParams: [\"start_cursor\", \"page_size\"],\n bodyParams: [],\n\n path: (p: GetPagePropertyPathParameters): string =>\n `pages/${p.page_id}/properties/${p.property_id}`,\n} as const\n\ntype GetPageMarkdownPathParameters = {\n // The ID of the page (or block) to retrieve as markdown. Non-navigable block IDs from\n // truncated responses can be passed here to fetch their subtrees.\n page_id: IdRequest\n}\n\ntype GetPageMarkdownQueryParameters = {\n // Whether to include meeting note transcripts. Defaults to false. When true, full\n // transcripts are included; when false, a placeholder with the meeting note URL is shown\n // instead.\n include_transcript?: boolean\n}\n\nexport type GetPageMarkdownParameters = GetPageMarkdownPathParameters &\n GetPageMarkdownQueryParameters\n\nexport type GetPageMarkdownResponse = PageMarkdownResponse\n\n/**\n * Retrieve a page as markdown\n */\nexport const getPageMarkdown = {\n method: \"get\",\n pathParams: [\"page_id\"],\n queryParams: [\"include_transcript\"],\n bodyParams: [],\n\n path: (p: GetPageMarkdownPathParameters): string =>\n `pages/${p.page_id}/markdown`,\n} as const\n\ntype UpdatePageMarkdownPathParameters = {\n // The ID of the page to update.\n page_id: IdRequest\n}\n\ntype UpdatePageMarkdownBodyParameters =\n | {\n // Always `insert_content`\n type: \"insert_content\"\n // Insert new content into the page.\n insert_content: {\n // The enhanced markdown content to insert into the page.\n content: string\n // Selection of existing content to insert after, using the ellipsis format (\"start\n // text...end text\"). Omit to append at the end of the page.\n after?: string\n }\n }\n | {\n // Always `replace_content_range`\n type: \"replace_content_range\"\n // Replace a range of content in the page.\n replace_content_range: {\n // The new enhanced markdown content to replace the matched range.\n content: string\n // Selection of existing content to replace, using the ellipsis format (\"start text...end\n // text\").\n content_range: string\n // Set to true to allow the operation to delete child pages or databases. Defaults to\n // false.\n allow_deleting_content?: boolean\n }\n }\n | {\n // Always `update_content`\n type: \"update_content\"\n // Update specific content using search-and-replace operations.\n update_content: {\n // An array of search-and-replace operations, each with old_str (content to find) and\n // new_str (replacement content).\n content_updates: Array<{\n // The existing content string to find and replace. Must exactly match the page content.\n old_str: string\n // The new content string to replace old_str with.\n new_str: string\n // If true, replaces all occurrences of old_str. If false (default), the operation fails\n // if there are multiple matches.\n replace_all_matches?: boolean\n }>\n // Set to true to allow the operation to delete child pages or databases. Defaults to\n // false.\n allow_deleting_content?: boolean\n }\n }\n | {\n // Always `replace_content`\n type: \"replace_content\"\n // Replace the entire page content with new markdown.\n replace_content: {\n // The new enhanced markdown content to replace the entire page content.\n new_str: string\n // Set to true to allow the operation to delete child pages or databases. Defaults to\n // false.\n allow_deleting_content?: boolean\n }\n }\n\nexport type UpdatePageMarkdownParameters = UpdatePageMarkdownPathParameters &\n UpdatePageMarkdownBodyParameters\n\nexport type UpdatePageMarkdownResponse = PageMarkdownResponse\n\n/**\n * Update a page's content as markdown\n */\nexport const updatePageMarkdown = {\n method: \"patch\",\n pathParams: [\"page_id\"],\n queryParams: [],\n bodyParams: [\n \"type\",\n \"insert_content\",\n \"replace_content_range\",\n \"update_content\",\n \"replace_content\",\n ],\n\n path: (p: UpdatePageMarkdownPathParameters): string =>\n `pages/${p.page_id}/markdown`,\n} as const\n\ntype GetBlockPathParameters = {\n block_id: IdRequest\n}\n\nexport type GetBlockParameters = GetBlockPathParameters\n\nexport type GetBlockResponse = PartialBlockObjectResponse | BlockObjectResponse\n\n/**\n * Retrieve a block\n */\nexport const getBlock = {\n method: \"get\",\n pathParams: [\"block_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: GetBlockPathParameters): string => `blocks/${p.block_id}`,\n} as const\n\ntype UpdateBlockPathParameters = {\n block_id: IdRequest\n}\n\ntype UpdateBlockBodyParameters =\n | {\n embed: UpdateMediaContentWithUrlAndCaptionRequest\n type?: \"embed\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n bookmark: UpdateMediaContentWithUrlAndCaptionRequest\n type?: \"bookmark\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n image: UpdateMediaContentWithFileAndCaptionRequest\n type?: \"image\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n video: UpdateMediaContentWithFileAndCaptionRequest\n type?: \"video\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n pdf: UpdateMediaContentWithFileAndCaptionRequest\n type?: \"pdf\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n file: UpdateMediaContentWithFileNameAndCaptionRequest\n type?: \"file\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n audio: UpdateMediaContentWithFileAndCaptionRequest\n type?: \"audio\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n code: {\n rich_text?: Array<RichTextItemRequest>\n language?: LanguageRequest\n caption?: Array<RichTextItemRequest>\n }\n type?: \"code\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n equation: ContentWithExpressionRequest\n type?: \"equation\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n divider: EmptyObject\n type?: \"divider\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n breadcrumb: EmptyObject\n type?: \"breadcrumb\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n table_of_contents: { color?: ApiColor }\n type?: \"table_of_contents\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n link_to_page:\n | { page_id: IdRequest; type?: \"page_id\" }\n | { database_id: IdRequest; type?: \"database_id\" }\n | { comment_id: IdRequest; type?: \"comment_id\" }\n type?: \"link_to_page\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n heading_1: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_1\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n heading_2: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_2\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n heading_3: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_3\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n paragraph: ContentWithRichTextAndColorRequest\n type?: \"paragraph\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n bulleted_list_item: ContentWithRichTextAndColorRequest\n type?: \"bulleted_list_item\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n numbered_list_item: ContentWithRichTextAndColorRequest\n type?: \"numbered_list_item\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n quote: ContentWithRichTextAndColorRequest\n type?: \"quote\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n to_do: {\n rich_text?: Array<RichTextItemRequest>\n checked?: boolean\n color?: ApiColor\n }\n type?: \"to_do\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n toggle: ContentWithRichTextAndColorRequest\n type?: \"toggle\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n template: ContentWithRichTextRequest\n type?: \"template\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n callout: {\n rich_text?: Array<RichTextItemRequest>\n icon?: PageIconRequest\n color?: ApiColor\n }\n type?: \"callout\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n synced_block: {\n synced_from: { block_id: IdRequest; type?: \"block_id\" } | null\n }\n type?: \"synced_block\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n table: { has_column_header?: boolean; has_row_header?: boolean }\n type?: \"table\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n column: {\n // Ratio between 0 and 1 of the width of this column relative to all columns in the list.\n // If not provided, uses an equal width.\n width_ratio?: number\n }\n type?: \"column\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n\nexport type UpdateBlockParameters = UpdateBlockPathParameters &\n UpdateBlockBodyParameters\n\nexport type UpdateBlockResponse =\n | PartialBlockObjectResponse\n | BlockObjectResponse\n\n/**\n * Update a block\n */\nexport const updateBlock = {\n method: \"patch\",\n pathParams: [\"block_id\"],\n queryParams: [],\n bodyParams: [\n \"archived\",\n \"embed\",\n \"type\",\n \"in_trash\",\n \"bookmark\",\n \"image\",\n \"video\",\n \"pdf\",\n \"file\",\n \"audio\",\n \"code\",\n \"equation\",\n \"divider\",\n \"breadcrumb\",\n \"table_of_contents\",\n \"link_to_page\",\n \"table_row\",\n \"heading_1\",\n \"heading_2\",\n \"heading_3\",\n \"paragraph\",\n \"bulleted_list_item\",\n \"numbered_list_item\",\n \"quote\",\n \"to_do\",\n \"toggle\",\n \"template\",\n \"callout\",\n \"synced_block\",\n \"table\",\n \"column\",\n ],\n\n path: (p: UpdateBlockPathParameters): string => `blocks/${p.block_id}`,\n} as const\n\ntype DeleteBlockPathParameters = {\n block_id: IdRequest\n}\n\nexport type DeleteBlockParameters = DeleteBlockPathParameters\n\nexport type DeleteBlockResponse =\n | PartialBlockObjectResponse\n | BlockObjectResponse\n\n/**\n * Delete a block\n */\nexport const deleteBlock = {\n method: \"delete\",\n pathParams: [\"block_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: DeleteBlockPathParameters): string => `blocks/${p.block_id}`,\n} as const\n\ntype ListBlockChildrenPathParameters = {\n block_id: IdRequest\n}\n\ntype ListBlockChildrenQueryParameters = {\n start_cursor?: string\n page_size?: number\n}\n\nexport type ListBlockChildrenParameters = ListBlockChildrenPathParameters &\n ListBlockChildrenQueryParameters\n\nexport type ListBlockChildrenResponse = {\n type: \"block\"\n block: EmptyObject\n object: \"list\"\n next_cursor: string | null\n has_more: boolean\n results: Array<PartialBlockObjectResponse | BlockObjectResponse>\n}\n\n/**\n * Retrieve block children\n */\nexport const listBlockChildren = {\n method: \"get\",\n pathParams: [\"block_id\"],\n queryParams: [\"start_cursor\", \"page_size\"],\n bodyParams: [],\n\n path: (p: ListBlockChildrenPathParameters): string =>\n `blocks/${p.block_id}/children`,\n} as const\n\ntype AppendBlockChildrenPathParameters = {\n block_id: IdRequest\n}\n\ntype AppendBlockChildrenBodyParameters = {\n children: Array<BlockObjectRequest>\n /** @deprecated Use `position` instead. */\n after?: IdRequest\n position?: ContentPositionSchema\n}\n\nexport type AppendBlockChildrenParameters = AppendBlockChildrenPathParameters &\n AppendBlockChildrenBodyParameters\n\nexport type AppendBlockChildrenResponse = {\n type: \"block\"\n block: EmptyObject\n object: \"list\"\n next_cursor: string | null\n has_more: boolean\n results: Array<PartialBlockObjectResponse | BlockObjectResponse>\n}\n\n/**\n * Append block children\n */\nexport const appendBlockChildren = {\n method: \"patch\",\n pathParams: [\"block_id\"],\n queryParams: [],\n bodyParams: [\"after\", \"children\", \"position\"],\n\n path: (p: AppendBlockChildrenPathParameters): string =>\n `blocks/${p.block_id}/children`,\n} as const\n\ntype GetDataSourcePathParameters = {\n // ID of a Notion data source.\n data_source_id: IdRequest\n}\n\nexport type GetDataSourceParameters = GetDataSourcePathParameters\n\nexport type GetDataSourceResponse =\n | PartialDataSourceObjectResponse\n | DataSourceObjectResponse\n\n/**\n * Retrieve a data source\n */\nexport const getDataSource = {\n method: \"get\",\n pathParams: [\"data_source_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: GetDataSourcePathParameters): string =>\n `data_sources/${p.data_source_id}`,\n} as const\n\ntype UpdateDataSourcePathParameters = {\n // ID of a Notion data source.\n data_source_id: IdRequest\n}\n\ntype UpdateDataSourceBodyParameters = {\n // Title of data source as it appears in Notion.\n title?: Array<RichTextItemRequest>\n // Page icon.\n icon?: PageIconRequest | null\n // The property schema of the data source. The keys are property names or IDs, and the\n // values are property configuration objects. Properties set to null will be removed.\n properties?: Record<\n string,\n | ({\n // The name of the property.\n name?: string\n // The description of the property.\n description?: PropertyDescriptionRequest | null\n } & (\n | {\n // Always `number`\n type?: \"number\"\n number: { format?: NumberFormat }\n }\n | {\n // Always `formula`\n type?: \"formula\"\n formula: { expression?: string }\n }\n | {\n // Always `select`\n type?: \"select\"\n select: {\n options?: Array<\n { color?: SelectColor; description?: string | null } & (\n | { name: string; id?: string }\n | { id: string; name?: string }\n )\n >\n }\n }\n | {\n // Always `multi_select`\n type?: \"multi_select\"\n multi_select: {\n options?: Array<\n { color?: SelectColor; description?: string | null } & (\n | { name: string; id?: string }\n | { id: string; name?: string }\n )\n >\n }\n }\n | {\n // Always `status`\n type?: \"status\"\n status: EmptyObject\n }\n | {\n // Always `relation`\n type?: \"relation\"\n relation: { data_source_id: IdRequest } & (\n | {\n // Always `single_property`\n type?: \"single_property\"\n single_property: EmptyObject\n }\n | {\n // Always `dual_property`\n type?: \"dual_property\"\n dual_property: {\n synced_property_id?: string\n synced_property_name?: string\n }\n }\n )\n }\n | {\n // Always `rollup`\n type?: \"rollup\"\n rollup: {\n // The function to use for the rollup, e.g. count, count_values, percent_not_empty, max.\n function: RollupFunction\n } & (\n | { relation_property_name: string; rollup_property_name: string }\n | { relation_property_id: string; rollup_property_name: string }\n | { relation_property_name: string; rollup_property_id: string }\n | { relation_property_id: string; rollup_property_id: string }\n )\n }\n | {\n // Always `unique_id`\n type?: \"unique_id\"\n unique_id: { prefix?: string | null }\n }\n | {\n // Always `title`\n type?: \"title\"\n title: EmptyObject\n }\n | {\n // Always `rich_text`\n type?: \"rich_text\"\n rich_text: EmptyObject\n }\n | {\n // Always `url`\n type?: \"url\"\n url: EmptyObject\n }\n | {\n // Always `people`\n type?: \"people\"\n people: EmptyObject\n }\n | {\n // Always `files`\n type?: \"files\"\n files: EmptyObject\n }\n | {\n // Always `email`\n type?: \"email\"\n email: EmptyObject\n }\n | {\n // Always `phone_number`\n type?: \"phone_number\"\n phone_number: EmptyObject\n }\n | {\n // Always `date`\n type?: \"date\"\n date: EmptyObject\n }\n | {\n // Always `checkbox`\n type?: \"checkbox\"\n checkbox: EmptyObject\n }\n | {\n // Always `created_by`\n type?: \"created_by\"\n created_by: EmptyObject\n }\n | {\n // Always `created_time`\n type?: \"created_time\"\n created_time: EmptyObject\n }\n | {\n // Always `last_edited_by`\n type?: \"last_edited_by\"\n last_edited_by: EmptyObject\n }\n | {\n // Always `last_edited_time`\n type?: \"last_edited_time\"\n last_edited_time: EmptyObject\n }\n | {\n // Always `place`\n type?: \"place\"\n place: EmptyObject\n }\n ))\n | {\n // The new name of the property.\n name: string\n }\n | null\n >\n // Whether the database should be moved to or from the trash. If not provided, the trash\n // status will not be updated.\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n // The parent of the data source, when moving it to a different database. If not\n // provided, the parent will not be updated.\n parent?: ParentOfDataSourceRequest\n}\n\nexport type UpdateDataSourceParameters = UpdateDataSourcePathParameters &\n UpdateDataSourceBodyParameters\n\nexport type UpdateDataSourceResponse =\n | PartialDataSourceObjectResponse\n | DataSourceObjectResponse\n\n/**\n * Update a data source\n */\nexport const updateDataSource = {\n method: \"patch\",\n pathParams: [\"data_source_id\"],\n queryParams: [],\n bodyParams: [\"archived\", \"title\", \"icon\", \"properties\", \"in_trash\", \"parent\"],\n\n path: (p: UpdateDataSourcePathParameters): string =>\n `data_sources/${p.data_source_id}`,\n} as const\n\ntype QueryDataSourcePathParameters = {\n data_source_id: IdRequest\n}\n\ntype QueryDataSourceQueryParameters = {\n filter_properties?: Array<string>\n}\n\ntype QueryDataSourceBodyParameters = {\n sorts?: Array<\n | { property: string; direction: \"ascending\" | \"descending\" }\n | {\n timestamp: \"created_time\" | \"last_edited_time\"\n direction: \"ascending\" | \"descending\"\n }\n >\n filter?:\n | { or: GroupFilterOperatorArray }\n | { and: GroupFilterOperatorArray }\n | PropertyFilter\n | TimestampFilter\n start_cursor?: string\n page_size?: number\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n // Optionally filter the results to only include pages or data sources. Regular, non-wiki\n // databases only support page children. The default behavior is no result type\n // filtering, in other words, returning both pages and data sources for wikis.\n result_type?: \"page\" | \"data_source\"\n}\n\nexport type QueryDataSourceParameters = QueryDataSourcePathParameters &\n QueryDataSourceQueryParameters &\n QueryDataSourceBodyParameters\n\nexport type QueryDataSourceResponse = {\n type: \"page_or_data_source\"\n page_or_data_source: EmptyObject\n object: \"list\"\n next_cursor: string | null\n has_more: boolean\n results: Array<\n | PageObjectResponse\n | PartialPageObjectResponse\n | PartialDataSourceObjectResponse\n | DataSourceObjectResponse\n >\n}\n\n/**\n * Query a data source\n */\nexport const queryDataSource = {\n method: \"post\",\n pathParams: [\"data_source_id\"],\n queryParams: [\"filter_properties\"],\n bodyParams: [\n \"archived\",\n \"sorts\",\n \"filter\",\n \"start_cursor\",\n \"page_size\",\n \"in_trash\",\n \"result_type\",\n ],\n\n path: (p: QueryDataSourcePathParameters): string =>\n `data_sources/${p.data_source_id}/query`,\n} as const\n\ntype CreateDataSourceBodyParameters = {\n // An object specifying the parent of the new data source to be created.\n parent: ParentOfDataSourceRequest\n // Property schema of data source.\n properties: Record<string, PropertyConfigurationRequest>\n // Title of data source as it appears in Notion.\n title?: Array<RichTextItemRequest>\n // Page icon.\n icon?: PageIconRequest | null\n}\n\nexport type CreateDataSourceParameters = CreateDataSourceBodyParameters\n\nexport type CreateDataSourceResponse =\n | PartialDataSourceObjectResponse\n | DataSourceObjectResponse\n\n/**\n * Create a data source\n */\nexport const createDataSource = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\"parent\", \"properties\", \"title\", \"icon\"],\n\n path: (): string => `data_sources`,\n} as const\n\ntype ListDataSourceTemplatesPathParameters = {\n // ID of a Notion data source.\n data_source_id: IdRequest\n}\n\ntype ListDataSourceTemplatesQueryParameters = {\n // Filter templates by name (case-insensitive substring match).\n name?: string\n // If supplied, this endpoint will return a page of results starting after the cursor\n // provided. If not supplied, this endpoint will return the first page of results.\n start_cursor?: string\n // The number of items from the full list desired in the response. Maximum: 100\n page_size?: number\n}\n\nexport type ListDataSourceTemplatesParameters =\n ListDataSourceTemplatesPathParameters & ListDataSourceTemplatesQueryParameters\n\nexport type ListDataSourceTemplatesResponse = {\n // Array of templates available in this data source.\n templates: Array<{\n // ID of the template page.\n id: IdResponse\n // Name of the template.\n name: string\n // Whether this template is the default template for the data source.\n is_default: boolean\n }>\n // Whether there are more templates available beyond this page.\n has_more: boolean\n // Cursor to use for the next page of results. Null if there are no more results.\n next_cursor: IdResponse | null\n}\n\n/**\n * List templates in a data source\n */\nexport const listDataSourceTemplates = {\n method: \"get\",\n pathParams: [\"data_source_id\"],\n queryParams: [\"name\", \"start_cursor\", \"page_size\"],\n bodyParams: [],\n\n path: (p: ListDataSourceTemplatesPathParameters): string =>\n `data_sources/${p.data_source_id}/templates`,\n} as const\n\ntype GetDatabasePathParameters = {\n // ID of a Notion database, a container for one or more data sources.\n database_id: IdRequest\n}\n\nexport type GetDatabaseParameters = GetDatabasePathParameters\n\nexport type GetDatabaseResponse =\n | PartialDatabaseObjectResponse\n | DatabaseObjectResponse\n\n/**\n * Retrieve a database\n */\nexport const getDatabase = {\n method: \"get\",\n pathParams: [\"database_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: GetDatabasePathParameters): string => `databases/${p.database_id}`,\n} as const\n\ntype UpdateDatabasePathParameters = {\n // ID of a Notion database, a container for one or more data sources.\n database_id: IdRequest\n}\n\ntype UpdateDatabaseBodyParameters = {\n // The parent page or workspace to move the database to. If not provided, the database\n // will not be moved.\n parent?: {\n // The type of parent.\n type: \"page_id\" | \"workspace\"\n } & (\n | {\n // Always `page_id`\n type: \"page_id\"\n page_id: IdRequest\n }\n | {\n // Always `workspace`\n type: \"workspace\"\n // Always `true`\n workspace: true\n }\n )\n // The updated title of the database, if any. If not provided, the title will not be\n // updated.\n title?: Array<RichTextItemRequest>\n // The updated description of the database, if any. If not provided, the description will\n // not be updated.\n description?: Array<RichTextItemRequest>\n // Whether the database should be displayed inline in the parent page. If not provided,\n // the inline status will not be updated.\n is_inline?: boolean\n // The updated icon for the database, if any. If not provided, the icon will not be\n // updated.\n icon?: PageIconRequest\n // The updated cover image for the database, if any. If not provided, the cover will not\n // be updated.\n cover?: PageCoverRequest\n // Whether the database should be moved to or from the trash. If not provided, the trash\n // status will not be updated.\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n // Whether the database should be locked from editing in the Notion app UI. If not\n // provided, the locked state will not be updated.\n is_locked?: boolean\n}\n\nexport type UpdateDatabaseParameters = UpdateDatabasePathParameters &\n UpdateDatabaseBodyParameters\n\nexport type UpdateDatabaseResponse =\n | PartialDatabaseObjectResponse\n | DatabaseObjectResponse\n\n/**\n * Update a database\n */\nexport const updateDatabase = {\n method: \"patch\",\n pathParams: [\"database_id\"],\n queryParams: [],\n bodyParams: [\n \"parent\",\n \"title\",\n \"description\",\n \"is_inline\",\n \"icon\",\n \"cover\",\n \"in_trash\",\n \"is_locked\",\n ],\n\n path: (p: UpdateDatabasePathParameters): string =>\n `databases/${p.database_id}`,\n} as const\n\ntype CreateDatabaseBodyParameters = {\n // The parent page or workspace where the database will be created.\n parent: {\n // The type of parent.\n type: \"page_id\" | \"workspace\"\n } & (\n | {\n // Always `page_id`\n type: \"page_id\"\n page_id: IdRequest\n }\n | {\n // Always `workspace`\n type: \"workspace\"\n // Always `true`\n workspace: true\n }\n )\n // The title of the database.\n title?: Array<RichTextItemRequest>\n // The description of the database.\n description?: Array<RichTextItemRequest>\n // Whether the database should be displayed inline in the parent page. Defaults to false.\n is_inline?: boolean\n // Initial data source configuration for the database.\n initial_data_source?: InitialDataSourceRequest\n // The icon for the database.\n icon?: PageIconRequest\n // The cover image for the database.\n cover?: PageCoverRequest\n}\n\nexport type CreateDatabaseParameters = CreateDatabaseBodyParameters\n\nexport type CreateDatabaseResponse =\n | PartialDatabaseObjectResponse\n | DatabaseObjectResponse\n\n/**\n * Create a database\n */\nexport const createDatabase = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\n \"parent\",\n \"title\",\n \"description\",\n \"is_inline\",\n \"initial_data_source\",\n \"icon\",\n \"cover\",\n ],\n\n path: (): string => `databases`,\n} as const\n\ntype SearchBodyParameters = {\n sort?: {\n timestamp: \"last_edited_time\"\n direction: \"ascending\" | \"descending\"\n }\n query?: string\n start_cursor?: string\n page_size?: number\n filter?: { property: \"object\"; value: \"page\" | \"data_source\" }\n}\n\nexport type SearchParameters = SearchBodyParameters\n\nexport type SearchResponse = {\n type: \"page_or_data_source\"\n page_or_data_source: EmptyObject\n object: \"list\"\n next_cursor: string | null\n has_more: boolean\n results: Array<\n | PageObjectResponse\n | PartialPageObjectResponse\n | PartialDataSourceObjectResponse\n | DataSourceObjectResponse\n >\n}\n\n/**\n * Search by title\n */\nexport const search = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\"sort\", \"query\", \"start_cursor\", \"page_size\", \"filter\"],\n\n path: (): string => `search`,\n} as const\n\ntype CreateCommentBodyParameters = {\n // An array of rich text objects that represent the content of the comment.\n rich_text: Array<RichTextItemRequest>\n // An array of files to attach to the comment. Maximum of 3 allowed.\n attachments?: Array<{\n // ID of a FileUpload object that has the status `uploaded`.\n file_upload_id: string\n // Always `file_upload`\n type?: \"file_upload\"\n }>\n // Display name for the comment.\n display_name?:\n | {\n // Always `integration`\n type: \"integration\"\n }\n | {\n // Always `user`\n type: \"user\"\n }\n | {\n // Always `custom`\n type: \"custom\"\n custom: {\n // The custom display name to use\n name: string\n }\n }\n} & (\n | {\n // The parent of the comment. This can be a page or a block.\n parent:\n | {\n // The ID of the parent page (with or without dashes), for example,\n // 195de9221179449fab8075a27c979105\n page_id: IdRequest\n // Always `page_id`\n type?: \"page_id\"\n }\n | {\n // The ID of the parent block (with or without dashes), for example,\n // 195de9221179449fab8075a27c979105\n block_id: IdRequest\n // Always `block_id`\n type?: \"block_id\"\n }\n }\n | {\n // The ID of the discussion to comment on.\n discussion_id: IdRequest\n }\n)\n\nexport type CreateCommentParameters = CreateCommentBodyParameters\n\nexport type CreateCommentResponse =\n | PartialCommentObjectResponse\n | CommentObjectResponse\n\n/**\n * Create a comment\n */\nexport const createComment = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\n \"rich_text\",\n \"attachments\",\n \"display_name\",\n \"parent\",\n \"discussion_id\",\n ],\n\n path: (): string => `comments`,\n} as const\n\ntype ListCommentsQueryParameters = {\n // Identifier for a Notion block or page.\n block_id: IdRequest\n // If supplied, this endpoint will return a page of results starting after the cursor\n // provided. If not supplied, this endpoint will return the first page of results.\n start_cursor?: string\n // The number of items from the full list desired in the response. Maximum: 100\n page_size?: number\n}\n\nexport type ListCommentsParameters = ListCommentsQueryParameters\n\nexport type ListCommentsResponse = {\n // Always `list`\n object: \"list\"\n next_cursor: IdResponse | null\n has_more: boolean\n results: Array<CommentObjectResponse>\n // Always `comment`\n type: \"comment\"\n comment: EmptyObject\n}\n\n/**\n * List comments\n */\nexport const listComments = {\n method: \"get\",\n pathParams: [],\n queryParams: [\"block_id\", \"start_cursor\", \"page_size\"],\n bodyParams: [],\n\n path: (): string => `comments`,\n} as const\n\ntype GetCommentPathParameters = {\n // The ID of the comment to retrieve.\n comment_id: IdRequest\n}\n\nexport type GetCommentParameters = GetCommentPathParameters\n\nexport type GetCommentResponse =\n | PartialCommentObjectResponse\n | CommentObjectResponse\n\n/**\n * Retrieve a comment\n */\nexport const getComment = {\n method: \"get\",\n pathParams: [\"comment_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: GetCommentPathParameters): string => `comments/${p.comment_id}`,\n} as const\n\ntype CreateFileUploadBodyParameters = {\n // How the file is being sent. Use `multi_part` for files larger than 20MB. Use\n // `external_url` for files that are temporarily hosted publicly elsewhere. Default is\n // `single_part`.\n mode?: \"single_part\" | \"multi_part\" | \"external_url\"\n // Name of the file to be created. Required when `mode` is `multi_part`. Otherwise\n // optional, and used to override the filename. Must include an extension, or have one\n // inferred from the `content_type` parameter.\n filename?: string\n // MIME type of the file to be created. Recommended when sending the file in multiple\n // parts. Must match the content type of the file that's sent, and the extension of the\n // `filename` parameter if any.\n content_type?: string\n // When `mode` is `multi_part`, the number of parts you are uploading. This must match\n // the number of parts as well as the final `part_number` you send.\n number_of_parts?: number\n // When `mode` is `external_url`, provide the HTTPS URL of a publicly accessible file to\n // import into your workspace.\n external_url?: string\n}\n\nexport type CreateFileUploadParameters = CreateFileUploadBodyParameters\n\nexport type CreateFileUploadResponse = FileUploadObjectResponse\n\n/**\n * Create a file upload\n */\nexport const createFileUpload = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\n \"mode\",\n \"filename\",\n \"content_type\",\n \"number_of_parts\",\n \"external_url\",\n ],\n\n path: (): string => `file_uploads`,\n} as const\n\ntype ListFileUploadsQueryParameters = {\n // If supplied, the endpoint will return file uploads with the specified status.\n status?: \"pending\" | \"uploaded\" | \"expired\" | \"failed\"\n // If supplied, this endpoint will return a page of results starting after the cursor\n // provided. If not supplied, this endpoint will return the first page of results.\n start_cursor?: string\n // The number of items from the full list desired in the response. Maximum: 100\n page_size?: number\n}\n\nexport type ListFileUploadsParameters = ListFileUploadsQueryParameters\n\nexport type ListFileUploadsResponse = {\n // Always `list`\n object: \"list\"\n next_cursor: IdResponse | null\n has_more: boolean\n results: Array<FileUploadObjectResponse>\n // Always `file_upload`\n type: \"file_upload\"\n file_upload: EmptyObject\n}\n\n/**\n * List file uploads\n */\nexport const listFileUploads = {\n method: \"get\",\n pathParams: [],\n queryParams: [\"status\", \"start_cursor\", \"page_size\"],\n bodyParams: [],\n\n path: (): string => `file_uploads`,\n} as const\n\ntype SendFileUploadPathParameters = {\n // Identifier for a Notion file upload object.\n file_upload_id: IdRequest\n}\n\ntype SendFileUploadFormDataParameters = {\n file: { filename?: string; data: string | Blob }\n part_number?: string\n}\n\nexport type SendFileUploadParameters = SendFileUploadPathParameters &\n SendFileUploadFormDataParameters\n\nexport type SendFileUploadResponse = FileUploadObjectResponse\n\n/**\n * Upload a file\n */\nexport const sendFileUpload = {\n method: \"post\",\n pathParams: [\"file_upload_id\"],\n queryParams: [],\n bodyParams: [],\n formDataParams: [\"file\", \"part_number\"],\n path: (p: SendFileUploadPathParameters): string =>\n `file_uploads/${p.file_upload_id}/send`,\n} as const\n\ntype CompleteFileUploadPathParameters = {\n // Identifier for a Notion file upload object.\n file_upload_id: IdRequest\n}\n\nexport type CompleteFileUploadParameters = CompleteFileUploadPathParameters\n\nexport type CompleteFileUploadResponse = FileUploadObjectResponse\n\n/**\n * Complete a multi-part file upload\n */\nexport const completeFileUpload = {\n method: \"post\",\n pathParams: [\"file_upload_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: CompleteFileUploadPathParameters): string =>\n `file_uploads/${p.file_upload_id}/complete`,\n} as const\n\ntype GetFileUploadPathParameters = {\n // Identifier for a Notion file upload object.\n file_upload_id: IdRequest\n}\n\nexport type GetFileUploadParameters = GetFileUploadPathParameters\n\nexport type GetFileUploadResponse = FileUploadObjectResponse\n\n/**\n * Retrieve a file upload\n */\nexport const getFileUpload = {\n method: \"get\",\n pathParams: [\"file_upload_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: GetFileUploadPathParameters): string =>\n `file_uploads/${p.file_upload_id}`,\n} as const\n\ntype OauthTokenBodyParameters =\n | {\n grant_type: \"authorization_code\"\n code: string\n redirect_uri?: string\n external_account?: { key: string; name: string }\n }\n | { grant_type: \"refresh_token\"; refresh_token: string }\n\nexport type OauthTokenParameters = OauthTokenBodyParameters\n\nexport type OauthTokenResponse = {\n access_token: string\n token_type: \"bearer\"\n refresh_token: string | null\n bot_id: string\n workspace_icon: string | null\n workspace_name: string | null\n workspace_id: string\n owner:\n | {\n type: \"user\"\n user:\n | {\n type: \"person\"\n person: { email: string }\n name: string | null\n avatar_url: string | null\n id: IdRequest\n object: \"user\"\n }\n | PartialUserObjectResponse\n }\n | { type: \"workspace\"; workspace: true }\n duplicated_template_id: string | null\n request_id?: string\n}\n\n/**\n * Exchange an authorization code for an access and refresh token\n */\nexport const oauthToken = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\n \"grant_type\",\n \"code\",\n \"redirect_uri\",\n \"external_account\",\n \"refresh_token\",\n ],\n\n path: (): string => `oauth/token`,\n} as const\n\ntype OauthRevokeBodyParameters = { token: string }\n\nexport type OauthRevokeParameters = OauthRevokeBodyParameters\n\nexport type OauthRevokeResponse = { request_id?: string }\n\n/**\n * Revoke a token\n */\nexport const oauthRevoke = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\"token\"],\n\n path: (): string => `oauth/revoke`,\n} as const\n\ntype OauthIntrospectBodyParameters = { token: string }\n\nexport type OauthIntrospectParameters = OauthIntrospectBodyParameters\n\nexport type OauthIntrospectResponse = {\n active: boolean\n scope?: string\n iat?: number\n request_id?: string\n}\n\n/**\n * Introspect a token\n */\nexport const oauthIntrospect = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\"token\"],\n\n path: (): string => `oauth/introspect`,\n} as const\n"]}
|
|
1
|
+
{"version":3,"file":"api-endpoints.js","sourceRoot":"","sources":["../../src/api-endpoints.ts"],"names":[],"mappings":"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","sourcesContent":["// cspell:disable-file\n// Note: This is a generated file. DO NOT EDIT!\n\ntype AnnotationRequest = {\n // Whether the text is formatted as bold.\n bold?: boolean\n // Whether the text is formatted as italic.\n italic?: boolean\n // Whether the text is formatted with a strikethrough.\n strikethrough?: boolean\n // Whether the text is formatted with an underline.\n underline?: boolean\n // Whether the text is formatted as code.\n code?: boolean\n // The color of the text.\n color?: ApiColor\n}\n\ntype AnnotationResponse = {\n bold: boolean\n italic: boolean\n strikethrough: boolean\n underline: boolean\n code: boolean\n color: ApiColor\n}\n\n/**\n * One of: `default`, `gray`, `brown`, `orange`, `yellow`, `green`, `blue`, `purple`,\n * `pink`, `red`, `default_background`, `gray_background`, `brown_background`,\n * `orange_background`, `yellow_background`, `green_background`, `blue_background`,\n * `purple_background`, `pink_background`, `red_background`\n */\ntype ApiColor =\n | \"default\"\n | \"gray\"\n | \"brown\"\n | \"orange\"\n | \"yellow\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n | \"default_background\"\n | \"gray_background\"\n | \"brown_background\"\n | \"orange_background\"\n | \"yellow_background\"\n | \"green_background\"\n | \"blue_background\"\n | \"purple_background\"\n | \"pink_background\"\n | \"red_background\"\n\ntype ApiTranscriptionStatus =\n | \"transcription_not_started\"\n | \"transcription_paused\"\n | \"transcription_in_progress\"\n | \"summary_in_progress\"\n | \"notes_ready\"\n\ntype ArrayBasedPropertyValueResponse =\n | TitleArrayBasedPropertyValueResponse\n | RichTextArrayBasedPropertyValueResponse\n | PeopleArrayBasedPropertyValueResponse\n | RelationArrayBasedPropertyValueResponse\n\ntype ArrayPartialRollupValueResponse = {\n // Always `array`\n type: \"array\"\n array: Array<SimpleOrArrayPropertyValueResponse>\n}\n\nexport type AudioBlockObjectResponse = {\n type: \"audio\"\n audio: MediaContentWithFileAndCaptionResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype BlockIdCommentParentResponse = {\n // Always `block_id`\n type: \"block_id\"\n block_id: IdResponse\n}\n\ntype BlockIdParentForBlockBasedObjectResponse = {\n // The parent type.\n type: \"block_id\"\n // The ID of the parent block.\n block_id: IdResponse\n}\n\nexport type BlockObjectRequest =\n | {\n embed: MediaContentWithUrlAndCaptionRequest\n type?: \"embed\"\n object?: \"block\"\n }\n | {\n bookmark: MediaContentWithUrlAndCaptionRequest\n type?: \"bookmark\"\n object?: \"block\"\n }\n | {\n image: MediaContentWithFileAndCaptionRequest\n type?: \"image\"\n object?: \"block\"\n }\n | {\n video: MediaContentWithFileAndCaptionRequest\n type?: \"video\"\n object?: \"block\"\n }\n | {\n pdf: MediaContentWithFileAndCaptionRequest\n type?: \"pdf\"\n object?: \"block\"\n }\n | {\n file: MediaContentWithFileNameAndCaptionRequest\n type?: \"file\"\n object?: \"block\"\n }\n | {\n audio: MediaContentWithFileAndCaptionRequest\n type?: \"audio\"\n object?: \"block\"\n }\n | {\n code: {\n rich_text: Array<RichTextItemRequest>\n language: LanguageRequest\n caption?: Array<RichTextItemRequest>\n }\n type?: \"code\"\n object?: \"block\"\n }\n | {\n equation: ContentWithExpressionRequest\n type?: \"equation\"\n object?: \"block\"\n }\n | { divider: EmptyObject; type?: \"divider\"; object?: \"block\" }\n | { breadcrumb: EmptyObject; type?: \"breadcrumb\"; object?: \"block\" }\n | {\n table_of_contents: { color?: ApiColor }\n type?: \"table_of_contents\"\n object?: \"block\"\n }\n | {\n link_to_page:\n | { page_id: IdRequest; type?: \"page_id\" }\n | { database_id: IdRequest; type?: \"database_id\" }\n | { comment_id: IdRequest; type?: \"comment_id\" }\n type?: \"link_to_page\"\n object?: \"block\"\n }\n | {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n object?: \"block\"\n }\n | {\n table: TableRequestWithTableRowChildren\n type?: \"table\"\n object?: \"block\"\n }\n | { column_list: ColumnListRequest; type?: \"column_list\"; object?: \"block\" }\n | { column: ColumnWithChildrenRequest; type?: \"column\"; object?: \"block\" }\n | {\n heading_1: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"heading_1\"\n object?: \"block\"\n }\n | {\n heading_2: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"heading_2\"\n object?: \"block\"\n }\n | {\n heading_3: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"heading_3\"\n object?: \"block\"\n }\n | {\n paragraph: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"paragraph\"\n object?: \"block\"\n }\n | {\n bulleted_list_item: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"bulleted_list_item\"\n object?: \"block\"\n }\n | {\n numbered_list_item: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"numbered_list_item\"\n object?: \"block\"\n }\n | {\n quote: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"quote\"\n object?: \"block\"\n }\n | {\n to_do: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n checked?: boolean\n }\n type?: \"to_do\"\n object?: \"block\"\n }\n | {\n toggle: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"toggle\"\n object?: \"block\"\n }\n | {\n template: {\n rich_text: Array<RichTextItemRequest>\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"template\"\n object?: \"block\"\n }\n | {\n callout: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n icon?: PageIconRequest\n }\n type?: \"callout\"\n object?: \"block\"\n }\n | {\n synced_block: {\n synced_from: { block_id: IdRequest; type?: \"block_id\" } | null\n children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n }\n type?: \"synced_block\"\n object?: \"block\"\n }\n\nexport type BlockObjectRequestWithoutChildren =\n | {\n embed: MediaContentWithUrlAndCaptionRequest\n type?: \"embed\"\n object?: \"block\"\n }\n | {\n bookmark: MediaContentWithUrlAndCaptionRequest\n type?: \"bookmark\"\n object?: \"block\"\n }\n | {\n image: MediaContentWithFileAndCaptionRequest\n type?: \"image\"\n object?: \"block\"\n }\n | {\n video: MediaContentWithFileAndCaptionRequest\n type?: \"video\"\n object?: \"block\"\n }\n | {\n pdf: MediaContentWithFileAndCaptionRequest\n type?: \"pdf\"\n object?: \"block\"\n }\n | {\n file: MediaContentWithFileNameAndCaptionRequest\n type?: \"file\"\n object?: \"block\"\n }\n | {\n audio: MediaContentWithFileAndCaptionRequest\n type?: \"audio\"\n object?: \"block\"\n }\n | {\n code: {\n rich_text: Array<RichTextItemRequest>\n language: LanguageRequest\n caption?: Array<RichTextItemRequest>\n }\n type?: \"code\"\n object?: \"block\"\n }\n | {\n equation: ContentWithExpressionRequest\n type?: \"equation\"\n object?: \"block\"\n }\n | { divider: EmptyObject; type?: \"divider\"; object?: \"block\" }\n | { breadcrumb: EmptyObject; type?: \"breadcrumb\"; object?: \"block\" }\n | {\n table_of_contents: { color?: ApiColor }\n type?: \"table_of_contents\"\n object?: \"block\"\n }\n | {\n link_to_page:\n | { page_id: IdRequest; type?: \"page_id\" }\n | { database_id: IdRequest; type?: \"database_id\" }\n | { comment_id: IdRequest; type?: \"comment_id\" }\n type?: \"link_to_page\"\n object?: \"block\"\n }\n | {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n object?: \"block\"\n }\n | {\n heading_1: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_1\"\n object?: \"block\"\n }\n | {\n heading_2: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_2\"\n object?: \"block\"\n }\n | {\n heading_3: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_3\"\n object?: \"block\"\n }\n | {\n paragraph: ContentWithRichTextAndColorRequest\n type?: \"paragraph\"\n object?: \"block\"\n }\n | {\n bulleted_list_item: ContentWithRichTextAndColorRequest\n type?: \"bulleted_list_item\"\n object?: \"block\"\n }\n | {\n numbered_list_item: ContentWithRichTextAndColorRequest\n type?: \"numbered_list_item\"\n object?: \"block\"\n }\n | {\n quote: ContentWithRichTextAndColorRequest\n type?: \"quote\"\n object?: \"block\"\n }\n | {\n to_do: {\n rich_text: Array<RichTextItemRequest>\n checked?: boolean\n color?: ApiColor\n }\n type?: \"to_do\"\n object?: \"block\"\n }\n | {\n toggle: ContentWithRichTextAndColorRequest\n type?: \"toggle\"\n object?: \"block\"\n }\n | {\n template: ContentWithRichTextRequest\n type?: \"template\"\n object?: \"block\"\n }\n | {\n callout: {\n rich_text: Array<RichTextItemRequest>\n icon?: PageIconRequest\n color?: ApiColor\n }\n type?: \"callout\"\n object?: \"block\"\n }\n | {\n synced_block: {\n synced_from: { block_id: IdRequest; type?: \"block_id\" } | null\n }\n type?: \"synced_block\"\n object?: \"block\"\n }\n\nexport type BlockObjectResponse =\n | ParagraphBlockObjectResponse\n | Heading1BlockObjectResponse\n | Heading2BlockObjectResponse\n | Heading3BlockObjectResponse\n | BulletedListItemBlockObjectResponse\n | NumberedListItemBlockObjectResponse\n | QuoteBlockObjectResponse\n | ToDoBlockObjectResponse\n | ToggleBlockObjectResponse\n | TemplateBlockObjectResponse\n | SyncedBlockBlockObjectResponse\n | ChildPageBlockObjectResponse\n | ChildDatabaseBlockObjectResponse\n | EquationBlockObjectResponse\n | CodeBlockObjectResponse\n | CalloutBlockObjectResponse\n | DividerBlockObjectResponse\n | BreadcrumbBlockObjectResponse\n | TableOfContentsBlockObjectResponse\n | ColumnListBlockObjectResponse\n | ColumnBlockObjectResponse\n | LinkToPageBlockObjectResponse\n | TableBlockObjectResponse\n | TableRowBlockObjectResponse\n | MeetingNotesBlockObjectResponse\n | TranscriptionBlockObjectResponse\n | EmbedBlockObjectResponse\n | BookmarkBlockObjectResponse\n | ImageBlockObjectResponse\n | VideoBlockObjectResponse\n | PdfBlockObjectResponse\n | FileBlockObjectResponse\n | AudioBlockObjectResponse\n | LinkPreviewBlockObjectResponse\n | UnsupportedBlockObjectResponse\n\ntype BlockObjectWithSingleLevelOfChildrenRequest =\n | {\n embed: MediaContentWithUrlAndCaptionRequest\n type?: \"embed\"\n object?: \"block\"\n }\n | {\n bookmark: MediaContentWithUrlAndCaptionRequest\n type?: \"bookmark\"\n object?: \"block\"\n }\n | {\n image: MediaContentWithFileAndCaptionRequest\n type?: \"image\"\n object?: \"block\"\n }\n | {\n video: MediaContentWithFileAndCaptionRequest\n type?: \"video\"\n object?: \"block\"\n }\n | {\n pdf: MediaContentWithFileAndCaptionRequest\n type?: \"pdf\"\n object?: \"block\"\n }\n | {\n file: MediaContentWithFileNameAndCaptionRequest\n type?: \"file\"\n object?: \"block\"\n }\n | {\n audio: MediaContentWithFileAndCaptionRequest\n type?: \"audio\"\n object?: \"block\"\n }\n | {\n code: {\n rich_text: Array<RichTextItemRequest>\n language: LanguageRequest\n caption?: Array<RichTextItemRequest>\n }\n type?: \"code\"\n object?: \"block\"\n }\n | {\n equation: ContentWithExpressionRequest\n type?: \"equation\"\n object?: \"block\"\n }\n | { divider: EmptyObject; type?: \"divider\"; object?: \"block\" }\n | { breadcrumb: EmptyObject; type?: \"breadcrumb\"; object?: \"block\" }\n | {\n table_of_contents: { color?: ApiColor }\n type?: \"table_of_contents\"\n object?: \"block\"\n }\n | {\n link_to_page:\n | { page_id: IdRequest; type?: \"page_id\" }\n | { database_id: IdRequest; type?: \"database_id\" }\n | { comment_id: IdRequest; type?: \"comment_id\" }\n type?: \"link_to_page\"\n object?: \"block\"\n }\n | {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n object?: \"block\"\n }\n | {\n heading_1: HeaderContentWithSingleLevelOfChildrenRequest\n type?: \"heading_1\"\n object?: \"block\"\n }\n | {\n heading_2: HeaderContentWithSingleLevelOfChildrenRequest\n type?: \"heading_2\"\n object?: \"block\"\n }\n | {\n heading_3: HeaderContentWithSingleLevelOfChildrenRequest\n type?: \"heading_3\"\n object?: \"block\"\n }\n | {\n paragraph: ContentWithSingleLevelOfChildrenRequest\n type?: \"paragraph\"\n object?: \"block\"\n }\n | {\n bulleted_list_item: ContentWithSingleLevelOfChildrenRequest\n type?: \"bulleted_list_item\"\n object?: \"block\"\n }\n | {\n numbered_list_item: ContentWithSingleLevelOfChildrenRequest\n type?: \"numbered_list_item\"\n object?: \"block\"\n }\n | {\n quote: ContentWithSingleLevelOfChildrenRequest\n type?: \"quote\"\n object?: \"block\"\n }\n | {\n table: TableRequestWithTableRowChildren\n type?: \"table\"\n object?: \"block\"\n }\n | {\n to_do: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectRequestWithoutChildren>\n checked?: boolean\n }\n type?: \"to_do\"\n object?: \"block\"\n }\n | {\n toggle: ContentWithSingleLevelOfChildrenRequest\n type?: \"toggle\"\n object?: \"block\"\n }\n | {\n template: {\n rich_text: Array<RichTextItemRequest>\n children?: Array<BlockObjectRequestWithoutChildren>\n }\n type?: \"template\"\n object?: \"block\"\n }\n | {\n callout: {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectRequestWithoutChildren>\n icon?: PageIconRequest\n }\n type?: \"callout\"\n object?: \"block\"\n }\n | {\n synced_block: {\n synced_from: { block_id: IdRequest; type?: \"block_id\" } | null\n children?: Array<BlockObjectRequestWithoutChildren>\n }\n type?: \"synced_block\"\n object?: \"block\"\n }\n\ntype BoardViewConfigRequest = {\n // The view type. Must be \"board\".\n type: \"board\"\n // Group-by configuration for board columns.\n group_by: GroupByConfigRequest\n // Secondary group-by configuration for sub-grouping within columns. Pass null to remove\n // sub-grouping.\n sub_group_by?: GroupByConfigRequest | null\n // Property visibility and display configuration on cards. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n // Cover image configuration for cards. Pass null to clear.\n cover?: CoverConfigRequest | null\n // Size of the cover image on cards. Pass null to clear.\n cover_size?: \"small\" | \"medium\" | \"large\" | null\n // Aspect ratio mode for cover images. \"contain\" fits the image, \"cover\" fills the area.\n // Pass null to clear.\n cover_aspect?: \"contain\" | \"cover\" | null\n // Card layout mode. \"list\" shows full cards, \"compact\" shows condensed cards. Pass null\n // to clear.\n card_layout?: \"list\" | \"compact\" | null\n}\n\ntype BoardViewConfigResponse = {\n // The view configuration type.\n type: \"board\"\n // Column (horizontal) grouping - required for board view.\n group_by: GroupByConfigResponse\n // Sub-grouping (vertical swimlanes within columns).\n sub_group_by?: GroupByConfigResponse\n // Properties to display on each card.\n properties?: Array<ViewPropertyConfigResponse>\n // Card cover/preview image configuration.\n cover?: CoverConfigResponse\n // Cover image size.\n cover_size?: \"small\" | \"medium\" | \"large\"\n // Cover image aspect ratio.\n cover_aspect?: \"contain\" | \"cover\"\n // Card layout mode (list shows all properties, compact shows inline).\n card_layout?: \"list\" | \"compact\"\n}\n\nexport type BookmarkBlockObjectResponse = {\n type: \"bookmark\"\n bookmark: MediaContentWithUrlAndCaptionResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype BooleanFormulaPropertyResponse = {\n type: \"boolean\"\n boolean: boolean | null\n}\n\ntype BooleanFormulaPropertyValueResponse = {\n // Always `boolean`\n type: \"boolean\"\n boolean: boolean | null\n}\n\ntype BotInfoResponse = {\n // Details about the owner of the bot.\n owner:\n | {\n // Always `user`\n type: \"user\"\n // Details about the owner of the bot, when the `type` of the owner is `user`. This means\n // the bot is for a integration.\n user:\n | {\n // The ID of the user.\n id: IdResponse\n // The user object type name.\n object: \"user\"\n // The name of the user.\n name: string | null\n // The avatar URL of the user.\n avatar_url: string | null\n // The type of the user.\n type: \"person\"\n // The person info of the user.\n person: {\n // The email of the person.\n email?: string\n }\n }\n | PartialUserObjectResponse\n }\n | {\n // Always `workspace`\n type: \"workspace\"\n // Details about the owner of the bot, when the `type` of the owner is `workspace`. This\n // means the bot is for an internal integration.\n workspace: true\n }\n // The ID of the bot's workspace.\n workspace_id: string\n // Limits and restrictions that apply to the bot's workspace\n workspace_limits: {\n // The maximum allowable size of a file upload, in bytes\n max_file_upload_size_in_bytes: number\n }\n // The name of the bot's workspace.\n workspace_name: string | null\n}\n\nexport type BotUserObjectResponse = {\n // Indicates this user is a bot.\n type: \"bot\"\n // Details about the bot, when the `type` of the user is `bot`.\n bot: EmptyObject | BotInfoResponse\n}\n\nexport type BreadcrumbBlockObjectResponse = {\n type: \"breadcrumb\"\n breadcrumb: EmptyObject\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type BulletedListItemBlockObjectResponse = {\n type: \"bulleted_list_item\"\n bulleted_list_item: ContentWithRichTextAndColorResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype ButtonPropertyConfigurationRequest = {\n // Always `button`\n type?: \"button\"\n button: EmptyObject\n}\n\nexport type ButtonPropertyItemObjectResponse = {\n type: \"button\"\n button: EmptyObject\n object: \"property_item\"\n id: string\n}\n\ntype ButtonSimplePropertyValueResponse = {\n // Always `button`\n type: \"button\"\n button: EmptyObject\n}\n\ntype CalendarViewConfigRequest = {\n // The view type. Must be \"calendar\".\n type: \"calendar\"\n // Property ID of the date property used to position items on the calendar.\n date_property_id: string\n // Property visibility and display configuration on calendar cards. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n // Default calendar range. \"week\" shows a week view, \"month\" shows a month view. Pass\n // null to clear.\n view_range?: \"week\" | \"month\" | null\n // Whether to show weekend days. Pass null to clear.\n show_weekends?: boolean | null\n}\n\ntype CalendarViewConfigResponse = {\n // The view configuration type.\n type: \"calendar\"\n // Date property used to position items on the calendar - required.\n date_property_id: string\n // Date property name (convenience field).\n date_property_name?: string\n // Properties to display on calendar event cards.\n properties?: Array<ViewPropertyConfigResponse>\n // Calendar view range.\n view_range?: \"week\" | \"month\"\n // Whether to show weekend days.\n show_weekends?: boolean\n}\n\nexport type CalloutBlockObjectResponse = {\n type: \"callout\"\n callout: {\n rich_text: Array<RichTextItemResponse>\n color: ApiColor\n icon: PageIconResponse | null\n }\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype ChartAggregationRequest = {\n // The aggregation operator. \"count\" counts all rows and does not require a property_id.\n // All other operators require a property_id.\n aggregator:\n | \"count\"\n | \"count_values\"\n | \"sum\"\n | \"average\"\n | \"median\"\n | \"min\"\n | \"max\"\n | \"range\"\n | \"unique\"\n | \"empty\"\n | \"not_empty\"\n | \"percent_empty\"\n | \"percent_not_empty\"\n | \"checked\"\n | \"unchecked\"\n | \"percent_checked\"\n | \"percent_unchecked\"\n | \"earliest_date\"\n | \"latest_date\"\n | \"date_range\"\n // The property to aggregate on. Required for all operators except \"count\".\n property_id?: string\n}\n\ntype ChartAggregationResponse = {\n // The aggregation operator. \"count\" counts all rows and does not require a property_id.\n // All other operators require a property_id.\n aggregator:\n | \"count\"\n | \"count_values\"\n | \"sum\"\n | \"average\"\n | \"median\"\n | \"min\"\n | \"max\"\n | \"range\"\n | \"unique\"\n | \"empty\"\n | \"not_empty\"\n | \"percent_empty\"\n | \"percent_not_empty\"\n | \"checked\"\n | \"unchecked\"\n | \"percent_checked\"\n | \"percent_unchecked\"\n | \"earliest_date\"\n | \"latest_date\"\n | \"date_range\"\n // The property to aggregate on. Required for all operators except \"count\".\n property_id?: string\n}\n\ntype ChartReferenceLineRequest = {\n // The y-axis value where the reference line is drawn.\n value: number\n // Label displayed alongside the reference line.\n label: string\n // Color of the reference line.\n color:\n | \"gray\"\n | \"lightgray\"\n | \"brown\"\n | \"yellow\"\n | \"orange\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n // Line style: \"solid\" for a continuous line, \"dash\" for a dashed line.\n dash_style: \"solid\" | \"dash\"\n // Unique identifier for the reference line. Auto-generated if omitted.\n id?: string\n}\n\ntype ChartReferenceLineResponse = {\n // Unique identifier for the reference line.\n id: string\n // The y-axis value where the reference line is drawn.\n value: number\n // Label displayed alongside the reference line.\n label: string\n // Color of the reference line.\n color:\n | \"gray\"\n | \"lightgray\"\n | \"brown\"\n | \"yellow\"\n | \"orange\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n // Line style: \"solid\" for a continuous line, \"dash\" for a dashed line.\n dash_style: \"solid\" | \"dash\"\n}\n\ntype ChartViewConfigRequest = {\n // The view type. Must be \"chart\".\n type: \"chart\"\n // The chart type.\n chart_type: \"column\" | \"bar\" | \"line\" | \"donut\" | \"number\"\n // X-axis grouping configuration for grouped data mode. Pass null to clear.\n x_axis?: GroupByConfigRequest | null\n // Y-axis aggregation for grouped data mode. Pass null to clear.\n y_axis?: ChartAggregationRequest | null\n // Property ID for x-axis values in results mode. Pass null to clear.\n x_axis_property_id?: string | null\n // Property ID for y-axis values in results mode. Pass null to clear.\n y_axis_property_id?: string | null\n // Aggregation for number charts. Pass null to clear.\n value?: ChartAggregationRequest | null\n // Sort order for chart data. Pass null to clear.\n sort?:\n | \"manual\"\n | \"x_ascending\"\n | \"x_descending\"\n | \"y_ascending\"\n | \"y_descending\"\n | null\n // Color theme. Pass null to clear.\n color_theme?:\n | \"gray\"\n | \"blue\"\n | \"yellow\"\n | \"green\"\n | \"purple\"\n | \"teal\"\n | \"orange\"\n | \"pink\"\n | \"red\"\n | \"auto\"\n | \"colorful\"\n | null\n // Chart height. Pass null to clear.\n height?: \"small\" | \"medium\" | \"large\" | \"extra_large\" | null\n // Whether to hide groups with no data. Pass null to clear.\n hide_empty_groups?: boolean | null\n // Legend position. Pass null to clear.\n legend_position?: \"off\" | \"bottom\" | \"side\" | null\n // Whether to show data labels. Pass null to clear.\n show_data_labels?: boolean | null\n // Which axis labels to show. Pass null to clear.\n axis_labels?: \"none\" | \"x_axis\" | \"y_axis\" | \"both\" | null\n // Which grid lines to show. Pass null to clear.\n grid_lines?: \"none\" | \"horizontal\" | \"vertical\" | \"both\" | null\n // Cumulative values (line only). Pass null to clear.\n cumulative?: boolean | null\n // Smooth line curves (line only). Pass null to clear.\n smooth_line?: boolean | null\n // Hide area fill (line only). Pass null to clear.\n hide_line_fill_area?: boolean | null\n // Grouped/stacked bar display style. Pass null to clear.\n group_style?: \"normal\" | \"percent\" | \"side_by_side\" | null\n // Custom y-axis minimum. Pass null to clear.\n y_axis_min?: number | null\n // Custom y-axis maximum. Pass null to clear.\n y_axis_max?: number | null\n // Donut slice labels. Pass null to clear.\n donut_labels?: \"none\" | \"value\" | \"name\" | \"name_and_value\" | null\n // Hide title (number only). Pass null to clear.\n hide_title?: boolean | null\n // Stack-by grouping for stacked/grouped bar charts. Pass null to clear.\n stack_by?: GroupByConfigRequest | null\n // Reference lines on the chart. Pass null to clear.\n reference_lines?: Array<ChartReferenceLineRequest> | null\n // Chart caption text. Pass null to clear.\n caption?: string | null\n // Whether to color chart elements by their numeric value (gradient coloring). Pass null\n // to clear.\n color_by_value?: boolean | null\n}\n\ntype ChartViewConfigResponse = {\n // The view configuration type.\n type: \"chart\"\n // The chart type: column (vertical bars), bar (horizontal bars), line, donut, or number\n // (single value display).\n chart_type: \"column\" | \"bar\" | \"line\" | \"donut\" | \"number\"\n // X-axis grouping configuration for column/bar/line/donut charts using grouped data.\n // Null when using results (raw property values) mode.\n x_axis?: GroupByConfigResponse | null\n // Y-axis aggregation for column/bar/line/donut charts using grouped data. Null when\n // using results mode.\n y_axis?: ChartAggregationResponse | null\n // Property ID for the x-axis name values when using results (raw property values) mode.\n x_axis_property_id?: string\n // Property ID for the y-axis numeric values when using results (raw property values)\n // mode.\n y_axis_property_id?: string\n // Aggregation configuration for number charts (single value display).\n value?: ChartAggregationResponse\n // Sort order for chart data.\n sort?:\n | \"manual\"\n | \"x_ascending\"\n | \"x_descending\"\n | \"y_ascending\"\n | \"y_descending\"\n // Color theme for the chart.\n color_theme?:\n | \"gray\"\n | \"blue\"\n | \"yellow\"\n | \"green\"\n | \"purple\"\n | \"teal\"\n | \"orange\"\n | \"pink\"\n | \"red\"\n | \"auto\"\n | \"colorful\"\n // Chart height.\n height?: \"small\" | \"medium\" | \"large\" | \"extra_large\"\n // Whether to hide groups with no data on the x-axis.\n hide_empty_groups?: boolean\n // Legend display position. \"off\" hides the legend.\n legend_position?: \"off\" | \"bottom\" | \"side\"\n // Whether to show data value labels on chart elements.\n show_data_labels?: boolean\n // Which axis labels to display.\n axis_labels?: \"none\" | \"x_axis\" | \"y_axis\" | \"both\"\n // Which grid lines to display.\n grid_lines?: \"none\" | \"horizontal\" | \"vertical\" | \"both\"\n // Whether to show cumulative values (line charts only).\n cumulative?: boolean\n // Whether to use smooth curves (line charts only).\n smooth_line?: boolean\n // Whether to hide the shaded area under the line (line charts only).\n hide_line_fill_area?: boolean\n // How grouped/stacked bars are displayed. \"normal\" stacks values, \"percent\" normalizes\n // to 100%, \"side_by_side\" places bars next to each other.\n group_style?: \"normal\" | \"percent\" | \"side_by_side\"\n // Custom minimum value for the y-axis. Null clears the override.\n y_axis_min?: number | null\n // Custom maximum value for the y-axis. Null clears the override.\n y_axis_max?: number | null\n // What to display on donut chart slices.\n donut_labels?: \"none\" | \"value\" | \"name\" | \"name_and_value\"\n // Whether to hide the title label (number charts only).\n hide_title?: boolean\n // Stack-by grouping configuration for stacked/grouped bar charts (column/bar/line only).\n // Null when not stacked.\n stack_by?: GroupByConfigResponse | null\n // Reference lines drawn on the chart. Null when no reference lines are configured.\n reference_lines?: Array<ChartReferenceLineResponse> | null\n // Text caption displayed below the chart. Null when no caption is shown.\n caption?: string | null\n // Whether chart elements are colored by their numeric value (gradient coloring).\n color_by_value?: boolean\n}\n\ntype CheckboxDatabasePropertyConfigResponse = {\n // Always `checkbox`\n type: \"checkbox\"\n checkbox: EmptyObject\n}\n\ntype CheckboxGroupByConfigRequest = {\n // The property type for grouping.\n type: \"checkbox\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype CheckboxGroupByConfigResponse = {\n // The property type for grouping.\n type: \"checkbox\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups (only manual for checkbox).\n sort: GroupSortResponse\n // Property name (convenience field).\n property_name?: string\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype CheckboxPropertyConfigurationRequest = {\n // Always `checkbox`\n type?: \"checkbox\"\n checkbox: EmptyObject\n}\n\ntype CheckboxPropertyFilter = { equals: boolean } | { does_not_equal: boolean }\n\nexport type CheckboxPropertyItemObjectResponse = {\n type: \"checkbox\"\n checkbox: boolean\n object: \"property_item\"\n id: string\n}\n\ntype CheckboxSimplePropertyValueResponse = {\n // Always `checkbox`\n type: \"checkbox\"\n checkbox: boolean\n}\n\nexport type ChildDatabaseBlockObjectResponse = {\n type: \"child_database\"\n child_database: TitleObjectResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type ChildPageBlockObjectResponse = {\n type: \"child_page\"\n child_page: TitleObjectResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type CodeBlockObjectResponse = {\n type: \"code\"\n code: {\n rich_text: Array<RichTextItemResponse>\n caption: Array<RichTextItemResponse>\n language: LanguageRequest\n }\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type ColumnBlockObjectResponse = {\n type: \"column\"\n column: ColumnResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype ColumnBlockWithChildrenRequest = {\n column: ColumnWithChildrenRequest\n type?: \"column\"\n object?: \"block\"\n}\n\nexport type ColumnListBlockObjectResponse = {\n type: \"column_list\"\n column_list: EmptyObject\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype ColumnListRequest = { children: Array<ColumnBlockWithChildrenRequest> }\n\ntype ColumnResponse = {\n // Ratio between 0 and 1 of the width of this column relative to all columns in the list.\n // If not provided, uses an equal width.\n width_ratio?: number\n}\n\ntype ColumnWithChildrenRequest = {\n children: Array<BlockObjectWithSingleLevelOfChildrenRequest>\n // Ratio between 0 and 1 of the width of this column relative to all columns in the list.\n // If not provided, uses an equal width.\n width_ratio?: number\n}\n\nexport type CommentObjectResponse = {\n // The comment object type name.\n object: \"comment\"\n // The ID of the comment.\n id: IdResponse\n // The parent of the comment.\n parent: CommentParentResponse\n // The ID of the discussion thread this comment belongs to.\n discussion_id: IdResponse\n // The time when the comment was created.\n created_time: string\n // The time when the comment was last edited.\n last_edited_time: string\n // The user who created the comment.\n created_by: PartialUserObjectResponse\n // The rich text content of the comment.\n rich_text: Array<RichTextItemResponse>\n // The display name of the comment.\n display_name: {\n // One of: `custom`, `user`, `integration`\n type: \"custom\" | \"user\" | \"integration\"\n resolved_name: string | null\n }\n // Any file attachments associated with the comment.\n attachments?: Array<{\n // One of: `audio`, `image`, `pdf`, `productivity`, `video`\n category: \"audio\" | \"image\" | \"pdf\" | \"productivity\" | \"video\"\n file: InternalFileResponse\n }>\n}\n\ntype CommentParentResponse =\n | PageIdCommentParentResponse\n | BlockIdCommentParentResponse\n\ntype ContentPositionSchema =\n | { type: \"after_block\"; after_block: { id: IdRequest } }\n | { type: \"start\" }\n | { type: \"end\" }\n\ntype ContentWithExpressionRequest = { expression: string }\n\ntype ContentWithRichTextAndColorAndListResponse = {\n rich_text: Array<RichTextItemResponse>\n color: ApiColor\n list_start_index?: number\n list_format?: NumberedListFormat\n}\n\ntype ContentWithRichTextAndColorRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n}\n\ntype ContentWithRichTextAndColorResponse = {\n rich_text: Array<RichTextItemResponse>\n color: ApiColor\n}\n\ntype ContentWithRichTextRequest = { rich_text: Array<RichTextItemRequest> }\n\ntype ContentWithSingleLevelOfChildrenRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n children?: Array<BlockObjectRequestWithoutChildren>\n}\n\ntype ContentWithTableResponse = {\n has_column_header: boolean\n has_row_header: boolean\n table_width: number\n}\n\ntype ContentWithTableRowRequest = { cells: Array<Array<RichTextItemRequest>> }\n\ntype ContentWithTableRowResponse = { cells: Array<Array<RichTextItemResponse>> }\n\ntype CoverConfigRequest = {\n // Source of the cover image.\n type: \"page_cover\" | \"page_content\" | \"property\"\n // Property ID when type is \"property\".\n property_id?: string\n}\n\ntype CoverConfigResponse = {\n // Source of the cover image.\n type: \"page_cover\" | \"page_content\" | \"page_content_first\" | \"property\"\n // Property ID when type is \"property\".\n property_id?: string\n}\n\ntype CreateDatabaseForViewRequest = {\n // The parent page for the new linked database block.\n parent: {\n // The parent type. Must be \"page_id\".\n type: \"page_id\"\n // The ID of the page to create the database on.\n page_id: IdRequest\n }\n // Where to place the new database block within the parent page. Defaults to appending at\n // the end.\n position?: {\n // Position type. \"after_block\" places the new database after the specified block in the\n // page.\n type: \"after_block\"\n // The ID of an existing block in the page. The new database will be placed after this\n // block.\n block_id: IdRequest\n }\n}\n\ntype CreateViewQueryRequest = {\n // The number of results to return per page. Maximum: 100\n page_size?: number\n}\n\ntype CreateViewRequest = {\n // The ID of the data source this view should be scoped to.\n data_source_id: IdRequest\n // The name of the view.\n name: string\n // The type of view to create.\n type: ViewTypeRequest\n // The ID of the database to create a view in. Mutually exclusive with view_id and\n // create_database.\n database_id?: IdRequest\n // The ID of a dashboard view to add this view to as a widget. Mutually exclusive with\n // database_id and create_database.\n view_id?: IdRequest\n // Filter to apply to the view. Uses the same format as the data source query filter.\n filter?: ViewFilterRequest\n // Sorts to apply to the view. Uses the same format as the data source query sorts.\n sorts?: ViewSortsRequest\n // Quick filters to pin in the view's filter bar. Keys are property names or IDs. Values\n // are filter conditions (same shape as a property filter but without the property\n // field). Each quick filter appears as a clickable pill above the view, independent of\n // the advanced filter.\n quick_filters?: Record<string, QuickFilterConditionRequest>\n // Create a new linked database block on a page and add the view to it. Mutually\n // exclusive with database_id and view_id.\n create_database?: CreateDatabaseForViewRequest\n // View presentation configuration. The type field must match the view type.\n configuration?: ViewConfigRequest\n // Where to place the new view in the database's view tab bar. Only applicable when\n // database_id is provided. Defaults to \"end\" (append).\n position?: ViewPositionRequest\n // Where to place the new widget in a dashboard view. Only applicable when view_id is\n // provided. Defaults to creating a new row at the end.\n placement?: WidgetPlacementRequest\n}\n\ntype CreatedByDatabasePropertyConfigResponse = {\n // Always `created_by`\n type: \"created_by\"\n created_by: EmptyObject\n}\n\ntype CreatedByPropertyConfigurationRequest = {\n // Always `created_by`\n type?: \"created_by\"\n created_by: EmptyObject\n}\n\nexport type CreatedByPropertyItemObjectResponse = {\n type: \"created_by\"\n created_by: PartialUserObjectResponse | UserObjectResponse\n object: \"property_item\"\n id: string\n}\n\ntype CreatedBySimplePropertyValueResponse = {\n // Always `created_by`\n type: \"created_by\"\n created_by: UserValueResponse\n}\n\ntype CreatedTimeDatabasePropertyConfigResponse = {\n // Always `created_time`\n type: \"created_time\"\n created_time: EmptyObject\n}\n\ntype CreatedTimePropertyConfigurationRequest = {\n // Always `created_time`\n type?: \"created_time\"\n created_time: EmptyObject\n}\n\nexport type CreatedTimePropertyItemObjectResponse = {\n type: \"created_time\"\n created_time: string\n object: \"property_item\"\n id: string\n}\n\ntype CreatedTimeSimplePropertyValueResponse = {\n // Always `created_time`\n type: \"created_time\"\n created_time: string\n}\n\ntype CustomEmojiPageIconRequest = {\n // Always `custom_emoji`\n type?: \"custom_emoji\"\n custom_emoji: {\n // The ID of the custom emoji.\n id: IdRequest\n // The name of the custom emoji.\n name?: string\n // The URL of the custom emoji.\n url?: string\n }\n}\n\ntype CustomEmojiPageIconResponse = {\n // Type of icon. In this case, a custom emoji.\n type: \"custom_emoji\"\n // The custom emoji details for the icon.\n custom_emoji: CustomEmojiResponse\n}\n\ntype CustomEmojiResponse = {\n // The ID of the custom emoji.\n id: IdResponse\n // The name of the custom emoji.\n name: string\n // The URL of the custom emoji.\n url: string\n}\n\nexport type DashboardRowResponse = {\n // The ID of this row module.\n id: string\n // The widget modules within this row.\n widgets: Array<DashboardWidgetResponse>\n // Fixed height of the row in pixels.\n height?: number\n}\n\ntype DashboardViewConfigResponse = {\n // The view configuration type.\n type: \"dashboard\"\n // The rows that make up the dashboard layout. Each row contains one or more widget\n // modules.\n rows: Array<DashboardRowResponse>\n}\n\nexport type DashboardWidgetResponse = {\n // The ID of this widget module.\n id: string\n // The ID of the collection view rendered by this widget.\n view_id: string\n // Width of the widget in a 12-column grid (1-12). 12 means full width.\n width?: number\n // The 0-based index of the row this widget belongs to. Widgets in the same row share the\n // same row_index.\n row_index?: number\n}\n\nexport type DataSourceObjectResponse = {\n // The data source object type name.\n object: \"data_source\"\n // The ID of the data source.\n id: IdResponse\n // The title of the data source.\n title: Array<RichTextItemResponse>\n // The description of the data source.\n description: Array<RichTextItemResponse>\n // The parent of the data source.\n parent: ParentOfDataSourceResponse\n // The parent of the data source's containing database. This is typically a page, block,\n // or workspace, but can be another database in the case of wikis.\n database_parent: ParentOfDatabaseResponse\n // Whether the data source is inline.\n is_inline: boolean\n // Whether the data source is in the trash.\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n // The time when the data source was created.\n created_time: string\n // The time when the data source was last edited.\n last_edited_time: string\n // The user who created the data source.\n created_by: PartialUserObjectResponse\n // The user who last edited the data source.\n last_edited_by: PartialUserObjectResponse\n // The properties schema of the data source.\n properties: Record<string, DatabasePropertyConfigResponse>\n // The icon of the data source.\n icon: PageIconResponse | null\n // The cover of the data source.\n cover: PageCoverResponse | null\n // The URL of the data source.\n url: string\n // The public URL of the data source if it is publicly accessible.\n public_url: string | null\n}\n\ntype DataSourceParentResponse = {\n // The parent type.\n type: \"data_source_id\"\n // The ID of the parent data source.\n data_source_id: IdResponse\n // The ID of the data source's parent database.\n database_id: IdResponse\n}\n\ntype DataSourceReferenceResponse = {\n // The ID of the data source.\n id: IdResponse\n // The name of the data source.\n name: string\n}\n\nexport type DataSourceViewObjectResponse = {\n // The object type name.\n object: \"view\"\n // The ID of the view.\n id: IdResponse\n // The parent database of the view.\n parent: DatabaseParentResponse\n // The name of the view.\n name: string\n // The view type.\n type:\n | \"table\"\n | \"board\"\n | \"list\"\n | \"calendar\"\n | \"timeline\"\n | \"gallery\"\n | \"form\"\n | \"chart\"\n | \"map\"\n | \"dashboard\"\n // The time when the view was created.\n created_time: string\n // The time when the view was last edited.\n last_edited_time: string\n // Canonical deep link to the view in Notion.\n url: string\n // The ID of the data source this view is scoped to, or null for dashboard views.\n data_source_id?: string | null\n // The user who created the view, or null if not available.\n created_by?: PartialUserObjectResponse | null\n // The user who last edited the view, or null if not available.\n last_edited_by?: PartialUserObjectResponse | null\n // The filter applied to this view (same shape as data source query filter).\n filter?: ViewFilterResponse | null\n // The sorts applied to this view (same shape as data source query sorts).\n sorts?: Array<ViewSortResponse> | null\n // Quick filters pinned to the view's filter bar. Keys are property IDs. Values are\n // filter conditions (same shape as a property filter without the property field). Null\n // when no quick filters are set.\n quick_filters?: Record<string, QuickFilterConditionResponse> | null\n // View presentation configuration.\n configuration?: ViewConfigResponse | null\n // For dashboard widget views, the ID of the parent dashboard view. Only present when\n // this view is a widget inside a dashboard.\n dashboard_view_id?: string\n}\n\ntype DataSourceViewReferenceResponse = {\n // The object type name.\n object: \"view\"\n // The ID of the view.\n id: IdResponse\n}\n\nexport type DatabaseObjectResponse = {\n // The database object type name.\n object: \"database\"\n // The ID of the database.\n id: IdResponse\n // The title of the database.\n title: Array<RichTextItemResponse>\n // The description of the database.\n description: Array<RichTextItemResponse>\n // The parent of the database. This is typically a page, block, or workspace, but can be\n // another database in the case of wikis.\n parent: ParentOfDatabaseResponse\n // Whether the database is inline.\n is_inline: boolean\n // Whether the database is in the trash.\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n // Whether the database is locked from editing in the Notion app UI.\n is_locked: boolean\n // The time when the database was created.\n created_time: string\n // The time when the database was last edited.\n last_edited_time: string\n // The data sources of the database.\n data_sources: Array<DataSourceReferenceResponse>\n // The icon of the database.\n icon: PageIconResponse | null\n // The cover of the database.\n cover: PageCoverResponse | null\n // The URL of the database.\n url: string\n // The public URL of the database if it is publicly accessible.\n public_url: string | null\n}\n\ntype DatabaseParentResponse = {\n // The parent type.\n type: \"database_id\"\n // The ID of the parent database.\n database_id: IdResponse\n}\n\ntype DatabasePropertyConfigResponse = DatabasePropertyConfigResponseCommon &\n (\n | NumberDatabasePropertyConfigResponse\n | FormulaDatabasePropertyConfigResponse\n | SelectDatabasePropertyConfigResponse\n | MultiSelectDatabasePropertyConfigResponse\n | StatusDatabasePropertyConfigResponse\n | RelationDatabasePropertyConfigResponse\n | RollupDatabasePropertyConfigResponse\n | UniqueIdDatabasePropertyConfigResponse\n | TitleDatabasePropertyConfigResponse\n | RichTextDatabasePropertyConfigResponse\n | UrlDatabasePropertyConfigResponse\n | PeopleDatabasePropertyConfigResponse\n | FilesDatabasePropertyConfigResponse\n | EmailDatabasePropertyConfigResponse\n | PhoneNumberDatabasePropertyConfigResponse\n | DateDatabasePropertyConfigResponse\n | CheckboxDatabasePropertyConfigResponse\n | CreatedByDatabasePropertyConfigResponse\n | CreatedTimeDatabasePropertyConfigResponse\n | LastEditedByDatabasePropertyConfigResponse\n | LastEditedTimeDatabasePropertyConfigResponse\n )\n\ntype DatabasePropertyConfigResponseCommon = {\n // The ID of the property.\n id: string\n // The name of the property.\n name: string\n // The description of the property.\n description: PropertyDescriptionRequest | null\n}\n\ntype DatabasePropertyRelationConfigResponse =\n DatabasePropertyRelationConfigResponseCommon &\n (\n | SinglePropertyDatabasePropertyRelationConfigResponse\n | DualPropertyDatabasePropertyRelationConfigResponse\n )\n\ntype DatabasePropertyRelationConfigResponseCommon = {\n database_id: IdResponse\n data_source_id: IdResponse\n}\n\ntype DateDatabasePropertyConfigResponse = {\n // Always `date`\n type: \"date\"\n date: EmptyObject\n}\n\ntype DateFormulaPropertyResponse = { type: \"date\"; date: DateResponse | null }\n\ntype DateFormulaPropertyValueResponse = {\n // Always `date`\n type: \"date\"\n date: DateResponse | null\n}\n\ntype DateGroupByConfigRequest = {\n // The property type for grouping.\n type: \"date\" | \"created_time\" | \"last_edited_time\"\n // Property ID to group by.\n property_id: string\n // Granularity for date grouping.\n group_by: \"relative\" | \"day\" | \"week\" | \"month\" | \"year\"\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n // Start day of week for week grouping (0 = Sunday, 1 = Monday).\n start_day_of_week?: 0 | 1\n}\n\ntype DateGroupByConfigResponse = {\n // The property type for grouping.\n type: \"date\" | \"created_time\" | \"last_edited_time\"\n // Property ID to group by.\n property_id: string\n // Granularity for date grouping.\n group_by: \"relative\" | \"day\" | \"week\" | \"month\" | \"year\"\n // Sort order for groups (no manual sort for dates).\n sort: GroupSortResponse\n // Property name (convenience field).\n property_name?: string\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n // Start day of week for week grouping (0 = Sunday, 1 = Monday).\n start_day_of_week?: 0 | 1\n}\n\ntype DatePartialRollupValueResponse = {\n // Always `date`\n type: \"date\"\n date: DateResponse | null\n}\n\ntype DatePropertyConfigurationRequest = {\n // Always `date`\n type?: \"date\"\n date: EmptyObject\n}\n\ntype DatePropertyFilter =\n | { equals: string }\n | { before: string }\n | { after: string }\n | { on_or_before: string }\n | { on_or_after: string }\n | { this_week: EmptyObject }\n | { past_week: EmptyObject }\n | { past_month: EmptyObject }\n | { past_year: EmptyObject }\n | { next_week: EmptyObject }\n | { next_month: EmptyObject }\n | { next_year: EmptyObject }\n | ExistencePropertyFilter\n\nexport type DatePropertyItemObjectResponse = {\n type: \"date\"\n date: DateResponse | null\n object: \"property_item\"\n id: string\n}\n\ntype DateRequest = {\n // The start date of the date object.\n start: string\n // The end date of the date object, if any.\n end?: string | null\n // The time zone of the date object, if any. E.g. America/Los_Angeles, Europe/London,\n // etc.\n time_zone?: TimeZoneRequest | null\n}\n\ntype DateResponse = {\n // The start date of the date object.\n start: string\n // The end date of the date object, if any.\n end: string | null\n // The time zone of the date object.\n time_zone: TimeZoneRequest | null\n}\n\ntype DateSimplePropertyValueResponse = {\n // Always `date`\n type: \"date\"\n date: DateResponse | null\n}\n\nexport type DeletedViewQueryResponse = {\n // The object type.\n object: \"view_query\"\n // The ID of the deleted view query.\n id: IdResponse\n // Whether the view query was deleted.\n deleted: boolean\n}\n\nexport type DividerBlockObjectResponse = {\n type: \"divider\"\n divider: EmptyObject\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype DualPropertyDatabasePropertyRelationConfigResponse = {\n // Always `dual_property`\n type?: \"dual_property\"\n dual_property: { synced_property_id: string; synced_property_name: string }\n}\n\ntype EmailDatabasePropertyConfigResponse = {\n // Always `email`\n type: \"email\"\n email: EmptyObject\n}\n\ntype EmailPropertyConfigurationRequest = {\n // Always `email`\n type?: \"email\"\n email: EmptyObject\n}\n\nexport type EmailPropertyItemObjectResponse = {\n type: \"email\"\n email: string | null\n object: \"property_item\"\n id: string\n}\n\ntype EmailSimplePropertyValueResponse = {\n // Always `email`\n type: \"email\"\n email: string | null\n}\n\nexport type EmbedBlockObjectResponse = {\n type: \"embed\"\n embed: MediaContentWithUrlAndCaptionResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype EmojiPageIconRequest = {\n // Always `emoji`\n type?: \"emoji\"\n // An emoji character.\n emoji: EmojiRequest\n}\n\ntype EmojiPageIconResponse = {\n // Type of icon. In this case, an emoji.\n type: \"emoji\"\n // The emoji character used as the icon.\n emoji: EmojiRequest\n}\n\ntype EmojiRequest = string\n\ntype EmptyObject = Record<string, never>\n\nexport type EquationBlockObjectResponse = {\n type: \"equation\"\n equation: ExpressionObjectResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype EquationRichTextItemRequest = {\n // Always `equation`\n type?: \"equation\"\n // Notion supports inline LaTeX equations as rich text objects with a type value of\n // `equation`.\n equation: {\n // A KaTeX compatible string.\n expression: string\n }\n}\n\nexport type EquationRichTextItemResponse = {\n // Always `equation`\n type: \"equation\"\n // Notion supports inline LaTeX equations as rich text objects with a type value of\n // `equation`.\n equation: {\n // A KaTeX compatible string.\n expression: string\n }\n}\n\ntype ExistencePropertyFilter = { is_empty: true } | { is_not_empty: true }\n\ntype ExpressionObjectResponse = { expression: string }\n\ntype ExternalFileRequest = { url: TextRequest }\n\ntype ExternalInternalOrExternalFileWithNameResponse = {\n // Type of attachment. In this case, an external URL.\n type: \"external\"\n // The external URL.\n external: {\n // The URL of the external file or resource.\n url: string\n }\n}\n\ntype ExternalMediaContentWithFileAndCaptionResponse = {\n type: \"external\"\n external: { url: TextRequest }\n caption: Array<RichTextItemResponse>\n}\n\ntype ExternalMediaContentWithFileNameAndCaptionResponse = {\n type: \"external\"\n external: { url: TextRequest }\n caption: Array<RichTextItemResponse>\n name: string\n}\n\ntype ExternalPageCoverRequest = {\n // Always `external`\n type?: \"external\"\n // External URL for the cover.\n external: {\n // The URL of the external file.\n url: string\n }\n}\n\ntype ExternalPageCoverResponse = {\n // Type of cover. In this case, an external URL.\n type: \"external\"\n // The external URL for the cover.\n external: {\n // The URL of the external file or resource.\n url: string\n }\n}\n\ntype ExternalPageIconRequest = {\n // Always `external`\n type?: \"external\"\n external: {\n // The URL of the external file.\n url: string\n }\n}\n\ntype ExternalPageIconResponse = {\n // Type of icon. In this case, an external URL.\n type: \"external\"\n // The external URL for the icon.\n external: {\n // The URL of the external file or resource.\n url: string\n }\n}\n\nexport type FileBlockObjectResponse = {\n type: \"file\"\n file: MediaContentWithFileNameAndCaptionResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype FileInternalOrExternalFileWithNameResponse = {\n // Type of attachment. In this case, a file uploaded to a Notion workspace.\n type: \"file\"\n // The file URL.\n file: InternalFileResponse\n}\n\ntype FileMediaContentWithFileAndCaptionResponse = {\n type: \"file\"\n file: InternalFileResponse\n caption: Array<RichTextItemResponse>\n}\n\ntype FileMediaContentWithFileNameAndCaptionResponse = {\n type: \"file\"\n file: InternalFileResponse\n caption: Array<RichTextItemResponse>\n name: string\n}\n\ntype FilePageCoverResponse = {\n // Type of cover. In this case, a file.\n type: \"file\"\n // The file URL for the cover.\n file: InternalFileResponse\n}\n\ntype FilePageIconResponse = {\n // Type of icon. In this case, a file.\n type: \"file\"\n // The file URL for the icon.\n file: InternalFileResponse\n}\n\ntype FileUploadIdRequest = { id: IdRequest }\n\nexport type FileUploadObjectResponse = {\n // Always `file_upload`\n object: \"file_upload\"\n id: IdResponse\n created_time: string\n created_by: {\n id: IdResponse\n // One of: `person`, `bot`, `agent`\n type: \"person\" | \"bot\" | \"agent\"\n }\n last_edited_time: string\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n expiry_time: string | null\n // One of: `pending`, `uploaded`, `expired`, `failed`\n status: \"pending\" | \"uploaded\" | \"expired\" | \"failed\"\n filename: string | null\n content_type: string | null\n content_length: number | null\n upload_url?: string\n complete_url?: string\n file_import_result?: {\n // The time the file was imported into Notion. ISO 8601 format.\n imported_time: string\n } & (\n | {\n // Indicates a successful import.\n type: \"success\"\n // Empty object for success type.\n success: EmptyObject\n }\n | {\n // Indicates an error occurred during import.\n type: \"error\"\n // Details about the error that occurred during file import.\n error: {\n // The type of error that occurred during file import.\n type:\n | \"validation_error\"\n | \"internal_system_error\"\n | \"download_error\"\n | \"upload_error\"\n // A short string code representing the error.\n code: string\n // A human-readable message describing the error.\n message: string\n // The parameter related to the error, if applicable. Null if not applicable.\n parameter: string | null\n // The HTTP status code associated with the error, if available. Null if not applicable.\n status_code: number | null\n }\n }\n )\n number_of_parts?: { total: number; sent: number }\n}\n\ntype FileUploadPageCoverRequest = {\n // Always `file_upload`\n type?: \"file_upload\"\n // The file upload for the cover.\n file_upload: {\n // ID of a FileUpload object that has the status `uploaded`.\n id: string\n }\n}\n\ntype FileUploadPageIconRequest = {\n // Always `file_upload`\n type?: \"file_upload\"\n file_upload: {\n // ID of a FileUpload object that has the status `uploaded`.\n id: string\n }\n}\n\ntype FileUploadWithOptionalNameRequest = {\n file_upload: FileUploadIdRequest\n type?: \"file_upload\"\n name?: StringRequest\n}\n\ntype FilesDatabasePropertyConfigResponse = {\n // Always `files`\n type: \"files\"\n files: EmptyObject\n}\n\ntype FilesPropertyConfigurationRequest = {\n // Always `files`\n type?: \"files\"\n files: EmptyObject\n}\n\nexport type FilesPropertyItemObjectResponse = {\n type: \"files\"\n files: Array<InternalOrExternalFileWithNameResponse>\n object: \"property_item\"\n id: string\n}\n\ntype FilesSimplePropertyValueResponse = {\n // Always `files`\n type: \"files\"\n files: Array<InternalOrExternalFileWithNameResponse>\n}\n\ntype FormViewConfigRequest = {\n // The view type. Must be \"form\".\n type: \"form\"\n // Whether the form is closed for submissions. Pass null to clear.\n is_form_closed?: boolean | null\n // Whether anonymous (non-logged-in) submissions are allowed. Pass null to clear.\n anonymous_submissions?: boolean | null\n // Permission level granted to the submitter on the created page after form submission.\n // Pass null to clear.\n submission_permissions?:\n | \"none\"\n | \"comment_only\"\n | \"reader\"\n | \"read_and_write\"\n | \"editor\"\n | null\n}\n\ntype FormViewConfigResponse = {\n // The view configuration type.\n type: \"form\"\n // Whether the form is closed for submissions.\n is_form_closed?: boolean\n // Whether anonymous (non-logged-in) submissions are allowed.\n anonymous_submissions?: boolean\n // Permission level granted to the submitter on the created page after form submission.\n submission_permissions?:\n | \"none\"\n | \"comment_only\"\n | \"reader\"\n | \"read_and_write\"\n | \"editor\"\n}\n\ntype FormulaCheckboxSubGroupByRequest = {\n // The formula result type for grouping.\n type: \"checkbox\"\n // Sort order for groups.\n sort: GroupSortRequest\n}\n\ntype FormulaCheckboxSubGroupByResponse = {\n // The formula result type for grouping.\n type: \"checkbox\"\n // Sort order for groups (only manual for checkbox).\n sort: GroupSortResponse\n}\n\ntype FormulaDatabasePropertyConfigResponse = {\n // Always `formula`\n type: \"formula\"\n formula: { expression: string }\n}\n\ntype FormulaDateSubGroupByRequest = {\n // The formula result type for grouping.\n type: \"date\"\n // Granularity for date grouping.\n group_by: \"relative\" | \"day\" | \"week\" | \"month\" | \"year\"\n // Sort order for groups.\n sort: GroupSortRequest\n // Start day of week for week grouping (0 = Sunday, 1 = Monday).\n start_day_of_week?: 0 | 1\n}\n\ntype FormulaDateSubGroupByResponse = {\n // The formula result type for grouping.\n type: \"date\"\n // Granularity for date grouping.\n group_by: \"relative\" | \"day\" | \"week\" | \"month\" | \"year\"\n // Sort order for groups.\n sort: GroupSortResponse\n // Start day of week for week grouping (0 = Sunday, 1 = Monday).\n start_day_of_week?: 0 | 1\n}\n\ntype FormulaGroupByConfigRequest = {\n // The property type for grouping.\n type: \"formula\"\n // Property ID of the formula to group by.\n property_id: string\n // Sub-group-by configuration based on the formula result type.\n group_by:\n | FormulaDateSubGroupByRequest\n | FormulaTextSubGroupByRequest\n | FormulaNumberSubGroupByRequest\n | FormulaCheckboxSubGroupByRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype FormulaGroupByConfigResponse = {\n // The property type for grouping.\n type: \"formula\"\n // Property ID of the formula to group by.\n property_id: string\n // Sub-group-by configuration based on the formula result type.\n group_by: FormulaSubGroupByResponse\n // Property name (convenience field).\n property_name?: string\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype FormulaNumberSubGroupByRequest = {\n // The formula result type for grouping.\n type: \"number\"\n // Sort order for groups.\n sort: GroupSortRequest\n // Start of the range for number grouping buckets.\n range_start?: number\n // End of the range for number grouping buckets.\n range_end?: number\n // Size of each bucket in number grouping.\n range_size?: number\n}\n\ntype FormulaNumberSubGroupByResponse = {\n // The formula result type for grouping.\n type: \"number\"\n // Sort order for groups (ascending or descending only).\n sort: GroupSortResponse\n // Start of the range for number grouping buckets.\n range_start?: number\n // End of the range for number grouping buckets.\n range_end?: number\n // Size of each bucket in number grouping.\n range_size?: number\n}\n\ntype FormulaPropertyConfigurationRequest = {\n // Always `formula`\n type?: \"formula\"\n formula: { expression?: string }\n}\n\ntype FormulaPropertyFilter =\n | { string: TextPropertyFilter }\n | { checkbox: CheckboxPropertyFilter }\n | { number: NumberPropertyFilter }\n | { date: DatePropertyFilter }\n\nexport type FormulaPropertyItemObjectResponse = {\n type: \"formula\"\n formula: FormulaPropertyResponse\n object: \"property_item\"\n id: string\n}\n\ntype FormulaPropertyResponse =\n | StringFormulaPropertyResponse\n | DateFormulaPropertyResponse\n | NumberFormulaPropertyResponse\n | BooleanFormulaPropertyResponse\n\ntype FormulaPropertyValueResponse =\n | BooleanFormulaPropertyValueResponse\n | DateFormulaPropertyValueResponse\n | NumberFormulaPropertyValueResponse\n | StringFormulaPropertyValueResponse\n\ntype FormulaSimplePropertyValueResponse = {\n // Always `formula`\n type: \"formula\"\n formula: FormulaPropertyValueResponse\n}\n\n/**\n * Sub-group-by configuration for formula properties based on result type.\n */\ntype FormulaSubGroupByResponse =\n | FormulaDateSubGroupByResponse\n | FormulaTextSubGroupByResponse\n | FormulaNumberSubGroupByResponse\n | FormulaCheckboxSubGroupByResponse\n\ntype FormulaTextSubGroupByRequest = {\n // The formula result type for grouping.\n type: \"text\"\n // How to group text values. \"exact\" = exact match, \"alphabet_prefix\" = first letter.\n group_by: \"exact\" | \"alphabet_prefix\"\n // Sort order for groups.\n sort: GroupSortRequest\n}\n\ntype FormulaTextSubGroupByResponse = {\n // The formula result type for grouping.\n type: \"text\"\n // How to group text values. \"exact\" = exact match, \"alphabet_prefix\" = first letter.\n group_by: \"exact\" | \"alphabet_prefix\"\n // Sort order for groups.\n sort: GroupSortResponse\n}\n\ntype GalleryViewConfigRequest = {\n // The view type. Must be \"gallery\".\n type: \"gallery\"\n // Property visibility and display configuration on gallery cards. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n // Cover image configuration for cards. Pass null to clear.\n cover?: CoverConfigRequest | null\n // Size of the cover image on cards. Pass null to clear.\n cover_size?: \"small\" | \"medium\" | \"large\" | null\n // Aspect ratio mode for cover images. \"contain\" fits the image, \"cover\" fills the area.\n // Pass null to clear.\n cover_aspect?: \"contain\" | \"cover\" | null\n // Card layout mode. \"list\" shows full cards, \"compact\" shows condensed cards. Pass null\n // to clear.\n card_layout?: \"list\" | \"compact\" | null\n}\n\ntype GalleryViewConfigResponse = {\n // The view configuration type.\n type: \"gallery\"\n // Properties to display on gallery cards.\n properties?: Array<ViewPropertyConfigResponse>\n // Card cover/preview image configuration.\n cover?: CoverConfigResponse\n // Cover image size.\n cover_size?: \"small\" | \"medium\" | \"large\"\n // Cover image aspect ratio.\n cover_aspect?: \"contain\" | \"cover\"\n // Card layout mode (list shows all properties, compact shows inline).\n card_layout?: \"list\" | \"compact\"\n}\n\n/**\n * Group-by configuration based on property type.\n */\ntype GroupByConfigRequest =\n | SelectGroupByConfigRequest\n | StatusGroupByConfigRequest\n | PersonGroupByConfigRequest\n | RelationGroupByConfigRequest\n | DateGroupByConfigRequest\n | TextGroupByConfigRequest\n | NumberGroupByConfigRequest\n | CheckboxGroupByConfigRequest\n | FormulaGroupByConfigRequest\n\n/**\n * Group-by configuration based on property type.\n */\ntype GroupByConfigResponse =\n | SelectGroupByConfigResponse\n | StatusGroupByConfigResponse\n | PersonGroupByConfigResponse\n | RelationGroupByConfigResponse\n | DateGroupByConfigResponse\n | TextGroupByConfigResponse\n | NumberGroupByConfigResponse\n | CheckboxGroupByConfigResponse\n | FormulaGroupByConfigResponse\n\ntype GroupFilterOperatorArray = Array<\n | PropertyOrTimestampFilter\n | { or: PropertyOrTimestampFilterArray }\n | { and: PropertyOrTimestampFilterArray }\n>\n\ntype GroupObjectRequest = {\n id: IdRequest\n name?: string | null\n object?: \"group\"\n}\n\nexport type GroupObjectResponse = {\n // The ID of the group.\n id: IdResponse\n // The group object type name.\n object: \"group\"\n // The name of the group.\n name: string | null\n}\n\ntype GroupSortRequest = {\n // Sort direction for groups.\n type: \"manual\" | \"ascending\" | \"descending\"\n}\n\ntype GroupSortResponse = {\n // Sort direction for groups.\n type: \"manual\" | \"ascending\" | \"descending\"\n}\n\ntype HeaderContentWithRichTextAndColorRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n}\n\ntype HeaderContentWithRichTextAndColorResponse = {\n rich_text: Array<RichTextItemResponse>\n color: ApiColor\n is_toggleable: boolean\n}\n\ntype HeaderContentWithSingleLevelOfChildrenRequest = {\n rich_text: Array<RichTextItemRequest>\n color?: ApiColor\n is_toggleable?: boolean\n children?: Array<BlockObjectRequestWithoutChildren>\n}\n\nexport type Heading1BlockObjectResponse = {\n type: \"heading_1\"\n heading_1: HeaderContentWithRichTextAndColorResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type Heading2BlockObjectResponse = {\n type: \"heading_2\"\n heading_2: HeaderContentWithRichTextAndColorResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type Heading3BlockObjectResponse = {\n type: \"heading_3\"\n heading_3: HeaderContentWithRichTextAndColorResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype IdObjectResponse = { id: string }\n\ntype IdRequest = string\n\ntype IdResponse = string\n\nexport type ImageBlockObjectResponse = {\n type: \"image\"\n image: MediaContentWithFileAndCaptionResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype InitialDataSourceRequest = {\n // Property schema for the initial data source, if you'd like to create one.\n properties?: Record<string, PropertyConfigurationRequest>\n}\n\ntype InternalFileRequest = { url: string; expiry_time?: string }\n\ntype InternalFileResponse = {\n // The URL of the file.\n url: string\n // The time when the URL will expire.\n expiry_time: string\n}\n\ntype InternalOrExternalFileWithNameRequest =\n | { file: InternalFileRequest; name: StringRequest; type?: \"file\" }\n | { external: ExternalFileRequest; name: StringRequest; type?: \"external\" }\n\ntype InternalOrExternalFileWithNameResponse =\n InternalOrExternalFileWithNameResponseCommon &\n (\n | FileInternalOrExternalFileWithNameResponse\n | ExternalInternalOrExternalFileWithNameResponse\n )\n\ntype InternalOrExternalFileWithNameResponseCommon = {\n // The name of the file.\n name: string\n}\n\ntype LanguageRequest =\n | \"abap\"\n | \"abc\"\n | \"agda\"\n | \"arduino\"\n | \"ascii art\"\n | \"assembly\"\n | \"bash\"\n | \"basic\"\n | \"bnf\"\n | \"c\"\n | \"c#\"\n | \"c++\"\n | \"clojure\"\n | \"coffeescript\"\n | \"coq\"\n | \"css\"\n | \"dart\"\n | \"dhall\"\n | \"diff\"\n | \"docker\"\n | \"ebnf\"\n | \"elixir\"\n | \"elm\"\n | \"erlang\"\n | \"f#\"\n | \"flow\"\n | \"fortran\"\n | \"gherkin\"\n | \"glsl\"\n | \"go\"\n | \"graphql\"\n | \"groovy\"\n | \"haskell\"\n | \"hcl\"\n | \"html\"\n | \"idris\"\n | \"java\"\n | \"javascript\"\n | \"json\"\n | \"julia\"\n | \"kotlin\"\n | \"latex\"\n | \"less\"\n | \"lisp\"\n | \"livescript\"\n | \"llvm ir\"\n | \"lua\"\n | \"makefile\"\n | \"markdown\"\n | \"markup\"\n | \"matlab\"\n | \"mathematica\"\n | \"mermaid\"\n | \"nix\"\n | \"notion formula\"\n | \"objective-c\"\n | \"ocaml\"\n | \"pascal\"\n | \"perl\"\n | \"php\"\n | \"plain text\"\n | \"powershell\"\n | \"prolog\"\n | \"protobuf\"\n | \"purescript\"\n | \"python\"\n | \"r\"\n | \"racket\"\n | \"reason\"\n | \"ruby\"\n | \"rust\"\n | \"sass\"\n | \"scala\"\n | \"scheme\"\n | \"scss\"\n | \"shell\"\n | \"smalltalk\"\n | \"solidity\"\n | \"sql\"\n | \"swift\"\n | \"toml\"\n | \"typescript\"\n | \"vb.net\"\n | \"verilog\"\n | \"vhdl\"\n | \"visual basic\"\n | \"webassembly\"\n | \"xml\"\n | \"yaml\"\n | \"java/c/c++/c#\"\n\ntype LastEditedByDatabasePropertyConfigResponse = {\n // Always `last_edited_by`\n type: \"last_edited_by\"\n last_edited_by: EmptyObject\n}\n\ntype LastEditedByPropertyConfigurationRequest = {\n // Always `last_edited_by`\n type?: \"last_edited_by\"\n last_edited_by: EmptyObject\n}\n\nexport type LastEditedByPropertyItemObjectResponse = {\n type: \"last_edited_by\"\n last_edited_by: PartialUserObjectResponse | UserObjectResponse\n object: \"property_item\"\n id: string\n}\n\ntype LastEditedBySimplePropertyValueResponse = {\n // Always `last_edited_by`\n type: \"last_edited_by\"\n last_edited_by: UserValueResponse\n}\n\ntype LastEditedTimeDatabasePropertyConfigResponse = {\n // Always `last_edited_time`\n type: \"last_edited_time\"\n last_edited_time: EmptyObject\n}\n\ntype LastEditedTimePropertyConfigurationRequest = {\n // Always `last_edited_time`\n type?: \"last_edited_time\"\n last_edited_time: EmptyObject\n}\n\nexport type LastEditedTimePropertyItemObjectResponse = {\n type: \"last_edited_time\"\n last_edited_time: string\n object: \"property_item\"\n id: string\n}\n\ntype LastEditedTimeSimplePropertyValueResponse = {\n // Always `last_edited_time`\n type: \"last_edited_time\"\n last_edited_time: string\n}\n\ntype LastVisitedTimePropertyConfigurationRequest = {\n // Always `last_visited_time`\n type?: \"last_visited_time\"\n last_visited_time: EmptyObject\n}\n\ntype LinkMentionResponse = {\n // The href of the link mention.\n href: string\n // The title of the link.\n title?: string\n // The description of the link.\n description?: string\n // The author of the link.\n link_author?: string\n // The provider of the link.\n link_provider?: string\n // The thumbnail URL of the link.\n thumbnail_url?: string\n // The icon URL of the link.\n icon_url?: string\n // The iframe URL of the link.\n iframe_url?: string\n // The height of the link preview iframe.\n height?: number\n // The padding of the link preview iframe.\n padding?: number\n // The top padding of the link preview iframe.\n padding_top?: number\n}\n\nexport type LinkPreviewBlockObjectResponse = {\n type: \"link_preview\"\n link_preview: MediaContentWithUrlResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype LinkPreviewMentionResponse = {\n // The URL of the link preview mention.\n url: string\n}\n\nexport type LinkToPageBlockObjectResponse = {\n type: \"link_to_page\"\n link_to_page:\n | { type: \"page_id\"; page_id: IdRequest }\n | { type: \"database_id\"; database_id: IdRequest }\n | { type: \"comment_id\"; comment_id: IdRequest }\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype ListViewConfigRequest = {\n // The view type. Must be \"list\".\n type: \"list\"\n // Property visibility and display configuration. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n}\n\ntype ListViewConfigResponse = {\n // The view configuration type.\n type: \"list\"\n // Properties to display in list items.\n properties?: Array<ViewPropertyConfigResponse>\n}\n\ntype LocationPropertyConfigurationRequest = {\n // Always `location`\n type?: \"location\"\n location: EmptyObject\n}\n\ntype MapViewConfigRequest = {\n // The view type. Must be \"map\".\n type: \"map\"\n // Map display height. Pass null to clear.\n height?: \"small\" | \"medium\" | \"large\" | \"extra_large\" | null\n // Property ID of the location property used to position items on the map. Pass null to\n // clear.\n map_by?: string | null\n // Property visibility and display configuration on map pin cards. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n}\n\ntype MapViewConfigResponse = {\n // The view configuration type.\n type: \"map\"\n // Map display height.\n height?: \"small\" | \"medium\" | \"large\" | \"extra_large\"\n // Property ID of the location property used to position items on the map.\n map_by?: string\n // Map-by property name (convenience field).\n map_by_property_name?: string\n // Properties to display on map pin cards.\n properties?: Array<ViewPropertyConfigResponse>\n}\n\ntype MediaContentWithFileAndCaptionRequest =\n | {\n external: ExternalFileRequest\n type?: \"external\"\n caption?: Array<RichTextItemRequest>\n }\n | {\n file_upload: FileUploadIdRequest\n type?: \"file_upload\"\n caption?: Array<RichTextItemRequest>\n }\n\ntype MediaContentWithFileAndCaptionResponse =\n | ExternalMediaContentWithFileAndCaptionResponse\n | FileMediaContentWithFileAndCaptionResponse\n\ntype MediaContentWithFileNameAndCaptionRequest =\n | {\n external: ExternalFileRequest\n type?: \"external\"\n caption?: Array<RichTextItemRequest>\n name?: StringRequest\n }\n | {\n file_upload: FileUploadIdRequest\n type?: \"file_upload\"\n caption?: Array<RichTextItemRequest>\n name?: StringRequest\n }\n\ntype MediaContentWithFileNameAndCaptionResponse =\n | ExternalMediaContentWithFileNameAndCaptionResponse\n | FileMediaContentWithFileNameAndCaptionResponse\n\ntype MediaContentWithUrlAndCaptionRequest = {\n url: string\n caption?: Array<RichTextItemRequest>\n}\n\ntype MediaContentWithUrlAndCaptionResponse = {\n url: string\n caption: Array<RichTextItemResponse>\n}\n\ntype MediaContentWithUrlResponse = { url: TextRequest }\n\n/**\n * @deprecated Use MeetingNotesBlockObjectResponse instead. Renamed in API version 2026-03-11.\n */\nexport type TranscriptionBlockObjectResponse = {\n type: \"transcription\"\n transcription: TranscriptionBlockResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type MeetingNotesBlockObjectResponse = {\n type: \"meeting_notes\"\n meeting_notes: TranscriptionBlockResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype MentionRichTextItemRequest = {\n // Always `mention`\n type?: \"mention\"\n // Mention objects represent an inline mention of a database, date, link preview mention,\n // page, template mention, or user. A mention is created in the Notion UI when a user\n // types `@` followed by the name of the reference.\n mention:\n | {\n // Always `user`\n type?: \"user\"\n // Details of the user mention.\n user: PartialUserObjectRequest\n }\n | {\n // Always `date`\n type?: \"date\"\n // Details of the date mention.\n date: DateRequest\n }\n | {\n // Always `page`\n type?: \"page\"\n // Details of the page mention.\n page: {\n // The ID of the page in the mention.\n id: IdRequest\n }\n }\n | {\n // Always `database`\n type?: \"database\"\n // Details of the database mention.\n database: {\n // The ID of the database in the mention.\n id: IdRequest\n }\n }\n | {\n // Always `template_mention`\n type?: \"template_mention\"\n // Details of the template mention.\n template_mention: TemplateMentionRequest\n }\n | {\n // Always `custom_emoji`\n type?: \"custom_emoji\"\n // Details of the custom emoji mention.\n custom_emoji: {\n // The ID of the custom emoji.\n id: IdRequest\n // The name of the custom emoji.\n name?: string\n // The URL of the custom emoji.\n url?: string\n }\n }\n}\n\nexport type MentionRichTextItemResponse = {\n // Always `mention`\n type: \"mention\"\n // Mention objects represent an inline mention of a database, date, link preview mention,\n // page, template mention, or user. A mention is created in the Notion UI when a user\n // types `@` followed by the name of the reference.\n mention:\n | {\n // Always `user`\n type: \"user\"\n // Details of the user mention.\n user: UserValueResponse\n }\n | {\n // Always `date`\n type: \"date\"\n // Details of the date mention.\n date: DateResponse\n }\n | {\n // Always `link_preview`\n type: \"link_preview\"\n // Details of the link preview mention.\n link_preview: LinkPreviewMentionResponse\n }\n | {\n // Always `link_mention`\n type: \"link_mention\"\n // Details of the link mention.\n link_mention: LinkMentionResponse\n }\n | {\n // Always `page`\n type: \"page\"\n // Details of the page mention.\n page: {\n // The ID of the page in the mention.\n id: IdResponse\n }\n }\n | {\n // Always `database`\n type: \"database\"\n // Details of the database mention.\n database: {\n // The ID of the database in the mention.\n id: IdResponse\n }\n }\n | {\n // Always `template_mention`\n type: \"template_mention\"\n // Details of the template mention.\n template_mention: TemplateMentionResponse\n }\n | {\n // Always `custom_emoji`\n type: \"custom_emoji\"\n // Details of the custom emoji mention.\n custom_emoji: CustomEmojiResponse\n }\n}\n\ntype MultiSelectDatabasePropertyConfigResponse = {\n // Always `multi_select`\n type: \"multi_select\"\n multi_select: { options: Array<SelectPropertyResponse> }\n}\n\ntype MultiSelectPropertyConfigurationRequest = {\n // Always `multi_select`\n type?: \"multi_select\"\n multi_select: {\n options?: Array<{\n name: string\n color?: SelectColor\n description?: string | null\n }>\n }\n}\n\ntype MultiSelectPropertyFilter =\n | { contains: string }\n | { does_not_contain: string }\n | ExistencePropertyFilter\n\nexport type MultiSelectPropertyItemObjectResponse = {\n type: \"multi_select\"\n multi_select: Array<PartialSelectResponse>\n object: \"property_item\"\n id: string\n}\n\ntype MultiSelectSimplePropertyValueResponse = {\n // Always `multi_select`\n type: \"multi_select\"\n multi_select: Array<PartialSelectPropertyValueResponse>\n}\n\ntype NumberDatabasePropertyConfigResponse = {\n // Always `number`\n type: \"number\"\n number: {\n // The number format for the property.\n format: NumberFormat\n }\n}\n\ntype NumberFormat = string\n\ntype NumberFormulaPropertyResponse = { type: \"number\"; number: number | null }\n\ntype NumberFormulaPropertyValueResponse = {\n // Always `number`\n type: \"number\"\n number: number | null\n}\n\ntype NumberGroupByConfigRequest = {\n // The property type for grouping.\n type: \"number\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n // Start of the range for number grouping buckets.\n range_start?: number\n // End of the range for number grouping buckets.\n range_end?: number\n // Size of each bucket in number grouping.\n range_size?: number\n}\n\ntype NumberGroupByConfigResponse = {\n // The property type for grouping.\n type: \"number\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups (ascending or descending only).\n sort: GroupSortResponse\n // Property name (convenience field).\n property_name?: string\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n // Start of the range for number grouping buckets.\n range_start?: number\n // End of the range for number grouping buckets.\n range_end?: number\n // Size of each bucket in number grouping.\n range_size?: number\n}\n\ntype NumberPartialRollupValueResponse = {\n // Always `number`\n type: \"number\"\n number: number | null\n}\n\ntype NumberPropertyConfigurationRequest = {\n // Always `number`\n type?: \"number\"\n number: { format?: NumberFormat }\n}\n\ntype NumberPropertyFilter =\n | { equals: number }\n | { does_not_equal: number }\n | { greater_than: number }\n | { less_than: number }\n | { greater_than_or_equal_to: number }\n | { less_than_or_equal_to: number }\n | ExistencePropertyFilter\n\nexport type NumberPropertyItemObjectResponse = {\n type: \"number\"\n number: number | null\n object: \"property_item\"\n id: string\n}\n\ntype NumberSimplePropertyValueResponse = {\n // Always `number`\n type: \"number\"\n number: number | null\n}\n\ntype NumberedListFormat = \"numbers\" | \"letters\" | \"roman\"\n\nexport type NumberedListItemBlockObjectResponse = {\n type: \"numbered_list_item\"\n numbered_list_item: ContentWithRichTextAndColorAndListResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype PageCoverRequest = FileUploadPageCoverRequest | ExternalPageCoverRequest\n\ntype PageCoverResponse = FilePageCoverResponse | ExternalPageCoverResponse\n\ntype PageIconRequest =\n | FileUploadPageIconRequest\n | EmojiPageIconRequest\n | ExternalPageIconRequest\n | CustomEmojiPageIconRequest\n\ntype PageIconResponse =\n | EmojiPageIconResponse\n | FilePageIconResponse\n | ExternalPageIconResponse\n | CustomEmojiPageIconResponse\n\ntype PageIdCommentParentResponse = {\n // Always `page_id`\n type: \"page_id\"\n page_id: IdResponse\n}\n\ntype PageIdParentForBlockBasedObjectResponse = {\n // The parent type.\n type: \"page_id\"\n // The ID of the parent page.\n page_id: IdResponse\n}\n\ntype PageMarkdownResponse = {\n // The type of object, always 'page_markdown'.\n object: \"page_markdown\"\n // The ID of the page or block.\n id: IdResponse\n // The page content rendered as enhanced Markdown.\n markdown: string\n // Whether the content was truncated due to exceeding the record count limit.\n truncated: boolean\n // Block IDs that could not be loaded (appeared as <unknown> tags in the markdown). Pass\n // these IDs back to this endpoint to fetch their content separately.\n unknown_block_ids: Array<IdResponse>\n}\n\nexport type PageObjectResponse = {\n // The page object type name.\n object: \"page\"\n // The ID of the page.\n id: IdResponse\n // Date and time when this page was created.\n created_time: string\n // Date and time when this page was last edited.\n last_edited_time: string\n // Whether the page is in trash.\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n // Whether the page has been archived.\n is_archived: boolean\n // Whether the page is locked from editing in the Notion app UI.\n is_locked: boolean\n // The URL of the Notion page.\n url: string\n // The public URL of the Notion page, if it has been published to the web.\n public_url: string | null\n // Information about the page's parent.\n parent: ParentForBlockBasedObjectResponse\n // Property values of this page.\n properties: Record<string, PagePropertyValueWithIdResponse>\n // Page icon.\n icon: PageIconResponse | null\n // Page cover image.\n cover: PageCoverResponse | null\n // User who created the page.\n created_by: PartialUserObjectResponse\n // User who last edited the page.\n last_edited_by: PartialUserObjectResponse\n}\n\ntype PagePositionSchema =\n | { type: \"after_block\"; after_block: { id: IdRequest } }\n | { type: \"page_start\" }\n | { type: \"page_end\" }\n\ntype PagePropertyValueWithIdResponse = IdObjectResponse &\n (SimpleOrArrayPropertyValueResponse | PartialRollupPropertyResponse)\n\ntype PageReferenceResponse = {\n // The object type.\n object: string\n // The object ID.\n id: IdResponse\n}\n\nexport type ParagraphBlockObjectResponse = {\n type: \"paragraph\"\n paragraph: ContentWithRichTextAndColorResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype ParentForBlockBasedObjectResponse =\n | DatabaseParentResponse\n | DataSourceParentResponse\n | PageIdParentForBlockBasedObjectResponse\n | BlockIdParentForBlockBasedObjectResponse\n | WorkspaceParentForBlockBasedObjectResponse\n\ntype ParentOfDataSourceRequest = {\n // Always `database_id`\n type?: \"database_id\"\n // The ID of the parent database (with or without dashes), for example,\n // 195de9221179449fab8075a27c979105\n database_id: IdRequest\n}\n\n/**\n * The parent of the data source. This is typically a database (`database_id`), but for\n * externally synced data sources, can be another data source (`data_source_id`).\n */\ntype ParentOfDataSourceResponse =\n | DatabaseParentResponse\n | DataSourceParentResponse\n\ntype ParentOfDatabaseResponse =\n | PageIdParentForBlockBasedObjectResponse\n | WorkspaceParentForBlockBasedObjectResponse\n | DatabaseParentResponse\n | BlockIdParentForBlockBasedObjectResponse\n\nexport type PartialBlockObjectResponse = { object: \"block\"; id: string }\n\nexport type PartialCommentObjectResponse = {\n // The comment object type name.\n object: \"comment\"\n // The ID of the comment.\n id: IdResponse\n}\n\nexport type PartialDataSourceObjectResponse = {\n // The data source object type name.\n object: \"data_source\"\n // The ID of the data source.\n id: IdResponse\n // The properties schema of the data source.\n properties: Record<string, DatabasePropertyConfigResponse>\n}\n\nexport type PartialDataSourceViewObjectResponse = {\n // The object type name.\n object: \"view\"\n // The ID of the view.\n id: IdResponse\n // The parent database of the view.\n parent: DatabaseParentResponse\n // The view type.\n type:\n | \"table\"\n | \"board\"\n | \"list\"\n | \"calendar\"\n | \"timeline\"\n | \"gallery\"\n | \"form\"\n | \"chart\"\n | \"map\"\n | \"dashboard\"\n}\n\nexport type PartialDatabaseObjectResponse = {\n // The database object type name.\n object: \"database\"\n // The ID of the database.\n id: IdResponse\n}\n\nexport type PartialPageObjectResponse = {\n // The page object type name.\n object: \"page\"\n // The ID of the page.\n id: IdResponse\n}\n\ntype PartialRollupPropertyResponse = {\n // Always `rollup`\n type: \"rollup\"\n rollup: PartialRollupValueResponse\n}\n\ntype PartialRollupValueResponse = PartialRollupValueResponseCommon &\n (\n | NumberPartialRollupValueResponse\n | DatePartialRollupValueResponse\n | ArrayPartialRollupValueResponse\n )\n\ntype PartialRollupValueResponseCommon = {\n // The function used for the rollup, e.g. count, count_values, percent_not_empty, max.\n function: RollupFunction\n}\n\ntype PartialSelectPropertyValueResponse = {\n id: string\n name: string\n // One of: `default`, `gray`, `brown`, `orange`, `yellow`, `green`, `blue`, `purple`,\n // `pink`, `red`\n color:\n | \"default\"\n | \"gray\"\n | \"brown\"\n | \"orange\"\n | \"yellow\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n}\n\ntype PartialSelectResponse = { id: string; name: string; color: SelectColor }\n\ntype PartialUserObjectRequest = {\n // The ID of the user.\n id: IdRequest\n // The user object type name.\n object?: \"user\"\n}\n\nexport type PartialUserObjectResponse = {\n id: IdResponse\n // Always `user`\n object: \"user\"\n}\n\nexport type PdfBlockObjectResponse = {\n type: \"pdf\"\n pdf: MediaContentWithFileAndCaptionResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype PeopleArrayBasedPropertyValueResponse = {\n // Always `people`\n type: \"people\"\n people: Array<UserValueResponse | GroupObjectResponse>\n}\n\ntype PeopleDatabasePropertyConfigResponse = {\n // Always `people`\n type: \"people\"\n people: EmptyObject\n}\n\ntype PeoplePropertyConfigurationRequest = {\n // Always `people`\n type?: \"people\"\n people: EmptyObject\n}\n\ntype PeoplePropertyFilter =\n | { contains: IdRequest }\n | { does_not_contain: IdRequest }\n | ExistencePropertyFilter\n\nexport type PeoplePropertyItemObjectResponse = {\n type: \"people\"\n people: PartialUserObjectResponse | UserObjectResponse\n object: \"property_item\"\n id: string\n}\n\ntype PersonGroupByConfigRequest = {\n // The property type for grouping.\n type: \"person\" | \"created_by\" | \"last_edited_by\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype PersonGroupByConfigResponse = {\n // The property type for grouping.\n type: \"person\" | \"created_by\" | \"last_edited_by\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups (only manual supported).\n sort: GroupSortResponse\n // Property name (convenience field).\n property_name?: string\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\nexport type PersonUserObjectResponse = {\n // Indicates this user is a person.\n type: \"person\"\n // Details about the person, when the `type` of the user is `person`.\n person: {\n // The email of the person.\n email?: string\n }\n}\n\ntype PhoneNumberDatabasePropertyConfigResponse = {\n // Always `phone_number`\n type: \"phone_number\"\n phone_number: EmptyObject\n}\n\ntype PhoneNumberPropertyConfigurationRequest = {\n // Always `phone_number`\n type?: \"phone_number\"\n phone_number: EmptyObject\n}\n\nexport type PhoneNumberPropertyItemObjectResponse = {\n type: \"phone_number\"\n phone_number: string | null\n object: \"property_item\"\n id: string\n}\n\ntype PhoneNumberSimplePropertyValueResponse = {\n // Always `phone_number`\n type: \"phone_number\"\n phone_number: string | null\n}\n\ntype PlacePropertyConfigurationRequest = {\n // Always `place`\n type?: \"place\"\n place: EmptyObject\n}\n\nexport type PlacePropertyItemObjectResponse = {\n type: \"place\"\n place: {\n lat: number\n lon: number\n name?: string | null\n address?: string | null\n aws_place_id?: string | null\n google_place_id?: string | null\n } | null\n object: \"property_item\"\n id: string\n}\n\ntype PlacePropertyValueResponse = {\n lat: number\n lon: number\n name?: string | null\n address?: string | null\n aws_place_id?: string | null\n google_place_id?: string | null\n}\n\ntype PlaceSimplePropertyValueResponse = {\n // Always `place`\n type: \"place\"\n place: PlacePropertyValueResponse | null\n}\n\ntype PropertyConfigurationRequest = PropertyConfigurationRequestCommon &\n (\n | NumberPropertyConfigurationRequest\n | FormulaPropertyConfigurationRequest\n | SelectPropertyConfigurationRequest\n | MultiSelectPropertyConfigurationRequest\n | StatusPropertyConfigurationRequest\n | RelationPropertyConfigurationRequest\n | RollupPropertyConfigurationRequest\n | UniqueIdPropertyConfigurationRequest\n | TitlePropertyConfigurationRequest\n | RichTextPropertyConfigurationRequest\n | UrlPropertyConfigurationRequest\n | PeoplePropertyConfigurationRequest\n | FilesPropertyConfigurationRequest\n | EmailPropertyConfigurationRequest\n | PhoneNumberPropertyConfigurationRequest\n | DatePropertyConfigurationRequest\n | CheckboxPropertyConfigurationRequest\n | CreatedByPropertyConfigurationRequest\n | CreatedTimePropertyConfigurationRequest\n | LastEditedByPropertyConfigurationRequest\n | LastEditedTimePropertyConfigurationRequest\n | ButtonPropertyConfigurationRequest\n | LocationPropertyConfigurationRequest\n | VerificationPropertyConfigurationRequest\n | LastVisitedTimePropertyConfigurationRequest\n | PlacePropertyConfigurationRequest\n )\n\ntype PropertyConfigurationRequestCommon = {\n // The description of the property.\n description?: PropertyDescriptionRequest | null\n}\n\ntype PropertyDescriptionRequest = string\n\ntype PropertyFilter =\n | { title: TextPropertyFilter; property: string; type?: \"title\" }\n | { rich_text: TextPropertyFilter; property: string; type?: \"rich_text\" }\n | { number: NumberPropertyFilter; property: string; type?: \"number\" }\n | { checkbox: CheckboxPropertyFilter; property: string; type?: \"checkbox\" }\n | { select: SelectPropertyFilter; property: string; type?: \"select\" }\n | {\n multi_select: MultiSelectPropertyFilter\n property: string\n type?: \"multi_select\"\n }\n | { status: StatusPropertyFilter; property: string; type?: \"status\" }\n | { date: DatePropertyFilter; property: string; type?: \"date\" }\n | { people: PeoplePropertyFilter; property: string; type?: \"people\" }\n | { files: ExistencePropertyFilter; property: string; type?: \"files\" }\n | { url: TextPropertyFilter; property: string; type?: \"url\" }\n | { email: TextPropertyFilter; property: string; type?: \"email\" }\n | {\n phone_number: TextPropertyFilter\n property: string\n type?: \"phone_number\"\n }\n | { relation: RelationPropertyFilter; property: string; type?: \"relation\" }\n | { created_by: PeoplePropertyFilter; property: string; type?: \"created_by\" }\n | {\n created_time: DatePropertyFilter\n property: string\n type?: \"created_time\"\n }\n | {\n last_edited_by: PeoplePropertyFilter\n property: string\n type?: \"last_edited_by\"\n }\n | {\n last_edited_time: DatePropertyFilter\n property: string\n type?: \"last_edited_time\"\n }\n | { formula: FormulaPropertyFilter; property: string; type?: \"formula\" }\n | { unique_id: NumberPropertyFilter; property: string; type?: \"unique_id\" }\n | { rollup: RollupPropertyFilter; property: string; type?: \"rollup\" }\n | {\n verification: VerificationPropertyStatusFilter\n property: string\n type?: \"verification\"\n }\n\nexport type PropertyItemListResponse = PropertyItemPropertyItemListResponse\n\nexport type PropertyItemObjectResponse =\n | NumberPropertyItemObjectResponse\n | UrlPropertyItemObjectResponse\n | SelectPropertyItemObjectResponse\n | MultiSelectPropertyItemObjectResponse\n | StatusPropertyItemObjectResponse\n | DatePropertyItemObjectResponse\n | EmailPropertyItemObjectResponse\n | PhoneNumberPropertyItemObjectResponse\n | CheckboxPropertyItemObjectResponse\n | FilesPropertyItemObjectResponse\n | CreatedByPropertyItemObjectResponse\n | CreatedTimePropertyItemObjectResponse\n | LastEditedByPropertyItemObjectResponse\n | LastEditedTimePropertyItemObjectResponse\n | FormulaPropertyItemObjectResponse\n | ButtonPropertyItemObjectResponse\n | UniqueIdPropertyItemObjectResponse\n | VerificationPropertyItemObjectResponse\n | PlacePropertyItemObjectResponse\n | TitlePropertyItemObjectResponse\n | RichTextPropertyItemObjectResponse\n | PeoplePropertyItemObjectResponse\n | RelationPropertyItemObjectResponse\n | RollupPropertyItemObjectResponse\n\ntype PropertyItemPropertyItemListResponse = {\n type: \"property_item\"\n property_item:\n | { type: \"title\"; title: EmptyObject; next_url: string | null; id: string }\n | {\n type: \"rich_text\"\n rich_text: EmptyObject\n next_url: string | null\n id: string\n }\n | {\n type: \"people\"\n people: EmptyObject\n next_url: string | null\n id: string\n }\n | {\n type: \"relation\"\n relation: EmptyObject\n next_url: string | null\n id: string\n }\n | {\n type: \"rollup\"\n rollup:\n | { type: \"number\"; number: number | null; function: RollupFunction }\n | {\n type: \"date\"\n date: DateResponse | null\n function: RollupFunction\n }\n | {\n type: \"array\"\n array: Array<EmptyObject>\n function: RollupFunction\n }\n | {\n type: \"unsupported\"\n unsupported: EmptyObject\n function: RollupFunction\n }\n | {\n type: \"incomplete\"\n incomplete: EmptyObject\n function: RollupFunction\n }\n next_url: string | null\n id: string\n }\n object: \"list\"\n next_cursor: string | null\n has_more: boolean\n results: Array<PropertyItemObjectResponse>\n}\n\ntype PropertyOrTimestampFilter = PropertyFilter | TimestampFilter\n\ntype PropertyOrTimestampFilterArray = Array<PropertyOrTimestampFilter>\n\ntype PropertySortResponse = {\n // The name or ID of the property to sort by.\n property: string\n // Sort direction.\n direction: \"ascending\" | \"descending\"\n}\n\n/**\n * A property filter condition. Same shape as a property filter but without the\n * \"property\" field (the hashmap key identifies the property). For example: { \"select\": {\n * \"equals\": \"High\" } }.\n */\ntype QuickFilterConditionRequest = Record<string, never>\n\n/**\n * A property filter condition. Same shape as a property filter but without the\n * \"property\" field. For example: { \"select\": { \"equals\": \"High\" } }.\n */\ntype QuickFilterConditionResponse = Record<string, never>\n\nexport type QuoteBlockObjectResponse = {\n type: \"quote\"\n quote: ContentWithRichTextAndColorResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype RelationArrayBasedPropertyValueResponse = {\n // Always `relation`\n type: \"relation\"\n relation: Array<RelationItemPropertyValueResponse>\n}\n\ntype RelationDatabasePropertyConfigResponse = {\n // Always `relation`\n type: \"relation\"\n relation: DatabasePropertyRelationConfigResponse\n}\n\ntype RelationGroupByConfigRequest = {\n // The property type for grouping.\n type: \"relation\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype RelationGroupByConfigResponse = {\n // The property type for grouping.\n type: \"relation\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortResponse\n // Property name (convenience field).\n property_name?: string\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype RelationItemPropertyValueResponse = { id: IdRequest }\n\ntype RelationPropertyConfigurationRequest = {\n // Always `relation`\n type?: \"relation\"\n relation: { data_source_id: IdRequest } & (\n | {\n // Always `single_property`\n type?: \"single_property\"\n single_property: EmptyObject\n }\n | {\n // Always `dual_property`\n type?: \"dual_property\"\n dual_property: {\n synced_property_id?: string\n synced_property_name?: string\n }\n }\n )\n}\n\ntype RelationPropertyFilter =\n | { contains: IdRequest }\n | { does_not_contain: IdRequest }\n | ExistencePropertyFilter\n\nexport type RelationPropertyItemObjectResponse = {\n type: \"relation\"\n relation: { id: string }\n object: \"property_item\"\n id: string\n}\n\ntype RichTextArrayBasedPropertyValueResponse = {\n // Always `rich_text`\n type: \"rich_text\"\n rich_text: Array<RichTextItemResponse>\n}\n\ntype RichTextDatabasePropertyConfigResponse = {\n // Always `rich_text`\n type: \"rich_text\"\n rich_text: EmptyObject\n}\n\ntype RichTextItemRequest = RichTextItemRequestCommon &\n (\n | TextRichTextItemRequest\n | MentionRichTextItemRequest\n | EquationRichTextItemRequest\n )\n\ntype RichTextItemRequestCommon = {\n // All rich text objects contain an annotations object that sets the styling for the rich\n // text.\n annotations?: AnnotationRequest\n}\n\nexport type RichTextItemResponse = RichTextItemResponseCommon &\n (\n | TextRichTextItemResponse\n | MentionRichTextItemResponse\n | EquationRichTextItemResponse\n )\n\nexport type RichTextItemResponseCommon = {\n // The plain text content of the rich text object, without any styling.\n plain_text: string\n // A URL that the rich text object links to or mentions.\n href: string | null\n // All rich text objects contain an annotations object that sets the styling for the rich\n // text.\n annotations: AnnotationResponse\n}\n\ntype RichTextPropertyConfigurationRequest = {\n // Always `rich_text`\n type?: \"rich_text\"\n rich_text: EmptyObject\n}\n\nexport type RichTextPropertyItemObjectResponse = {\n type: \"rich_text\"\n rich_text: RichTextItemResponse\n object: \"property_item\"\n id: string\n}\n\ntype RollupDatabasePropertyConfigResponse = {\n // Always `rollup`\n type: \"rollup\"\n rollup: {\n // The function to use for the rollup, e.g. count, count_values, percent_not_empty, max.\n function: RollupFunction\n rollup_property_name: string\n relation_property_name: string\n rollup_property_id: string\n relation_property_id: string\n }\n}\n\ntype RollupFunction =\n | \"count\"\n | \"count_values\"\n | \"empty\"\n | \"not_empty\"\n | \"unique\"\n | \"show_unique\"\n | \"percent_empty\"\n | \"percent_not_empty\"\n | \"sum\"\n | \"average\"\n | \"median\"\n | \"min\"\n | \"max\"\n | \"range\"\n | \"earliest_date\"\n | \"latest_date\"\n | \"date_range\"\n | \"checked\"\n | \"unchecked\"\n | \"percent_checked\"\n | \"percent_unchecked\"\n | \"count_per_group\"\n | \"percent_per_group\"\n | \"show_original\"\n\ntype RollupPropertyConfigurationRequest = {\n // Always `rollup`\n type?: \"rollup\"\n rollup: {\n // The function to use for the rollup, e.g. count, count_values, percent_not_empty, max.\n function: RollupFunction\n } & (\n | { relation_property_name: string; rollup_property_name: string }\n | { relation_property_id: string; rollup_property_name: string }\n | { relation_property_name: string; rollup_property_id: string }\n | { relation_property_id: string; rollup_property_id: string }\n )\n}\n\ntype RollupPropertyFilter =\n | { any: RollupSubfilterPropertyFilter }\n | { none: RollupSubfilterPropertyFilter }\n | { every: RollupSubfilterPropertyFilter }\n | { date: DatePropertyFilter }\n | { number: NumberPropertyFilter }\n\nexport type RollupPropertyItemObjectResponse = {\n type: \"rollup\"\n rollup:\n | { type: \"number\"; number: number | null; function: RollupFunction }\n | { type: \"date\"; date: DateResponse | null; function: RollupFunction }\n | { type: \"array\"; array: Array<EmptyObject>; function: RollupFunction }\n | {\n type: \"unsupported\"\n unsupported: EmptyObject\n function: RollupFunction\n }\n | { type: \"incomplete\"; incomplete: EmptyObject; function: RollupFunction }\n object: \"property_item\"\n id: string\n}\n\ntype RollupSubfilterPropertyFilter =\n | { rich_text: TextPropertyFilter }\n | { number: NumberPropertyFilter }\n | { checkbox: CheckboxPropertyFilter }\n | { select: SelectPropertyFilter }\n | { multi_select: MultiSelectPropertyFilter }\n | { relation: RelationPropertyFilter }\n | { date: DatePropertyFilter }\n | { people: PeoplePropertyFilter }\n | { files: ExistencePropertyFilter }\n | { status: StatusPropertyFilter }\n\n/**\n * One of: `default`, `gray`, `brown`, `orange`, `yellow`, `green`, `blue`, `purple`,\n * `pink`, `red`\n */\ntype SelectColor =\n | \"default\"\n | \"gray\"\n | \"brown\"\n | \"orange\"\n | \"yellow\"\n | \"green\"\n | \"blue\"\n | \"purple\"\n | \"pink\"\n | \"red\"\n\ntype SelectDatabasePropertyConfigResponse = {\n // Always `select`\n type: \"select\"\n select: { options: Array<SelectPropertyResponse> }\n}\n\ntype SelectGroupByConfigRequest = {\n // The property type for grouping.\n type: \"select\" | \"multi_select\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype SelectGroupByConfigResponse = {\n // The property type for grouping.\n type: \"select\" | \"multi_select\"\n // Property ID to group by.\n property_id: string\n // Sort order for groups.\n sort: GroupSortResponse\n // Property name (convenience field).\n property_name?: string\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype SelectPropertyConfigurationRequest = {\n // Always `select`\n type?: \"select\"\n select: {\n options?: Array<{\n name: string\n color?: SelectColor\n description?: string | null\n }>\n }\n}\n\ntype SelectPropertyFilter =\n | { equals: string }\n | { does_not_equal: string }\n | ExistencePropertyFilter\n\nexport type SelectPropertyItemObjectResponse = {\n type: \"select\"\n select: PartialSelectResponse | null\n object: \"property_item\"\n id: string\n}\n\ntype SelectPropertyResponse = {\n id: string\n name: string\n color: SelectColor\n description: string | null\n}\n\ntype SelectSimplePropertyValueResponse = {\n // Always `select`\n type: \"select\"\n select: PartialSelectPropertyValueResponse | null\n}\n\ntype SimpleOrArrayPropertyValueResponse =\n | SimplePropertyValueResponse\n | ArrayBasedPropertyValueResponse\n\ntype SimplePropertyValueResponse =\n | NumberSimplePropertyValueResponse\n | UrlSimplePropertyValueResponse\n | SelectSimplePropertyValueResponse\n | MultiSelectSimplePropertyValueResponse\n | StatusSimplePropertyValueResponse\n | DateSimplePropertyValueResponse\n | EmailSimplePropertyValueResponse\n | PhoneNumberSimplePropertyValueResponse\n | CheckboxSimplePropertyValueResponse\n | FilesSimplePropertyValueResponse\n | CreatedBySimplePropertyValueResponse\n | CreatedTimeSimplePropertyValueResponse\n | LastEditedBySimplePropertyValueResponse\n | LastEditedTimeSimplePropertyValueResponse\n | FormulaSimplePropertyValueResponse\n | ButtonSimplePropertyValueResponse\n | UniqueIdSimplePropertyValueResponse\n | VerificationSimplePropertyValueResponse\n | PlaceSimplePropertyValueResponse\n\ntype SinglePropertyDatabasePropertyRelationConfigResponse = {\n // Always `single_property`\n type: \"single_property\"\n single_property: EmptyObject\n}\n\n/**\n * One of: `ascending`, `descending`\n */\ntype SortDirectionRequest = \"ascending\" | \"descending\"\n\ntype StatusDatabasePropertyConfigResponse = {\n // Always `status`\n type: \"status\"\n status: {\n // The options for the status property.\n options: Array<StatusPropertyResponse>\n // The groups for the status property.\n groups: Array<{\n // The ID of the status group.\n id: string\n // The name of the status group.\n name: string\n // The color of the status group.\n color: SelectColor\n // The IDs of the status options in this group.\n option_ids: Array<string>\n }>\n }\n}\n\ntype StatusGroupByConfigRequest = {\n // The property type for grouping.\n type: \"status\"\n // Property ID to group by.\n property_id: string\n // How to group status values. \"group\" groups by status group (To Do/In Progress/Done),\n // \"option\" groups by individual option.\n group_by: \"group\" | \"option\"\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype StatusGroupByConfigResponse = {\n // The property type for grouping.\n type: \"status\"\n // Property ID to group by.\n property_id: string\n // How to group status values. \"group\" groups by status group (To Do/In Progress/Done),\n // \"option\" groups by individual option.\n group_by: \"group\" | \"option\"\n // Sort order for groups.\n sort: GroupSortResponse\n // Property name (convenience field).\n property_name?: string\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype StatusPropertyConfigRequest = {\n // The initial status options. If not provided, defaults are created.\n options?: Array<{\n name: string\n color?: SelectColor\n description?: string | null\n }>\n}\n\ntype StatusPropertyConfigUpdateRequest = {\n // Status options to add or update. New options are assigned to the To-do group.\n options?: Array<\n { color?: SelectColor; description?: string | null } & (\n | { name: string; id?: string }\n | { id: string; name?: string }\n )\n >\n}\n\ntype StatusPropertyConfigurationRequest = {\n // Always `status`\n type?: \"status\"\n status: StatusPropertyConfigRequest\n}\n\ntype StatusPropertyFilter =\n | { equals: string }\n | { does_not_equal: string }\n | ExistencePropertyFilter\n\nexport type StatusPropertyItemObjectResponse = {\n type: \"status\"\n status: PartialSelectResponse | null\n object: \"property_item\"\n id: string\n}\n\ntype StatusPropertyResponse = {\n // The ID of the status option.\n id: string\n // The name of the status option.\n name: string\n // The color of the status option.\n color: SelectColor\n // The description of the status option.\n description: string | null\n}\n\ntype StatusSimplePropertyValueResponse = {\n // Always `status`\n type: \"status\"\n status: PartialSelectPropertyValueResponse | null\n}\n\ntype StringFormulaPropertyResponse = { type: \"string\"; string: string | null }\n\ntype StringFormulaPropertyValueResponse = {\n // Always `string`\n type: \"string\"\n string: string | null\n}\n\ntype StringRequest = string\n\ntype SubtaskConfigRequest = {\n // Relation property ID used for parent-child nesting.\n property_id?: string\n // How sub-items are displayed. \"show\" renders hierarchically with toggles, \"hidden\"\n // shows parents with a count, \"flattened\" shows sub-items with a parent indicator,\n // \"disabled\" turns off sub-item rendering.\n display_mode?: \"show\" | \"hidden\" | \"flattened\" | \"disabled\"\n // Which items are included when filtering. \"parents\" includes parent items only,\n // \"parents_and_subitems\" includes both, \"subitems\" includes sub-items only.\n filter_scope?: \"parents\" | \"parents_and_subitems\" | \"subitems\"\n // Property ID of the column showing the sub-item expand/collapse toggle.\n toggle_column_id?: string\n}\n\ntype SubtaskConfigResponse = {\n // Relation property ID used for parent-child nesting.\n property_id?: string\n // How sub-items are displayed. \"show\" renders hierarchically with toggles, \"hidden\"\n // shows parents with a count, \"flattened\" shows sub-items with a parent indicator,\n // \"disabled\" turns off sub-item rendering.\n display_mode?: \"show\" | \"hidden\" | \"flattened\" | \"disabled\"\n // Which items are included when filtering. \"parents\" includes parent items only,\n // \"parents_and_subitems\" includes both, \"subitems\" includes sub-items only.\n filter_scope?: \"parents\" | \"parents_and_subitems\" | \"subitems\"\n // Property ID of the column showing the sub-item expand/collapse toggle.\n toggle_column_id?: string\n}\n\nexport type SyncedBlockBlockObjectResponse = {\n type: \"synced_block\"\n synced_block: {\n synced_from: { type: \"block_id\"; block_id: IdRequest } | null\n }\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type TableBlockObjectResponse = {\n type: \"table\"\n table: ContentWithTableResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type TableOfContentsBlockObjectResponse = {\n type: \"table_of_contents\"\n table_of_contents: { color: ApiColor }\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype TableRequestWithTableRowChildren = {\n table_width: number\n children: Array<TableRowRequest>\n has_column_header?: boolean\n has_row_header?: boolean\n}\n\nexport type TableRowBlockObjectResponse = {\n type: \"table_row\"\n table_row: ContentWithTableRowResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype TableRowRequest = {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n object?: \"block\"\n}\n\ntype TableViewConfigRequest = {\n // The view type. Must be \"table\".\n type: \"table\"\n // Property visibility and display configuration. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n // Group-by configuration for the table. Pass null to remove grouping.\n group_by?: GroupByConfigRequest | null\n // Subtask (sub-item) configuration. Pass null to reset subtask config to defaults (which\n // may show subtasks). Use `{ \"display_mode\": \"disabled\" }` to explicitly disable\n // subtasks.\n subtasks?: SubtaskConfigRequest | null\n // Whether to wrap cell content in the table.\n wrap_cells?: boolean\n // Number of columns frozen from the left side of the table.\n frozen_column_index?: number\n // Whether to show vertical grid lines between columns.\n show_vertical_lines?: boolean\n}\n\ntype TableViewConfigResponse = {\n // The view configuration type.\n type: \"table\"\n // Columns/properties visible in the table view.\n properties?: Array<ViewPropertyConfigResponse>\n // Vertical (row) grouping configuration.\n group_by?: GroupByConfigResponse\n // Sub-item (subtask) display configuration.\n subtasks?: SubtaskConfigResponse\n // Whether to wrap cell content by default.\n wrap_cells?: boolean\n // Index of the last frozen column. Columns up to and including this index are frozen.\n frozen_column_index?: number\n // Whether to show vertical lines between columns.\n show_vertical_lines?: boolean\n}\n\nexport type TemplateBlockObjectResponse = {\n type: \"template\"\n template: { rich_text: Array<RichTextItemResponse> }\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype TemplateMentionDateTemplateMentionRequest = {\n // Always `template_mention_date`\n type?: \"template_mention_date\"\n // The date of the template mention.\n template_mention_date: \"today\" | \"now\"\n}\n\ntype TemplateMentionDateTemplateMentionResponse = {\n // Always `template_mention_date`\n type: \"template_mention_date\"\n // The date of the template mention.\n template_mention_date: \"today\" | \"now\"\n}\n\ntype TemplateMentionRequest =\n | TemplateMentionDateTemplateMentionRequest\n | TemplateMentionUserTemplateMentionRequest\n\ntype TemplateMentionResponse =\n | TemplateMentionDateTemplateMentionResponse\n | TemplateMentionUserTemplateMentionResponse\n\ntype TemplateMentionUserTemplateMentionRequest = {\n // Always `template_mention_user`\n type?: \"template_mention_user\"\n // The user of the template mention.\n template_mention_user: \"me\"\n}\n\ntype TemplateMentionUserTemplateMentionResponse = {\n // Always `template_mention_user`\n type: \"template_mention_user\"\n // The user of the template mention.\n template_mention_user: \"me\"\n}\n\n/**\n * IANA timezone to use when resolving template variables like @now and @today (e.g.\n * 'America/New_York'). Defaults to the authorizing user's timezone for public\n * integrations, or UTC for internal integrations.\n */\ntype TemplateTimezone = string\n\ntype TextGroupByConfigRequest = {\n // The property type for grouping.\n type: \"text\" | \"title\" | \"url\" | \"email\" | \"phone_number\"\n // Property ID to group by.\n property_id: string\n // How to group text values. \"exact\" = exact match, \"alphabet_prefix\" = first letter.\n group_by: \"exact\" | \"alphabet_prefix\"\n // Sort order for groups.\n sort: GroupSortRequest\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype TextGroupByConfigResponse = {\n // The property type for grouping.\n type: \"text\" | \"title\" | \"url\" | \"email\" | \"phone_number\"\n // Property ID to group by.\n property_id: string\n // How to group text values. \"exact\" = exact match, \"alphabet_prefix\" = first letter.\n group_by: \"exact\" | \"alphabet_prefix\"\n // Sort order for groups.\n sort: GroupSortResponse\n // Property name (convenience field).\n property_name?: string\n // Whether to hide groups that have no items.\n hide_empty_groups?: boolean\n}\n\ntype TextPropertyFilter =\n | { equals: string }\n | { does_not_equal: string }\n | { contains: string }\n | { does_not_contain: string }\n | { starts_with: string }\n | { ends_with: string }\n | ExistencePropertyFilter\n\ntype TextRequest = string\n\ntype TextRichTextItemRequest = {\n // Always `text`\n type?: \"text\"\n // If a rich text object's type value is `text`, then the corresponding text field\n // contains an object including the text content and any inline link.\n text: {\n // The actual text content of the text.\n content: string\n // An object with information about any inline link in this text, if included.\n link?: {\n // The URL of the link.\n url: string\n } | null\n }\n}\n\nexport type TextRichTextItemResponse = {\n // Always `text`\n type: \"text\"\n // If a rich text object's type value is `text`, then the corresponding text field\n // contains an object including the text content and any inline link.\n text: {\n // The actual text content of the text.\n content: string\n // An object with information about any inline link in this text, if included.\n link: {\n // The URL of the link.\n url: string\n } | null\n }\n}\n\ntype TimeZoneRequest = string\n\ntype TimelineArrowsByRequest = {\n // Relation property ID used for dependency arrows, or null to disable arrows.\n property_id?: string | null\n}\n\ntype TimelineArrowsByResponse = {\n // Relation property ID used for dependency arrows.\n property_id?: string | null\n}\n\ntype TimelinePreferenceRequest = {\n // Zoom level for the timeline.\n zoom_level:\n | \"hours\"\n | \"day\"\n | \"week\"\n | \"bi_week\"\n | \"month\"\n | \"quarter\"\n | \"year\"\n | \"5_years\"\n // Timestamp (ms) to center the timeline view on.\n center_timestamp?: number\n}\n\ntype TimelinePreferenceResponse = {\n // Zoom level for the timeline.\n zoom_level:\n | \"hours\"\n | \"day\"\n | \"week\"\n | \"bi_week\"\n | \"month\"\n | \"quarter\"\n | \"year\"\n | \"5_years\"\n // Center timestamp for the timeline view (Unix timestamp in ms).\n center_timestamp?: number\n}\n\ntype TimelineViewConfigRequest = {\n // The view type. Must be \"timeline\".\n type: \"timeline\"\n // Property ID of the date property used for the start of timeline items.\n date_property_id: string\n // Property ID of the date property used for the end of timeline items. Pass null to\n // clear.\n end_date_property_id?: string | null\n // Property visibility and display configuration on timeline items. Pass null to clear.\n properties?: Array<ViewPropertyConfigRequest> | null\n // Whether to show the table panel alongside the timeline. Pass null to clear.\n show_table?: boolean | null\n // Property configuration for the table panel (when show_table is true). Pass null to\n // clear.\n table_properties?: Array<ViewPropertyConfigRequest> | null\n // Timeline display preferences (zoom level and center position). Pass null to clear.\n preference?: TimelinePreferenceRequest | null\n // Configuration for dependency arrows between timeline items. Pass null to clear.\n arrows_by?: TimelineArrowsByRequest | null\n // Whether to color timeline items by a property. Pass null to clear.\n color_by?: boolean | null\n}\n\ntype TimelineViewConfigResponse = {\n // The view configuration type.\n type: \"timeline\"\n // Start date property - required.\n date_property_id: string\n // Start date property name (convenience field).\n date_property_name?: string\n // End date property (optional, for items that span a range).\n end_date_property_id?: string\n // End date property name (convenience field).\n end_date_property_name?: string\n // Properties to display on timeline items.\n properties?: Array<ViewPropertyConfigResponse>\n // Whether to show the table panel alongside the timeline.\n show_table?: boolean\n // Properties to display in the table panel (when show_table is true).\n table_properties?: Array<ViewPropertyConfigResponse>\n // Timeline zoom/preference state.\n preference?: TimelinePreferenceResponse\n // Dependency arrows configuration.\n arrows_by?: TimelineArrowsByResponse\n // Whether to color-code items by property.\n color_by?: boolean\n}\n\ntype TimestampCreatedTimeFilter = {\n created_time: DatePropertyFilter\n timestamp: \"created_time\"\n type?: \"created_time\"\n}\n\ntype TimestampFilter =\n | TimestampCreatedTimeFilter\n | TimestampLastEditedTimeFilter\n\ntype TimestampLastEditedTimeFilter = {\n last_edited_time: DatePropertyFilter\n timestamp: \"last_edited_time\"\n type?: \"last_edited_time\"\n}\n\ntype TimestampSortResponse = {\n // The timestamp to sort by.\n timestamp: \"created_time\" | \"last_edited_time\"\n // Sort direction.\n direction: \"ascending\" | \"descending\"\n}\n\ntype TitleArrayBasedPropertyValueResponse = {\n // Always `title`\n type: \"title\"\n title: Array<RichTextItemResponse>\n}\n\ntype TitleDatabasePropertyConfigResponse = {\n // Always `title`\n type: \"title\"\n title: EmptyObject\n}\n\ntype TitleObjectResponse = { title: string }\n\ntype TitlePropertyConfigurationRequest = {\n // Always `title`\n type?: \"title\"\n title: EmptyObject\n}\n\nexport type TitlePropertyItemObjectResponse = {\n type: \"title\"\n title: RichTextItemResponse\n object: \"property_item\"\n id: string\n}\n\nexport type ToDoBlockObjectResponse = {\n type: \"to_do\"\n to_do: {\n rich_text: Array<RichTextItemResponse>\n color: ApiColor\n checked: boolean\n }\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\nexport type ToggleBlockObjectResponse = {\n type: \"toggle\"\n toggle: ContentWithRichTextAndColorResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype TranscriptionBlockResponse = {\n title?: Array<RichTextItemResponse>\n status?: ApiTranscriptionStatus\n children?: TranscriptionChildrenResponse\n calendar_event?: TranscriptionCalendarEventResponse\n recording?: TranscriptionRecordingResponse\n}\n\ntype TranscriptionCalendarEventResponse = {\n start_time: string\n end_time: string\n attendees?: Array<IdRequest>\n}\n\ntype TranscriptionChildrenResponse = {\n summary_block_id?: IdRequest\n notes_block_id?: IdRequest\n transcript_block_id?: IdRequest\n}\n\ntype TranscriptionRecordingResponse = { start_time?: string; end_time?: string }\n\ntype UniqueIdDatabasePropertyConfigResponse = {\n // Always `unique_id`\n type: \"unique_id\"\n unique_id: {\n // The prefix for the unique ID.\n prefix: string | null\n }\n}\n\ntype UniqueIdPropertyConfigurationRequest = {\n // Always `unique_id`\n type?: \"unique_id\"\n unique_id: { prefix?: string | null }\n}\n\nexport type UniqueIdPropertyItemObjectResponse = {\n type: \"unique_id\"\n unique_id: { prefix: string | null; number: number | null }\n object: \"property_item\"\n id: string\n}\n\ntype UniqueIdPropertyValueResponse = {\n prefix: string | null\n number: number | null\n}\n\ntype UniqueIdSimplePropertyValueResponse = {\n // Always `unique_id`\n type: \"unique_id\"\n unique_id: UniqueIdPropertyValueResponse\n}\n\nexport type UnsupportedBlockObjectResponse = {\n type: \"unsupported\"\n unsupported: {\n // The underlying block type that is not currently supported by the Public API. Example\n // values include: tab, form, button, drive.\n block_type: string\n }\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\ntype UpdateMediaContentWithFileAndCaptionRequest = {\n caption?: Array<RichTextItemRequest>\n external?: ExternalFileRequest\n file_upload?: FileUploadIdRequest\n}\n\ntype UpdateMediaContentWithFileNameAndCaptionRequest = {\n caption?: Array<RichTextItemRequest>\n external?: ExternalFileRequest\n file_upload?: FileUploadIdRequest\n name?: StringRequest\n}\n\ntype UpdateMediaContentWithUrlAndCaptionRequest = {\n url?: string\n caption?: Array<RichTextItemRequest>\n}\n\ntype UpdateViewRequest = {\n // New name for the view.\n name?: string\n // Filter to apply to the view. Uses the same format as the data source query filter.\n // Pass null to clear the filter.\n filter?: ViewFilterRequest | null\n // Property sorts to apply to the view. Only property-based sorts are supported. Pass\n // null to clear the sorts.\n sorts?: ViewPropertySortsRequest | null\n // Quick filters for the view's filter bar. Keys are property names or IDs. Set a key to\n // a filter condition to add/update that quick filter. Set a key to null to remove it.\n // Pass null for the entire field to clear all quick filters. Unmentioned quick filters\n // are preserved.\n quick_filters?: Record<string, QuickFilterConditionRequest | null> | null\n // View presentation configuration. The type field must match the view type. Individual\n // nullable fields within the configuration can be set to null to clear them.\n configuration?: ViewConfigRequest\n}\n\ntype UrlDatabasePropertyConfigResponse = {\n // Always `url`\n type: \"url\"\n url: EmptyObject\n}\n\ntype UrlPropertyConfigurationRequest = {\n // Always `url`\n type?: \"url\"\n url: EmptyObject\n}\n\nexport type UrlPropertyItemObjectResponse = {\n type: \"url\"\n url: string | null\n object: \"property_item\"\n id: string\n}\n\ntype UrlSimplePropertyValueResponse = {\n // Always `url`\n type: \"url\"\n url: string | null\n}\n\nexport type UserObjectResponse = UserObjectResponseCommon &\n (PersonUserObjectResponse | BotUserObjectResponse)\n\nexport type UserObjectResponseCommon = {\n // The ID of the user.\n id: IdResponse\n // The user object type name.\n object: \"user\"\n // The name of the user.\n name: string | null\n // The avatar URL of the user.\n avatar_url: string | null\n}\n\ntype UserValueResponse = PartialUserObjectResponse | UserObjectResponse\n\ntype VerificationPropertyConfigurationRequest = {\n // Always `verification`\n type?: \"verification\"\n verification: EmptyObject\n}\n\nexport type VerificationPropertyItemObjectResponse = {\n type: \"verification\"\n verification: VerificationPropertyValueResponse | null\n object: \"property_item\"\n id: string\n}\n\ntype VerificationPropertyResponse = {\n // One of: `verified`, `expired`\n state: \"verified\" | \"expired\"\n date: DateResponse | null\n verified_by: PartialUserObjectResponse | null\n}\n\ntype VerificationPropertyStatusFilter = {\n status: \"verified\" | \"expired\" | \"none\"\n}\n\ntype VerificationPropertyUnverifiedResponse = {\n // Always `unverified`\n state: \"unverified\"\n date: null\n verified_by: null\n}\n\ntype VerificationPropertyValueResponse =\n | VerificationPropertyUnverifiedResponse\n | VerificationPropertyResponse\n\ntype VerificationSimplePropertyValueResponse = {\n // Always `verification`\n type: \"verification\"\n verification: VerificationPropertyValueResponse | null\n}\n\nexport type VideoBlockObjectResponse = {\n type: \"video\"\n video: MediaContentWithFileAndCaptionResponse\n parent: ParentForBlockBasedObjectResponse\n object: \"block\"\n id: string\n created_time: string\n created_by: PartialUserObjectResponse\n last_edited_time: string\n last_edited_by: PartialUserObjectResponse\n has_children: boolean\n in_trash: boolean\n /** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */\n archived: boolean\n}\n\n/**\n * View configuration, discriminated by the type field.\n */\ntype ViewConfigRequest =\n | TableViewConfigRequest\n | BoardViewConfigRequest\n | CalendarViewConfigRequest\n | TimelineViewConfigRequest\n | GalleryViewConfigRequest\n | ListViewConfigRequest\n | MapViewConfigRequest\n | FormViewConfigRequest\n | ChartViewConfigRequest\n\n/**\n * View configuration, typed by view type (table, board, calendar, etc.).\n */\ntype ViewConfigResponse =\n | TableViewConfigResponse\n | BoardViewConfigResponse\n | CalendarViewConfigResponse\n | TimelineViewConfigResponse\n | GalleryViewConfigResponse\n | ListViewConfigResponse\n | MapViewConfigResponse\n | FormViewConfigResponse\n | ChartViewConfigResponse\n | DashboardViewConfigResponse\n\n/**\n * Filter for the view. Uses the same format as the data source query filter (property\n * filters, timestamp filters, or compound and/or filters). Simple property filters appear\n * in the view's filter bar in the Notion UI. To filter by multiple values on a select or\n * status property, use a compound \"or\" filter with separate \"equals\" conditions for each\n * value.\n */\ntype ViewFilterRequest = Record<string, never>\n\n/**\n * Filter for the view. Can be a property filter (filter by property value), timestamp\n * filter (filter by created_time or last_edited_time), or compound filter (combine\n * filters with and/or logic). Compound filters support up to 2 levels of nesting.\n */\ntype ViewFilterResponse =\n | (Record<string, unknown> & {\n // The name or ID of the property to filter on.\n property: string\n })\n | (Record<string, unknown> & {\n // The timestamp to filter on.\n timestamp: \"created_time\" | \"last_edited_time\"\n })\n | {\n // Filters combined with OR logic.\n or?: Array<\n | (Record<string, unknown> & {\n // The name or ID of the property to filter on.\n property: string\n })\n | (Record<string, unknown> & {\n // The timestamp to filter on.\n timestamp: \"created_time\" | \"last_edited_time\"\n })\n | {\n // Filters combined with OR logic.\n or?: Array<\n | (Record<string, unknown> & {\n // The name or ID of the property to filter on.\n property: string\n })\n | (Record<string, unknown> & {\n // The timestamp to filter on.\n timestamp: \"created_time\" | \"last_edited_time\"\n })\n >\n // Filters combined with AND logic.\n and?: Array<\n | (Record<string, unknown> & {\n // The name or ID of the property to filter on.\n property: string\n })\n | (Record<string, unknown> & {\n // The timestamp to filter on.\n timestamp: \"created_time\" | \"last_edited_time\"\n })\n >\n }\n >\n // Filters combined with AND logic.\n and?: Array<\n | (Record<string, unknown> & {\n // The name or ID of the property to filter on.\n property: string\n })\n | (Record<string, unknown> & {\n // The timestamp to filter on.\n timestamp: \"created_time\" | \"last_edited_time\"\n })\n | {\n // Filters combined with OR logic.\n or?: Array<\n | (Record<string, unknown> & {\n // The name or ID of the property to filter on.\n property: string\n })\n | (Record<string, unknown> & {\n // The timestamp to filter on.\n timestamp: \"created_time\" | \"last_edited_time\"\n })\n >\n // Filters combined with AND logic.\n and?: Array<\n | (Record<string, unknown> & {\n // The name or ID of the property to filter on.\n property: string\n })\n | (Record<string, unknown> & {\n // The timestamp to filter on.\n timestamp: \"created_time\" | \"last_edited_time\"\n })\n >\n }\n >\n }\n\n/**\n * Position of the new view in the database's view tab bar.\n */\ntype ViewPositionRequest =\n | {\n // Position type. \"start\" places the view as the first tab.\n type: \"start\"\n }\n | {\n // Position type. \"end\" places the view as the last tab.\n type: \"end\"\n }\n | {\n // Position type. \"after_view\" places the new view immediately after the specified view.\n type: \"after_view\"\n // The ID of an existing view in the database. The new view will be placed after this\n // view.\n view_id: IdRequest\n }\n\ntype ViewPropertyConfigRequest = {\n // Property ID (stable identifier).\n property_id: string\n // Whether this property is visible in the view.\n visible?: boolean\n // Width of the property column in pixels (table view only).\n width?: number\n // Whether to wrap content in this property cell/card.\n wrap?: boolean\n // How to display status properties (select dropdown or checkbox).\n status_show_as?: \"select\" | \"checkbox\"\n // Property width mode in compact card layouts (board/gallery).\n card_property_width_mode?: \"full_line\" | \"inline\"\n // Date display format (date properties only).\n date_format?:\n | \"full\"\n | \"short\"\n | \"month_day_year\"\n | \"day_month_year\"\n | \"year_month_day\"\n | \"relative\"\n // Time display format (date properties only).\n time_format?: \"12_hour\" | \"24_hour\" | \"hidden\"\n}\n\ntype ViewPropertyConfigResponse = {\n // Property ID (stable identifier).\n property_id: string\n // Property name (convenience field, not stable across renames).\n property_name?: string\n // Whether this property is visible in the view.\n visible?: boolean\n // Width of the property column in pixels (table view only).\n width?: number\n // Whether to wrap content in this property cell/card.\n wrap?: boolean\n // How to display status properties (as select dropdown or checkbox).\n status_show_as?: \"select\" | \"checkbox\"\n // Property width mode in compact card layouts (board/gallery).\n card_property_width_mode?: \"full_line\" | \"inline\"\n // Date display format (date properties only). \"full\" = localized full date, \"short\" =\n // month and day, \"month_day_year\" = MM/DD/YYYY, \"day_month_year\" = DD/MM/YYYY,\n // \"year_month_day\" = YYYY/MM/DD, \"relative\" = relative dates.\n date_format?:\n | \"full\"\n | \"short\"\n | \"month_day_year\"\n | \"day_month_year\"\n | \"year_month_day\"\n | \"relative\"\n // Time display format (date properties only). \"12_hour\" = 12-hour clock with AM/PM,\n // \"24_hour\" = 24-hour clock, \"hidden\" = hide time.\n time_format?: \"12_hour\" | \"24_hour\" | \"hidden\"\n}\n\ntype ViewPropertySortRequest = {\n // Property name or ID to sort by.\n property: string\n // Sort direction.\n direction: SortDirectionRequest\n}\n\ntype ViewPropertySortsRequest = Array<ViewPropertySortRequest>\n\nexport type ViewQueryResponse = {\n // The object type.\n object: \"view_query\"\n // The query ID.\n id: IdResponse\n // The view this query was executed against.\n view_id: IdResponse\n // When the cached query results expire.\n expires_at: string\n // Total number of results in the query.\n total_count: number\n // The page results for this page.\n results: Array<PageReferenceResponse>\n // Cursor for the next page of results.\n next_cursor: IdResponse | null\n // Whether there are more results.\n has_more: boolean\n}\n\n/**\n * Sort for the view. Can be a property sort (with property and direction) or timestamp\n * sort (with timestamp and direction).\n */\ntype ViewSortRequest = Record<string, never>\n\n/**\n * Sort for the view. Can sort by property or timestamp.\n */\ntype ViewSortResponse = PropertySortResponse | TimestampSortResponse\n\ntype ViewSortsRequest = Array<ViewSortRequest>\n\n/**\n * One of: `table`, `board`, `list`, `calendar`, `timeline`, `gallery`, `form`, `chart`,\n * `map`, `dashboard`\n */\ntype ViewTypeRequest =\n | \"table\"\n | \"board\"\n | \"list\"\n | \"calendar\"\n | \"timeline\"\n | \"gallery\"\n | \"form\"\n | \"chart\"\n | \"map\"\n | \"dashboard\"\n\n/**\n * Where to place the new widget in the dashboard. \"new_row\" creates a new row,\n * \"existing_row\" adds to an existing row side-by-side with other widgets.\n */\ntype WidgetPlacementRequest =\n | {\n // Placement type. \"new_row\" creates a new row containing the widget.\n type: \"new_row\"\n // The 0-based row position to insert the new row at. If omitted, the new row is appended\n // at the end.\n row_index?: number\n }\n | {\n // Placement type. \"existing_row\" adds the widget to an existing row (side-by-side with\n // other widgets).\n type: \"existing_row\"\n // The 0-based index of the existing row to add the widget to.\n row_index: number\n }\n\ntype WorkspaceParentForBlockBasedObjectResponse = {\n // The parent type.\n type: \"workspace\"\n // Always true for workspace parent.\n workspace: true\n}\nexport type GetSelfParameters = Record<string, never>\n\nexport type GetSelfResponse = UserObjectResponse\n\n/**\n * Retrieve your token's bot user\n */\nexport const getSelf = {\n method: \"get\",\n pathParams: [],\n queryParams: [],\n bodyParams: [],\n\n path: (): string => `users/me`,\n} as const\n\ntype GetUserPathParameters = {\n user_id: IdRequest\n}\n\nexport type GetUserParameters = GetUserPathParameters\n\nexport type GetUserResponse = UserObjectResponse\n\n/**\n * Retrieve a user\n */\nexport const getUser = {\n method: \"get\",\n pathParams: [\"user_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: GetUserPathParameters): string => `users/${p.user_id}`,\n} as const\n\ntype ListUsersQueryParameters = {\n start_cursor?: string\n page_size?: number\n}\n\nexport type ListUsersParameters = ListUsersQueryParameters\n\nexport type ListUsersResponse = {\n type: \"user\"\n user: EmptyObject\n object: \"list\"\n next_cursor: string | null\n has_more: boolean\n results: Array<UserObjectResponse>\n}\n\n/**\n * List all users\n */\nexport const listUsers = {\n method: \"get\",\n pathParams: [],\n queryParams: [\"start_cursor\", \"page_size\"],\n bodyParams: [],\n\n path: (): string => `users`,\n} as const\n\ntype CreatePageBodyParameters = {\n parent?:\n | { page_id: IdRequest; type?: \"page_id\" }\n | { database_id: IdRequest; type?: \"database_id\" }\n | { data_source_id: IdRequest; type?: \"data_source_id\" }\n | { workspace: true; type?: \"workspace\" }\n properties?: Record<\n string,\n | { title: Array<RichTextItemRequest>; type?: \"title\" }\n | { rich_text: Array<RichTextItemRequest>; type?: \"rich_text\" }\n | { number: number | null; type?: \"number\" }\n | { url: TextRequest | null; type?: \"url\" }\n | {\n select:\n | {\n id: StringRequest\n name?: TextRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | {\n name: TextRequest\n id?: StringRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | null\n type?: \"select\"\n }\n | {\n multi_select: Array<\n | {\n id: StringRequest\n name?: TextRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | {\n name: TextRequest\n id?: StringRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n >\n type?: \"multi_select\"\n }\n | {\n people: Array<PartialUserObjectRequest | GroupObjectRequest>\n type?: \"people\"\n }\n | { email: StringRequest | null; type?: \"email\" }\n | { phone_number: StringRequest | null; type?: \"phone_number\" }\n | { date: DateRequest | null; type?: \"date\" }\n | { checkbox: boolean; type?: \"checkbox\" }\n | { relation: Array<RelationItemPropertyValueResponse>; type?: \"relation\" }\n | {\n files: Array<\n | InternalOrExternalFileWithNameRequest\n | FileUploadWithOptionalNameRequest\n >\n type?: \"files\"\n }\n | {\n status:\n | {\n id: StringRequest\n name?: TextRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | {\n name: TextRequest\n id?: StringRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | null\n type?: \"status\"\n }\n | {\n place: {\n lat: number\n lon: number\n name?: string | null\n address?: string | null\n aws_place_id?: string | null\n google_place_id?: string | null\n } | null\n type?: \"place\"\n }\n >\n icon?: PageIconRequest | null\n cover?: PageCoverRequest | null\n content?: Array<BlockObjectRequest>\n children?: Array<BlockObjectRequest>\n // Page content as Notion-flavored Markdown. Mutually exclusive with content/children.\n markdown?: string\n template?:\n | { type: \"none\" }\n | { type: \"default\"; timezone?: TemplateTimezone }\n | {\n type: \"template_id\"\n template_id: IdRequest\n timezone?: TemplateTimezone\n }\n position?: PagePositionSchema\n}\n\nexport type CreatePageParameters = CreatePageBodyParameters\n\nexport type CreatePageResponse = PageObjectResponse | PartialPageObjectResponse\n\n/**\n * Create a page\n */\nexport const createPage = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\n \"parent\",\n \"properties\",\n \"icon\",\n \"cover\",\n \"content\",\n \"children\",\n \"markdown\",\n \"template\",\n \"position\",\n ],\n\n path: (): string => `pages`,\n} as const\n\ntype GetPagePathParameters = {\n // The ID of the page to retrieve.\n page_id: IdRequest\n}\n\ntype GetPageQueryParameters = {\n // Supply a list of property IDs to filter properties in the response. Note that if a\n // page doesn't have a property, it won't be included in the filtered response.\n filter_properties?: Array<string>\n}\n\nexport type GetPageParameters = GetPagePathParameters & GetPageQueryParameters\n\nexport type GetPageResponse = PartialPageObjectResponse | PageObjectResponse\n\n/**\n * Retrieve a page\n */\nexport const getPage = {\n method: \"get\",\n pathParams: [\"page_id\"],\n queryParams: [\"filter_properties\"],\n bodyParams: [],\n\n path: (p: GetPagePathParameters): string => `pages/${p.page_id}`,\n} as const\n\ntype UpdatePagePathParameters = {\n page_id: IdRequest\n}\n\ntype UpdatePageBodyParameters = {\n properties?: Record<\n string,\n | { title: Array<RichTextItemRequest>; type?: \"title\" }\n | { rich_text: Array<RichTextItemRequest>; type?: \"rich_text\" }\n | { number: number | null; type?: \"number\" }\n | { url: TextRequest | null; type?: \"url\" }\n | {\n select:\n | {\n id: StringRequest\n name?: TextRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | {\n name: TextRequest\n id?: StringRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | null\n type?: \"select\"\n }\n | {\n multi_select: Array<\n | {\n id: StringRequest\n name?: TextRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | {\n name: TextRequest\n id?: StringRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n >\n type?: \"multi_select\"\n }\n | {\n people: Array<PartialUserObjectRequest | GroupObjectRequest>\n type?: \"people\"\n }\n | { email: StringRequest | null; type?: \"email\" }\n | { phone_number: StringRequest | null; type?: \"phone_number\" }\n | { date: DateRequest | null; type?: \"date\" }\n | { checkbox: boolean; type?: \"checkbox\" }\n | { relation: Array<RelationItemPropertyValueResponse>; type?: \"relation\" }\n | {\n files: Array<\n | InternalOrExternalFileWithNameRequest\n | FileUploadWithOptionalNameRequest\n >\n type?: \"files\"\n }\n | {\n status:\n | {\n id: StringRequest\n name?: TextRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | {\n name: TextRequest\n id?: StringRequest\n color?: SelectColor\n description?: TextRequest | null\n }\n | null\n type?: \"status\"\n }\n | {\n place: {\n lat: number\n lon: number\n name?: string | null\n address?: string | null\n aws_place_id?: string | null\n google_place_id?: string | null\n } | null\n type?: \"place\"\n }\n >\n icon?: PageIconRequest | null\n cover?: PageCoverRequest | null\n // Whether the page should be locked from editing in the Notion app UI. If not provided,\n // the locked state will not be updated.\n is_locked?: boolean\n template?:\n | { type: \"default\"; timezone?: TemplateTimezone }\n | {\n type: \"template_id\"\n template_id: IdRequest\n timezone?: TemplateTimezone\n }\n // Whether to erase all existing content from the page. When used with a template, the\n // template content replaces the existing content. When used without a template, simply\n // clears the page content.\n erase_content?: boolean\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n is_archived?: boolean\n}\n\nexport type UpdatePageParameters = UpdatePagePathParameters &\n UpdatePageBodyParameters\n\nexport type UpdatePageResponse = PageObjectResponse | PartialPageObjectResponse\n\n/**\n * Update page\n */\nexport const updatePage = {\n method: \"patch\",\n pathParams: [\"page_id\"],\n queryParams: [],\n bodyParams: [\n \"archived\",\n \"properties\",\n \"icon\",\n \"cover\",\n \"is_locked\",\n \"template\",\n \"erase_content\",\n \"in_trash\",\n \"is_archived\",\n ],\n\n path: (p: UpdatePagePathParameters): string => `pages/${p.page_id}`,\n} as const\n\ntype MovePagePathParameters = {\n // The ID of the page to move.\n page_id: IdRequest\n}\n\ntype MovePageBodyParameters = {\n // The new parent of the page.\n parent:\n | {\n // The ID of the parent page (with or without dashes), for example,\n // 195de9221179449fab8075a27c979105\n page_id: IdRequest\n // Always `page_id`\n type?: \"page_id\"\n }\n | {\n // The ID of the parent data source (collection), with or without dashes. For example,\n // f336d0bc-b841-465b-8045-024475c079dd\n data_source_id: IdRequest\n // Always `data_source_id`\n type?: \"data_source_id\"\n }\n}\n\nexport type MovePageParameters = MovePagePathParameters & MovePageBodyParameters\n\nexport type MovePageResponse = PartialPageObjectResponse | PageObjectResponse\n\n/**\n * Move a page\n */\nexport const movePage = {\n method: \"post\",\n pathParams: [\"page_id\"],\n queryParams: [],\n bodyParams: [\"parent\"],\n\n path: (p: MovePagePathParameters): string => `pages/${p.page_id}/move`,\n} as const\n\ntype GetPagePropertyPathParameters = {\n page_id: IdRequest\n property_id: string\n}\n\ntype GetPagePropertyQueryParameters = {\n start_cursor?: string\n page_size?: number\n}\n\nexport type GetPagePropertyParameters = GetPagePropertyPathParameters &\n GetPagePropertyQueryParameters\n\nexport type GetPagePropertyResponse =\n | PropertyItemObjectResponse\n | PropertyItemListResponse\n\n/**\n * Retrieve a page property item\n */\nexport const getPageProperty = {\n method: \"get\",\n pathParams: [\"page_id\", \"property_id\"],\n queryParams: [\"start_cursor\", \"page_size\"],\n bodyParams: [],\n\n path: (p: GetPagePropertyPathParameters): string =>\n `pages/${p.page_id}/properties/${p.property_id}`,\n} as const\n\ntype GetPageMarkdownPathParameters = {\n // The ID of the page (or block) to retrieve as markdown. Non-navigable block IDs from\n // truncated responses can be passed here to fetch their subtrees.\n page_id: IdRequest\n}\n\ntype GetPageMarkdownQueryParameters = {\n // Whether to include meeting note transcripts. Defaults to false. When true, full\n // transcripts are included; when false, a placeholder with the meeting note URL is shown\n // instead.\n include_transcript?: boolean\n}\n\nexport type GetPageMarkdownParameters = GetPageMarkdownPathParameters &\n GetPageMarkdownQueryParameters\n\nexport type GetPageMarkdownResponse = PageMarkdownResponse\n\n/**\n * Retrieve a page as markdown\n */\nexport const getPageMarkdown = {\n method: \"get\",\n pathParams: [\"page_id\"],\n queryParams: [\"include_transcript\"],\n bodyParams: [],\n\n path: (p: GetPageMarkdownPathParameters): string =>\n `pages/${p.page_id}/markdown`,\n} as const\n\ntype UpdatePageMarkdownPathParameters = {\n // The ID of the page to update.\n page_id: IdRequest\n}\n\ntype UpdatePageMarkdownBodyParameters =\n | {\n // Always `insert_content`\n type: \"insert_content\"\n // Insert new content into the page.\n insert_content: {\n // The enhanced markdown content to insert into the page.\n content: string\n // Selection of existing content to insert after, using the ellipsis format (\"start\n // text...end text\"). Omit to append at the end of the page.\n after?: string\n }\n }\n | {\n // Always `replace_content_range`\n type: \"replace_content_range\"\n // Replace a range of content in the page.\n replace_content_range: {\n // The new enhanced markdown content to replace the matched range.\n content: string\n // Selection of existing content to replace, using the ellipsis format (\"start text...end\n // text\").\n content_range: string\n // Set to true to allow the operation to delete child pages or databases. Defaults to\n // false.\n allow_deleting_content?: boolean\n }\n }\n | {\n // Always `update_content`\n type: \"update_content\"\n // Update specific content using search-and-replace operations.\n update_content: {\n // An array of search-and-replace operations, each with old_str (content to find) and\n // new_str (replacement content).\n content_updates: Array<{\n // The existing content string to find and replace. Must exactly match the page content.\n old_str: string\n // The new content string to replace old_str with.\n new_str: string\n // If true, replaces all occurrences of old_str. If false (default), the operation fails\n // if there are multiple matches.\n replace_all_matches?: boolean\n }>\n // Set to true to allow the operation to delete child pages or databases. Defaults to\n // false.\n allow_deleting_content?: boolean\n }\n }\n | {\n // Always `replace_content`\n type: \"replace_content\"\n // Replace the entire page content with new markdown.\n replace_content: {\n // The new enhanced markdown content to replace the entire page content.\n new_str: string\n // Set to true to allow the operation to delete child pages or databases. Defaults to\n // false.\n allow_deleting_content?: boolean\n }\n }\n\nexport type UpdatePageMarkdownParameters = UpdatePageMarkdownPathParameters &\n UpdatePageMarkdownBodyParameters\n\nexport type UpdatePageMarkdownResponse = PageMarkdownResponse\n\n/**\n * Update a page's content as markdown\n */\nexport const updatePageMarkdown = {\n method: \"patch\",\n pathParams: [\"page_id\"],\n queryParams: [],\n bodyParams: [\n \"type\",\n \"insert_content\",\n \"replace_content_range\",\n \"update_content\",\n \"replace_content\",\n ],\n\n path: (p: UpdatePageMarkdownPathParameters): string =>\n `pages/${p.page_id}/markdown`,\n} as const\n\ntype GetBlockPathParameters = {\n block_id: IdRequest\n}\n\nexport type GetBlockParameters = GetBlockPathParameters\n\nexport type GetBlockResponse = PartialBlockObjectResponse | BlockObjectResponse\n\n/**\n * Retrieve a block\n */\nexport const getBlock = {\n method: \"get\",\n pathParams: [\"block_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: GetBlockPathParameters): string => `blocks/${p.block_id}`,\n} as const\n\ntype UpdateBlockPathParameters = {\n block_id: IdRequest\n}\n\ntype UpdateBlockBodyParameters =\n | {\n embed: UpdateMediaContentWithUrlAndCaptionRequest\n type?: \"embed\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n bookmark: UpdateMediaContentWithUrlAndCaptionRequest\n type?: \"bookmark\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n image: UpdateMediaContentWithFileAndCaptionRequest\n type?: \"image\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n video: UpdateMediaContentWithFileAndCaptionRequest\n type?: \"video\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n pdf: UpdateMediaContentWithFileAndCaptionRequest\n type?: \"pdf\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n file: UpdateMediaContentWithFileNameAndCaptionRequest\n type?: \"file\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n audio: UpdateMediaContentWithFileAndCaptionRequest\n type?: \"audio\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n code: {\n rich_text?: Array<RichTextItemRequest>\n language?: LanguageRequest\n caption?: Array<RichTextItemRequest>\n }\n type?: \"code\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n equation: ContentWithExpressionRequest\n type?: \"equation\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n divider: EmptyObject\n type?: \"divider\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n breadcrumb: EmptyObject\n type?: \"breadcrumb\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n table_of_contents: { color?: ApiColor }\n type?: \"table_of_contents\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n link_to_page:\n | { page_id: IdRequest; type?: \"page_id\" }\n | { database_id: IdRequest; type?: \"database_id\" }\n | { comment_id: IdRequest; type?: \"comment_id\" }\n type?: \"link_to_page\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n table_row: ContentWithTableRowRequest\n type?: \"table_row\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n heading_1: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_1\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n heading_2: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_2\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n heading_3: HeaderContentWithRichTextAndColorRequest\n type?: \"heading_3\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n paragraph: ContentWithRichTextAndColorRequest\n type?: \"paragraph\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n bulleted_list_item: ContentWithRichTextAndColorRequest\n type?: \"bulleted_list_item\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n numbered_list_item: ContentWithRichTextAndColorRequest\n type?: \"numbered_list_item\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n quote: ContentWithRichTextAndColorRequest\n type?: \"quote\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n to_do: {\n rich_text?: Array<RichTextItemRequest>\n checked?: boolean\n color?: ApiColor\n }\n type?: \"to_do\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n toggle: ContentWithRichTextAndColorRequest\n type?: \"toggle\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n template: ContentWithRichTextRequest\n type?: \"template\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n callout: {\n rich_text?: Array<RichTextItemRequest>\n icon?: PageIconRequest\n color?: ApiColor\n }\n type?: \"callout\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n synced_block: {\n synced_from: { block_id: IdRequest; type?: \"block_id\" } | null\n }\n type?: \"synced_block\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n table: { has_column_header?: boolean; has_row_header?: boolean }\n type?: \"table\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n column: {\n // Ratio between 0 and 1 of the width of this column relative to all columns in the list.\n // If not provided, uses an equal width.\n width_ratio?: number\n }\n type?: \"column\"\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n | {\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n }\n\nexport type UpdateBlockParameters = UpdateBlockPathParameters &\n UpdateBlockBodyParameters\n\nexport type UpdateBlockResponse =\n | PartialBlockObjectResponse\n | BlockObjectResponse\n\n/**\n * Update a block\n */\nexport const updateBlock = {\n method: \"patch\",\n pathParams: [\"block_id\"],\n queryParams: [],\n bodyParams: [\n \"archived\",\n \"embed\",\n \"type\",\n \"in_trash\",\n \"bookmark\",\n \"image\",\n \"video\",\n \"pdf\",\n \"file\",\n \"audio\",\n \"code\",\n \"equation\",\n \"divider\",\n \"breadcrumb\",\n \"table_of_contents\",\n \"link_to_page\",\n \"table_row\",\n \"heading_1\",\n \"heading_2\",\n \"heading_3\",\n \"paragraph\",\n \"bulleted_list_item\",\n \"numbered_list_item\",\n \"quote\",\n \"to_do\",\n \"toggle\",\n \"template\",\n \"callout\",\n \"synced_block\",\n \"table\",\n \"column\",\n ],\n\n path: (p: UpdateBlockPathParameters): string => `blocks/${p.block_id}`,\n} as const\n\ntype DeleteBlockPathParameters = {\n block_id: IdRequest\n}\n\nexport type DeleteBlockParameters = DeleteBlockPathParameters\n\nexport type DeleteBlockResponse =\n | PartialBlockObjectResponse\n | BlockObjectResponse\n\n/**\n * Delete a block\n */\nexport const deleteBlock = {\n method: \"delete\",\n pathParams: [\"block_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: DeleteBlockPathParameters): string => `blocks/${p.block_id}`,\n} as const\n\ntype ListBlockChildrenPathParameters = {\n block_id: IdRequest\n}\n\ntype ListBlockChildrenQueryParameters = {\n start_cursor?: string\n page_size?: number\n}\n\nexport type ListBlockChildrenParameters = ListBlockChildrenPathParameters &\n ListBlockChildrenQueryParameters\n\nexport type ListBlockChildrenResponse = {\n type: \"block\"\n block: EmptyObject\n object: \"list\"\n next_cursor: string | null\n has_more: boolean\n results: Array<PartialBlockObjectResponse | BlockObjectResponse>\n}\n\n/**\n * Retrieve block children\n */\nexport const listBlockChildren = {\n method: \"get\",\n pathParams: [\"block_id\"],\n queryParams: [\"start_cursor\", \"page_size\"],\n bodyParams: [],\n\n path: (p: ListBlockChildrenPathParameters): string =>\n `blocks/${p.block_id}/children`,\n} as const\n\ntype AppendBlockChildrenPathParameters = {\n block_id: IdRequest\n}\n\ntype AppendBlockChildrenBodyParameters = {\n children: Array<BlockObjectRequest>\n /** @deprecated Use `position` instead. */\n after?: IdRequest\n position?: ContentPositionSchema\n}\n\nexport type AppendBlockChildrenParameters = AppendBlockChildrenPathParameters &\n AppendBlockChildrenBodyParameters\n\nexport type AppendBlockChildrenResponse = {\n type: \"block\"\n block: EmptyObject\n object: \"list\"\n next_cursor: string | null\n has_more: boolean\n results: Array<PartialBlockObjectResponse | BlockObjectResponse>\n}\n\n/**\n * Append block children\n */\nexport const appendBlockChildren = {\n method: \"patch\",\n pathParams: [\"block_id\"],\n queryParams: [],\n bodyParams: [\"after\", \"children\", \"position\"],\n\n path: (p: AppendBlockChildrenPathParameters): string =>\n `blocks/${p.block_id}/children`,\n} as const\n\ntype GetDataSourcePathParameters = {\n // ID of a Notion data source.\n data_source_id: IdRequest\n}\n\nexport type GetDataSourceParameters = GetDataSourcePathParameters\n\nexport type GetDataSourceResponse =\n | PartialDataSourceObjectResponse\n | DataSourceObjectResponse\n\n/**\n * Retrieve a data source\n */\nexport const getDataSource = {\n method: \"get\",\n pathParams: [\"data_source_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: GetDataSourcePathParameters): string =>\n `data_sources/${p.data_source_id}`,\n} as const\n\ntype UpdateDataSourcePathParameters = {\n // ID of a Notion data source.\n data_source_id: IdRequest\n}\n\ntype UpdateDataSourceBodyParameters = {\n // Title of data source as it appears in Notion.\n title?: Array<RichTextItemRequest>\n // Page icon.\n icon?: PageIconRequest | null\n // The property schema of the data source. The keys are property names or IDs, and the\n // values are property configuration objects. Properties set to null will be removed.\n properties?: Record<\n string,\n | ({\n // The name of the property.\n name?: string\n // The description of the property.\n description?: PropertyDescriptionRequest | null\n } & (\n | {\n // Always `number`\n type?: \"number\"\n number: { format?: NumberFormat }\n }\n | {\n // Always `formula`\n type?: \"formula\"\n formula: { expression?: string }\n }\n | {\n // Always `select`\n type?: \"select\"\n select: {\n options?: Array<\n { color?: SelectColor; description?: string | null } & (\n | { name: string; id?: string }\n | { id: string; name?: string }\n )\n >\n }\n }\n | {\n // Always `multi_select`\n type?: \"multi_select\"\n multi_select: {\n options?: Array<\n { color?: SelectColor; description?: string | null } & (\n | { name: string; id?: string }\n | { id: string; name?: string }\n )\n >\n }\n }\n | {\n // Always `status`\n type?: \"status\"\n status: StatusPropertyConfigUpdateRequest\n }\n | {\n // Always `relation`\n type?: \"relation\"\n relation: { data_source_id: IdRequest } & (\n | {\n // Always `single_property`\n type?: \"single_property\"\n single_property: EmptyObject\n }\n | {\n // Always `dual_property`\n type?: \"dual_property\"\n dual_property: {\n synced_property_id?: string\n synced_property_name?: string\n }\n }\n )\n }\n | {\n // Always `rollup`\n type?: \"rollup\"\n rollup: {\n // The function to use for the rollup, e.g. count, count_values, percent_not_empty, max.\n function: RollupFunction\n } & (\n | { relation_property_name: string; rollup_property_name: string }\n | { relation_property_id: string; rollup_property_name: string }\n | { relation_property_name: string; rollup_property_id: string }\n | { relation_property_id: string; rollup_property_id: string }\n )\n }\n | {\n // Always `unique_id`\n type?: \"unique_id\"\n unique_id: { prefix?: string | null }\n }\n | {\n // Always `title`\n type?: \"title\"\n title: EmptyObject\n }\n | {\n // Always `rich_text`\n type?: \"rich_text\"\n rich_text: EmptyObject\n }\n | {\n // Always `url`\n type?: \"url\"\n url: EmptyObject\n }\n | {\n // Always `people`\n type?: \"people\"\n people: EmptyObject\n }\n | {\n // Always `files`\n type?: \"files\"\n files: EmptyObject\n }\n | {\n // Always `email`\n type?: \"email\"\n email: EmptyObject\n }\n | {\n // Always `phone_number`\n type?: \"phone_number\"\n phone_number: EmptyObject\n }\n | {\n // Always `date`\n type?: \"date\"\n date: EmptyObject\n }\n | {\n // Always `checkbox`\n type?: \"checkbox\"\n checkbox: EmptyObject\n }\n | {\n // Always `created_by`\n type?: \"created_by\"\n created_by: EmptyObject\n }\n | {\n // Always `created_time`\n type?: \"created_time\"\n created_time: EmptyObject\n }\n | {\n // Always `last_edited_by`\n type?: \"last_edited_by\"\n last_edited_by: EmptyObject\n }\n | {\n // Always `last_edited_time`\n type?: \"last_edited_time\"\n last_edited_time: EmptyObject\n }\n | {\n // Always `place`\n type?: \"place\"\n place: EmptyObject\n }\n ))\n | {\n // The new name of the property.\n name: string\n }\n | null\n >\n // Whether the database should be moved to or from the trash. If not provided, the trash\n // status will not be updated.\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n // The parent of the data source, when moving it to a different database. If not\n // provided, the parent will not be updated.\n parent?: ParentOfDataSourceRequest\n}\n\nexport type UpdateDataSourceParameters = UpdateDataSourcePathParameters &\n UpdateDataSourceBodyParameters\n\nexport type UpdateDataSourceResponse =\n | PartialDataSourceObjectResponse\n | DataSourceObjectResponse\n\n/**\n * Update a data source\n */\nexport const updateDataSource = {\n method: \"patch\",\n pathParams: [\"data_source_id\"],\n queryParams: [],\n bodyParams: [\"archived\", \"title\", \"icon\", \"properties\", \"in_trash\", \"parent\"],\n\n path: (p: UpdateDataSourcePathParameters): string =>\n `data_sources/${p.data_source_id}`,\n} as const\n\ntype QueryDataSourcePathParameters = {\n data_source_id: IdRequest\n}\n\ntype QueryDataSourceQueryParameters = {\n filter_properties?: Array<string>\n}\n\ntype QueryDataSourceBodyParameters = {\n sorts?: Array<\n | { property: string; direction: \"ascending\" | \"descending\" }\n | {\n timestamp: \"created_time\" | \"last_edited_time\"\n direction: \"ascending\" | \"descending\"\n }\n >\n filter?:\n | { or: GroupFilterOperatorArray }\n | { and: GroupFilterOperatorArray }\n | PropertyFilter\n | TimestampFilter\n start_cursor?: string\n page_size?: number\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n // Optionally filter the results to only include pages or data sources. Regular, non-wiki\n // databases only support page children. The default behavior is no result type\n // filtering, in other words, returning both pages and data sources for wikis.\n result_type?: \"page\" | \"data_source\"\n}\n\nexport type QueryDataSourceParameters = QueryDataSourcePathParameters &\n QueryDataSourceQueryParameters &\n QueryDataSourceBodyParameters\n\nexport type QueryDataSourceResponse = {\n type: \"page_or_data_source\"\n page_or_data_source: EmptyObject\n object: \"list\"\n next_cursor: string | null\n has_more: boolean\n results: Array<\n | PageObjectResponse\n | PartialPageObjectResponse\n | PartialDataSourceObjectResponse\n | DataSourceObjectResponse\n >\n}\n\n/**\n * Query a data source\n */\nexport const queryDataSource = {\n method: \"post\",\n pathParams: [\"data_source_id\"],\n queryParams: [\"filter_properties\"],\n bodyParams: [\n \"archived\",\n \"sorts\",\n \"filter\",\n \"start_cursor\",\n \"page_size\",\n \"in_trash\",\n \"result_type\",\n ],\n\n path: (p: QueryDataSourcePathParameters): string =>\n `data_sources/${p.data_source_id}/query`,\n} as const\n\ntype CreateDataSourceBodyParameters = {\n // An object specifying the parent of the new data source to be created.\n parent: ParentOfDataSourceRequest\n // Property schema of data source.\n properties: Record<string, PropertyConfigurationRequest>\n // Title of data source as it appears in Notion.\n title?: Array<RichTextItemRequest>\n // Page icon.\n icon?: PageIconRequest | null\n}\n\nexport type CreateDataSourceParameters = CreateDataSourceBodyParameters\n\nexport type CreateDataSourceResponse =\n | PartialDataSourceObjectResponse\n | DataSourceObjectResponse\n\n/**\n * Create a data source\n */\nexport const createDataSource = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\"parent\", \"properties\", \"title\", \"icon\"],\n\n path: (): string => `data_sources`,\n} as const\n\ntype ListDataSourceTemplatesPathParameters = {\n // ID of a Notion data source.\n data_source_id: IdRequest\n}\n\ntype ListDataSourceTemplatesQueryParameters = {\n // Filter templates by name (case-insensitive substring match).\n name?: string\n // If supplied, this endpoint will return a page of results starting after the cursor\n // provided. If not supplied, this endpoint will return the first page of results.\n start_cursor?: string\n // The number of items from the full list desired in the response. Maximum: 100\n page_size?: number\n}\n\nexport type ListDataSourceTemplatesParameters =\n ListDataSourceTemplatesPathParameters & ListDataSourceTemplatesQueryParameters\n\nexport type ListDataSourceTemplatesResponse = {\n // Array of templates available in this data source.\n templates: Array<{\n // ID of the template page.\n id: IdResponse\n // Name of the template.\n name: string\n // Whether this template is the default template for the data source.\n is_default: boolean\n }>\n // Whether there are more templates available beyond this page.\n has_more: boolean\n // Cursor to use for the next page of results. Null if there are no more results.\n next_cursor: IdResponse | null\n}\n\n/**\n * List templates in a data source\n */\nexport const listDataSourceTemplates = {\n method: \"get\",\n pathParams: [\"data_source_id\"],\n queryParams: [\"name\", \"start_cursor\", \"page_size\"],\n bodyParams: [],\n\n path: (p: ListDataSourceTemplatesPathParameters): string =>\n `data_sources/${p.data_source_id}/templates`,\n} as const\n\ntype GetDatabasePathParameters = {\n // ID of a Notion database, a container for one or more data sources.\n database_id: IdRequest\n}\n\nexport type GetDatabaseParameters = GetDatabasePathParameters\n\nexport type GetDatabaseResponse =\n | PartialDatabaseObjectResponse\n | DatabaseObjectResponse\n\n/**\n * Retrieve a database\n */\nexport const getDatabase = {\n method: \"get\",\n pathParams: [\"database_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: GetDatabasePathParameters): string => `databases/${p.database_id}`,\n} as const\n\ntype UpdateDatabasePathParameters = {\n // ID of a Notion database, a container for one or more data sources.\n database_id: IdRequest\n}\n\ntype UpdateDatabaseBodyParameters = {\n // The parent page or workspace to move the database to. If not provided, the database\n // will not be moved.\n parent?: {\n // The type of parent.\n type: \"page_id\" | \"workspace\"\n } & (\n | {\n // Always `page_id`\n type: \"page_id\"\n page_id: IdRequest\n }\n | {\n // Always `workspace`\n type: \"workspace\"\n // Always `true`\n workspace: true\n }\n )\n // The updated title of the database, if any. If not provided, the title will not be\n // updated.\n title?: Array<RichTextItemRequest>\n // The updated description of the database, if any. If not provided, the description will\n // not be updated.\n description?: Array<RichTextItemRequest>\n // Whether the database should be displayed inline in the parent page. If not provided,\n // the inline status will not be updated.\n is_inline?: boolean\n // The updated icon for the database, if any. If not provided, the icon will not be\n // updated.\n icon?: PageIconRequest\n // The updated cover image for the database, if any. If not provided, the cover will not\n // be updated.\n cover?: PageCoverRequest\n // Whether the database should be moved to or from the trash. If not provided, the trash\n // status will not be updated.\n in_trash?: boolean\n /** @deprecated Use `in_trash` instead. */\n archived?: boolean\n // Whether the database should be locked from editing in the Notion app UI. If not\n // provided, the locked state will not be updated.\n is_locked?: boolean\n}\n\nexport type UpdateDatabaseParameters = UpdateDatabasePathParameters &\n UpdateDatabaseBodyParameters\n\nexport type UpdateDatabaseResponse =\n | PartialDatabaseObjectResponse\n | DatabaseObjectResponse\n\n/**\n * Update a database\n */\nexport const updateDatabase = {\n method: \"patch\",\n pathParams: [\"database_id\"],\n queryParams: [],\n bodyParams: [\n \"parent\",\n \"title\",\n \"description\",\n \"is_inline\",\n \"icon\",\n \"cover\",\n \"in_trash\",\n \"is_locked\",\n ],\n\n path: (p: UpdateDatabasePathParameters): string =>\n `databases/${p.database_id}`,\n} as const\n\ntype CreateDatabaseBodyParameters = {\n // The parent page or workspace where the database will be created.\n parent: {\n // The type of parent.\n type: \"page_id\" | \"workspace\"\n } & (\n | {\n // Always `page_id`\n type: \"page_id\"\n page_id: IdRequest\n }\n | {\n // Always `workspace`\n type: \"workspace\"\n // Always `true`\n workspace: true\n }\n )\n // The title of the database.\n title?: Array<RichTextItemRequest>\n // The description of the database.\n description?: Array<RichTextItemRequest>\n // Whether the database should be displayed inline in the parent page. Defaults to false.\n is_inline?: boolean\n // Initial data source configuration for the database.\n initial_data_source?: InitialDataSourceRequest\n // The icon for the database.\n icon?: PageIconRequest\n // The cover image for the database.\n cover?: PageCoverRequest\n}\n\nexport type CreateDatabaseParameters = CreateDatabaseBodyParameters\n\nexport type CreateDatabaseResponse =\n | PartialDatabaseObjectResponse\n | DatabaseObjectResponse\n\n/**\n * Create a database\n */\nexport const createDatabase = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\n \"parent\",\n \"title\",\n \"description\",\n \"is_inline\",\n \"initial_data_source\",\n \"icon\",\n \"cover\",\n ],\n\n path: (): string => `databases`,\n} as const\n\ntype SearchBodyParameters = {\n sort?: {\n timestamp: \"last_edited_time\"\n direction: \"ascending\" | \"descending\"\n }\n query?: string\n start_cursor?: string\n page_size?: number\n filter?: { property: \"object\"; value: \"page\" | \"data_source\" }\n}\n\nexport type SearchParameters = SearchBodyParameters\n\nexport type SearchResponse = {\n type: \"page_or_data_source\"\n page_or_data_source: EmptyObject\n object: \"list\"\n next_cursor: string | null\n has_more: boolean\n results: Array<\n | PageObjectResponse\n | PartialPageObjectResponse\n | PartialDataSourceObjectResponse\n | DataSourceObjectResponse\n >\n}\n\n/**\n * Search by title\n */\nexport const search = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\"sort\", \"query\", \"start_cursor\", \"page_size\", \"filter\"],\n\n path: (): string => `search`,\n} as const\n\ntype CreateCommentBodyParameters = {\n // An array of rich text objects that represent the content of the comment.\n rich_text: Array<RichTextItemRequest>\n // An array of files to attach to the comment. Maximum of 3 allowed.\n attachments?: Array<{\n // ID of a FileUpload object that has the status `uploaded`.\n file_upload_id: string\n // Always `file_upload`\n type?: \"file_upload\"\n }>\n // Display name for the comment.\n display_name?:\n | {\n // Always `integration`\n type: \"integration\"\n }\n | {\n // Always `user`\n type: \"user\"\n }\n | {\n // Always `custom`\n type: \"custom\"\n custom: {\n // The custom display name to use\n name: string\n }\n }\n} & (\n | {\n // The parent of the comment. This can be a page or a block.\n parent:\n | {\n // The ID of the parent page (with or without dashes), for example,\n // 195de9221179449fab8075a27c979105\n page_id: IdRequest\n // Always `page_id`\n type?: \"page_id\"\n }\n | {\n // The ID of the parent block (with or without dashes), for example,\n // 195de9221179449fab8075a27c979105\n block_id: IdRequest\n // Always `block_id`\n type?: \"block_id\"\n }\n }\n | {\n // The ID of the discussion to comment on.\n discussion_id: IdRequest\n }\n)\n\nexport type CreateCommentParameters = CreateCommentBodyParameters\n\nexport type CreateCommentResponse =\n | PartialCommentObjectResponse\n | CommentObjectResponse\n\n/**\n * Create a comment\n */\nexport const createComment = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\n \"rich_text\",\n \"attachments\",\n \"display_name\",\n \"parent\",\n \"discussion_id\",\n ],\n\n path: (): string => `comments`,\n} as const\n\ntype ListCommentsQueryParameters = {\n // Identifier for a Notion block or page.\n block_id: IdRequest\n // If supplied, this endpoint will return a page of results starting after the cursor\n // provided. If not supplied, this endpoint will return the first page of results.\n start_cursor?: string\n // The number of items from the full list desired in the response. Maximum: 100\n page_size?: number\n}\n\nexport type ListCommentsParameters = ListCommentsQueryParameters\n\nexport type ListCommentsResponse = {\n // Always `list`\n object: \"list\"\n next_cursor: IdResponse | null\n has_more: boolean\n results: Array<CommentObjectResponse>\n // Always `comment`\n type: \"comment\"\n comment: EmptyObject\n}\n\n/**\n * List comments\n */\nexport const listComments = {\n method: \"get\",\n pathParams: [],\n queryParams: [\"block_id\", \"start_cursor\", \"page_size\"],\n bodyParams: [],\n\n path: (): string => `comments`,\n} as const\n\ntype GetCommentPathParameters = {\n // The ID of the comment to retrieve.\n comment_id: IdRequest\n}\n\nexport type GetCommentParameters = GetCommentPathParameters\n\nexport type GetCommentResponse =\n | PartialCommentObjectResponse\n | CommentObjectResponse\n\n/**\n * Retrieve a comment\n */\nexport const getComment = {\n method: \"get\",\n pathParams: [\"comment_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: GetCommentPathParameters): string => `comments/${p.comment_id}`,\n} as const\n\ntype CreateFileUploadBodyParameters = {\n // How the file is being sent. Use `multi_part` for files larger than 20MB. Use\n // `external_url` for files that are temporarily hosted publicly elsewhere. Default is\n // `single_part`.\n mode?: \"single_part\" | \"multi_part\" | \"external_url\"\n // Name of the file to be created. Required when `mode` is `multi_part`. Otherwise\n // optional, and used to override the filename. Must include an extension, or have one\n // inferred from the `content_type` parameter.\n filename?: string\n // MIME type of the file to be created. Recommended when sending the file in multiple\n // parts. Must match the content type of the file that's sent, and the extension of the\n // `filename` parameter if any.\n content_type?: string\n // When `mode` is `multi_part`, the number of parts you are uploading. This must match\n // the number of parts as well as the final `part_number` you send.\n number_of_parts?: number\n // When `mode` is `external_url`, provide the HTTPS URL of a publicly accessible file to\n // import into your workspace.\n external_url?: string\n}\n\nexport type CreateFileUploadParameters = CreateFileUploadBodyParameters\n\nexport type CreateFileUploadResponse = FileUploadObjectResponse\n\n/**\n * Create a file upload\n */\nexport const createFileUpload = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\n \"mode\",\n \"filename\",\n \"content_type\",\n \"number_of_parts\",\n \"external_url\",\n ],\n\n path: (): string => `file_uploads`,\n} as const\n\ntype ListFileUploadsQueryParameters = {\n // If supplied, the endpoint will return file uploads with the specified status.\n status?: \"pending\" | \"uploaded\" | \"expired\" | \"failed\"\n // If supplied, this endpoint will return a page of results starting after the cursor\n // provided. If not supplied, this endpoint will return the first page of results.\n start_cursor?: string\n // The number of items from the full list desired in the response. Maximum: 100\n page_size?: number\n}\n\nexport type ListFileUploadsParameters = ListFileUploadsQueryParameters\n\nexport type ListFileUploadsResponse = {\n // Always `list`\n object: \"list\"\n next_cursor: IdResponse | null\n has_more: boolean\n results: Array<FileUploadObjectResponse>\n // Always `file_upload`\n type: \"file_upload\"\n file_upload: EmptyObject\n}\n\n/**\n * List file uploads\n */\nexport const listFileUploads = {\n method: \"get\",\n pathParams: [],\n queryParams: [\"status\", \"start_cursor\", \"page_size\"],\n bodyParams: [],\n\n path: (): string => `file_uploads`,\n} as const\n\ntype SendFileUploadPathParameters = {\n // Identifier for a Notion file upload object.\n file_upload_id: IdRequest\n}\n\ntype SendFileUploadFormDataParameters = {\n file: { filename?: string; data: string | Blob }\n part_number?: string\n}\n\nexport type SendFileUploadParameters = SendFileUploadPathParameters &\n SendFileUploadFormDataParameters\n\nexport type SendFileUploadResponse = FileUploadObjectResponse\n\n/**\n * Upload a file\n */\nexport const sendFileUpload = {\n method: \"post\",\n pathParams: [\"file_upload_id\"],\n queryParams: [],\n bodyParams: [],\n formDataParams: [\"file\", \"part_number\"],\n path: (p: SendFileUploadPathParameters): string =>\n `file_uploads/${p.file_upload_id}/send`,\n} as const\n\ntype CompleteFileUploadPathParameters = {\n // Identifier for a Notion file upload object.\n file_upload_id: IdRequest\n}\n\nexport type CompleteFileUploadParameters = CompleteFileUploadPathParameters\n\nexport type CompleteFileUploadResponse = FileUploadObjectResponse\n\n/**\n * Complete a multi-part file upload\n */\nexport const completeFileUpload = {\n method: \"post\",\n pathParams: [\"file_upload_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: CompleteFileUploadPathParameters): string =>\n `file_uploads/${p.file_upload_id}/complete`,\n} as const\n\ntype GetFileUploadPathParameters = {\n // Identifier for a Notion file upload object.\n file_upload_id: IdRequest\n}\n\nexport type GetFileUploadParameters = GetFileUploadPathParameters\n\nexport type GetFileUploadResponse = FileUploadObjectResponse\n\n/**\n * Retrieve a file upload\n */\nexport const getFileUpload = {\n method: \"get\",\n pathParams: [\"file_upload_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: GetFileUploadPathParameters): string =>\n `file_uploads/${p.file_upload_id}`,\n} as const\n\ntype ListDatabaseViewsQueryParameters = {\n // ID of a Notion database (collection view block) to list views for. At least one of\n // database_id or data_source_id is required.\n database_id?: IdRequest\n // ID of a data source (collection) to list all views for, including linked views across\n // the workspace. At least one of database_id or data_source_id is required.\n data_source_id?: IdRequest\n // If supplied, this endpoint will return a page of results starting after the cursor\n // provided. If not supplied, this endpoint will return the first page of results.\n start_cursor?: string\n // The number of items from the full list desired in the response. Maximum: 100\n page_size?: number\n}\n\nexport type ListDatabaseViewsParameters = ListDatabaseViewsQueryParameters\n\nexport type ListDatabaseViewsResponse = {\n // Always `list`\n object: \"list\"\n next_cursor: IdResponse | null\n has_more: boolean\n results: Array<DataSourceViewReferenceResponse>\n // Always `view`\n type: \"view\"\n view: EmptyObject\n}\n\n/**\n * List views\n */\nexport const listDatabaseViews = {\n method: \"get\",\n pathParams: [],\n queryParams: [\"database_id\", \"data_source_id\", \"start_cursor\", \"page_size\"],\n bodyParams: [],\n\n path: (): string => `views`,\n} as const\n\ntype CreateViewBodyParameters = CreateViewRequest\n\nexport type CreateViewParameters = CreateViewBodyParameters\n\nexport type CreateViewResponse =\n | PartialDataSourceViewObjectResponse\n | DataSourceViewObjectResponse\n\n/**\n * Create a view\n */\nexport const createView = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [],\n\n path: (): string => `views`,\n} as const\n\ntype GetViewPathParameters = {\n // ID of a Notion view.\n view_id: IdRequest\n}\n\nexport type GetViewParameters = GetViewPathParameters\n\nexport type GetViewResponse =\n | PartialDataSourceViewObjectResponse\n | DataSourceViewObjectResponse\n\n/**\n * Retrieve a view\n */\nexport const getView = {\n method: \"get\",\n pathParams: [\"view_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: GetViewPathParameters): string => `views/${p.view_id}`,\n} as const\n\ntype UpdateViewPathParameters = {\n // ID of a Notion view.\n view_id: IdRequest\n}\n\ntype UpdateViewBodyParameters = UpdateViewRequest\n\nexport type UpdateViewParameters = UpdateViewPathParameters &\n UpdateViewBodyParameters\n\nexport type UpdateViewResponse =\n | PartialDataSourceViewObjectResponse\n | DataSourceViewObjectResponse\n\n/**\n * Update a view\n */\nexport const updateView = {\n method: \"patch\",\n pathParams: [\"view_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: UpdateViewPathParameters): string => `views/${p.view_id}`,\n} as const\n\ntype DeleteViewPathParameters = {\n // The ID of the view to delete.\n view_id: IdRequest\n}\n\nexport type DeleteViewParameters = DeleteViewPathParameters\n\nexport type DeleteViewResponse = PartialDataSourceViewObjectResponse\n\n/**\n * Delete a view\n */\nexport const deleteView = {\n method: \"delete\",\n pathParams: [\"view_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: DeleteViewPathParameters): string => `views/${p.view_id}`,\n} as const\n\ntype CreateViewQueryPathParameters = {\n // The ID of the view.\n view_id: IdRequest\n}\n\ntype CreateViewQueryBodyParameters = CreateViewQueryRequest\n\nexport type CreateViewQueryParameters = CreateViewQueryPathParameters &\n CreateViewQueryBodyParameters\n\nexport type CreateViewQueryResponse = ViewQueryResponse\n\n/**\n * Create a view query\n */\nexport const createViewQuery = {\n method: \"post\",\n pathParams: [\"view_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: CreateViewQueryPathParameters): string =>\n `views/${p.view_id}/queries`,\n} as const\n\ntype GetViewQueryResultsPathParameters = {\n // The ID of the view.\n view_id: IdRequest\n // The ID of the query.\n query_id: IdRequest\n}\n\ntype GetViewQueryResultsQueryParameters = {\n // If supplied, this endpoint will return a page of results starting after the cursor\n // provided.\n start_cursor?: string\n // The number of results to return per page. Maximum: 100\n page_size?: number\n}\n\nexport type GetViewQueryResultsParameters = GetViewQueryResultsPathParameters &\n GetViewQueryResultsQueryParameters\n\nexport type GetViewQueryResultsResponse = {\n // Always `list`\n object: \"list\"\n next_cursor: IdResponse | null\n has_more: boolean\n results: Array<PartialPageObjectResponse>\n // Always `page`\n type: \"page\"\n page: EmptyObject\n}\n\n/**\n * Get view query results\n */\nexport const getViewQueryResults = {\n method: \"get\",\n pathParams: [\"view_id\", \"query_id\"],\n queryParams: [\"start_cursor\", \"page_size\"],\n bodyParams: [],\n\n path: (p: GetViewQueryResultsPathParameters): string =>\n `views/${p.view_id}/queries/${p.query_id}`,\n} as const\n\ntype DeleteViewQueryPathParameters = {\n // The ID of the view.\n view_id: IdRequest\n // The ID of the query.\n query_id: IdRequest\n}\n\nexport type DeleteViewQueryParameters = DeleteViewQueryPathParameters\n\nexport type DeleteViewQueryResponse = DeletedViewQueryResponse\n\n/**\n * Delete a view query\n */\nexport const deleteViewQuery = {\n method: \"delete\",\n pathParams: [\"view_id\", \"query_id\"],\n queryParams: [],\n bodyParams: [],\n\n path: (p: DeleteViewQueryPathParameters): string =>\n `views/${p.view_id}/queries/${p.query_id}`,\n} as const\n\ntype OauthTokenBodyParameters =\n | {\n grant_type: \"authorization_code\"\n code: string\n redirect_uri?: string\n external_account?: { key: string; name: string }\n }\n | { grant_type: \"refresh_token\"; refresh_token: string }\n\nexport type OauthTokenParameters = OauthTokenBodyParameters\n\nexport type OauthTokenResponse = {\n access_token: string\n token_type: \"bearer\"\n refresh_token: string | null\n bot_id: string\n workspace_icon: string | null\n workspace_name: string | null\n workspace_id: string\n owner:\n | {\n type: \"user\"\n user:\n | {\n type: \"person\"\n person: { email: string }\n name: string | null\n avatar_url: string | null\n id: IdRequest\n object: \"user\"\n }\n | PartialUserObjectResponse\n }\n | { type: \"workspace\"; workspace: true }\n duplicated_template_id: string | null\n request_id?: string\n}\n\n/**\n * Exchange an authorization code for an access and refresh token\n */\nexport const oauthToken = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\n \"grant_type\",\n \"code\",\n \"redirect_uri\",\n \"external_account\",\n \"refresh_token\",\n ],\n\n path: (): string => `oauth/token`,\n} as const\n\ntype OauthRevokeBodyParameters = { token: string }\n\nexport type OauthRevokeParameters = OauthRevokeBodyParameters\n\nexport type OauthRevokeResponse = { request_id?: string }\n\n/**\n * Revoke a token\n */\nexport const oauthRevoke = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\"token\"],\n\n path: (): string => `oauth/revoke`,\n} as const\n\ntype OauthIntrospectBodyParameters = { token: string }\n\nexport type OauthIntrospectParameters = OauthIntrospectBodyParameters\n\nexport type OauthIntrospectResponse = {\n active: boolean\n scope?: string\n iat?: number\n request_id?: string\n}\n\n/**\n * Introspect a token\n */\nexport const oauthIntrospect = {\n method: \"post\",\n pathParams: [],\n queryParams: [],\n bodyParams: [\"token\"],\n\n path: (): string => `oauth/introspect`,\n} as const\n"]}
|