@notionhq/client
Version:
A simple and easy to use client for the Notion API
1,722 lines • 58.8 kB
TypeScript
type AgentIdParentForBlockBasedObjectResponse = {
type: "agent_id";
agent_id: IdResponse;
};
type AnnotationResponse = {
bold: boolean;
italic: boolean;
strikethrough: boolean;
underline: boolean;
code: boolean;
color: ApiColor;
};
/**
* One of: `default`, `gray`, `brown`, `orange`, `yellow`, `green`, `blue`, `purple`,
* `pink`, `red`, `default_background`, `gray_background`, `brown_background`,
* `orange_background`, `yellow_background`, `green_background`, `blue_background`,
* `purple_background`, `pink_background`, `red_background`
*/
export type ApiColor = "default" | "gray" | "brown" | "orange" | "yellow" | "green" | "blue" | "purple" | "pink" | "red" | "default_background" | "gray_background" | "brown_background" | "orange_background" | "yellow_background" | "green_background" | "blue_background" | "purple_background" | "pink_background" | "red_background";
type BlockIdParentForBlockBasedObjectResponse = {
type: "block_id";
block_id: IdResponse;
};
type BoardViewConfigRequest = {
type: "board";
group_by: GroupByConfigRequest;
sub_group_by?: GroupByConfigRequest | null;
properties?: Array<ViewPropertyConfigRequest> | null;
cover?: CoverConfigRequest | null;
cover_size?: "small" | "medium" | "large" | null;
cover_aspect?: "contain" | "cover" | null;
card_layout?: "list" | "compact" | null;
};
type BotInfoResponse = {
owner: {
type: "user";
user: {
id: IdResponse;
object: "user";
name: string | null;
avatar_url: string | null;
type: "person";
person: {
email?: string;
};
} | PartialUserObjectResponse;
} | {
type: "workspace";
workspace: true;
};
workspace_id: string;
workspace_limits: {
max_file_upload_size_in_bytes: number;
};
workspace_name: string | null;
};
export type BotUserObjectResponse = {
type: "bot";
bot: EmptyObject | BotInfoResponse;
};
type ButtonPropertyConfigurationRequest = {
type?: "button";
button: EmptyObject;
};
type CalendarViewConfigRequest = {
type: "calendar";
date_property_id: string;
properties?: Array<ViewPropertyConfigRequest> | null;
view_range?: "week" | "month" | null;
show_weekends?: boolean | null;
};
type ChartAggregationRequest = {
aggregator: "count" | "count_values" | "sum" | "average" | "median" | "min" | "max" | "range" | "unique" | "empty" | "not_empty" | "percent_empty" | "percent_not_empty" | "checked" | "unchecked" | "percent_checked" | "percent_unchecked" | "earliest_date" | "latest_date" | "date_range";
property_id?: string;
};
type ChartReferenceLineRequest = {
value: number;
label: string;
color: "gray" | "lightgray" | "brown" | "yellow" | "orange" | "green" | "blue" | "purple" | "pink" | "red";
dash_style: "solid" | "dash";
id?: string;
};
type ChartViewConfigRequest = {
type: "chart";
chart_type: "column" | "bar" | "line" | "donut" | "number";
x_axis?: GroupByConfigRequest | null;
y_axis?: ChartAggregationRequest | null;
x_axis_property_id?: string | null;
y_axis_property_id?: string | null;
value?: ChartAggregationRequest | null;
sort?: "manual" | "x_ascending" | "x_descending" | "y_ascending" | "y_descending" | null;
color_theme?: "gray" | "blue" | "yellow" | "green" | "purple" | "teal" | "orange" | "pink" | "red" | "auto" | "colorful" | null;
height?: "small" | "medium" | "large" | "extra_large" | null;
hide_empty_groups?: boolean | null;
legend_position?: "off" | "bottom" | "side" | null;
show_data_labels?: boolean | null;
axis_labels?: "none" | "x_axis" | "y_axis" | "both" | null;
grid_lines?: "none" | "horizontal" | "vertical" | "both" | null;
cumulative?: boolean | null;
smooth_line?: boolean | null;
hide_line_fill_area?: boolean | null;
group_style?: "normal" | "percent" | "side_by_side" | null;
y_axis_min?: number | null;
y_axis_max?: number | null;
donut_labels?: "none" | "value" | "name" | "name_and_value" | null;
hide_title?: boolean | null;
stack_by?: GroupByConfigRequest | null;
reference_lines?: Array<ChartReferenceLineRequest> | null;
caption?: string | null;
color_by_value?: boolean | null;
};
type CheckboxGroupByConfigRequest = {
type: "checkbox";
property_id: string;
sort: GroupSortRequest;
hide_empty_groups?: boolean;
};
type CheckboxPropertyConfigurationRequest = {
type?: "checkbox";
checkbox: EmptyObject;
};
type CheckboxPropertyFilter = {
equals: boolean;
} | {
does_not_equal: boolean;
};
export type ContentPositionSchema = {
type: "after_block";
after_block: {
id: IdRequest;
};
} | {
type: "start";
} | {
type: "end";
};
export type ContentWithRichTextColorAndIconUpdateRequest = {
rich_text?: Array<RichTextItemRequest>;
icon?: PageIconRequest;
color?: ApiColor;
};
type CoverConfigRequest = {
type: "page_cover" | "page_content" | "property";
property_id?: string;
};
type CreateDatabaseForViewRequest = {
parent: {
type: "page_id";
page_id: IdRequest;
};
position?: {
type: "after_block";
block_id: IdRequest;
};
};
export type CreateViewQueryRequest = {
page_size?: number;
};
export type CreateViewRequest = {
data_source_id: IdRequest;
name: string;
type: ViewTypeRequest;
database_id?: IdRequest;
view_id?: IdRequest;
filter?: ViewFilterRequest;
sorts?: ViewSortsRequest;
quick_filters?: Record<string, QuickFilterConditionRequest>;
create_database?: CreateDatabaseForViewRequest;
configuration?: ViewConfigRequest;
position?: ViewPositionRequest;
placement?: WidgetPlacementRequest;
};
type CreatedByPropertyConfigurationRequest = {
type?: "created_by";
created_by: EmptyObject;
};
type CreatedTimePropertyConfigurationRequest = {
type?: "created_time";
created_time: EmptyObject;
};
type CustomEmojiPageIconResponse = {
type: "custom_emoji";
custom_emoji: CustomEmojiResponse;
};
export type CustomEmojiResponse = {
id: IdResponse;
name: string;
url: string;
};
export type DataSourceParentResponse = {
type: "data_source_id";
data_source_id: IdResponse;
database_id: IdResponse;
};
export type DataSourceViewReferenceResponse = {
object: "view";
id: IdResponse;
};
export type DatabaseParentResponse = {
type: "database_id";
database_id: IdResponse;
};
type DateGroupByConfigRequest = {
type: "date" | "created_time" | "last_edited_time";
property_id: string;
group_by: "relative" | "day" | "week" | "month" | "year";
sort: GroupSortRequest;
hide_empty_groups?: boolean;
start_day_of_week?: 0 | 1;
};
type DateOrRelativeDate = string | RelativeDateValue;
type DatePropertyConfigurationRequest = {
type?: "date";
date: EmptyObject;
};
type DatePropertyFilter = {
equals: DateOrRelativeDate;
} | {
before: DateOrRelativeDate;
} | {
after: DateOrRelativeDate;
} | {
on_or_before: DateOrRelativeDate;
} | {
on_or_after: DateOrRelativeDate;
} | {
this_week: EmptyObject;
} | {
past_week: EmptyObject;
} | {
past_month: EmptyObject;
} | {
past_year: EmptyObject;
} | {
next_week: EmptyObject;
} | {
next_month: EmptyObject;
} | {
next_year: EmptyObject;
} | ExistencePropertyFilter;
export type DateResponse = {
start: string;
end: string | null;
time_zone: TimeZoneRequest | null;
};
type EmailPropertyConfigurationRequest = {
type?: "email";
email: EmptyObject;
};
type EmojiPageIconResponse = {
type: "emoji";
emoji: EmojiRequest;
};
type EmojiRequest = string;
export type EmptyObject = Record<string, never>;
export type EquationRichTextItemResponse = {
type: "equation";
equation: {
expression: string;
};
};
type ExistencePropertyFilter = {
is_empty: true;
} | {
is_not_empty: true;
};
type ExternalPageCoverRequest = {
type?: "external";
external: {
url: string;
};
};
type ExternalPageCoverResponse = {
type: "external";
external: {
url: string;
};
};
type ExternalPageIconResponse = {
type: "external";
external: {
url: string;
};
};
type FilePageCoverResponse = {
type: "file";
file: InternalFileResponse;
};
type FilePageIconResponse = {
type: "file";
file: InternalFileResponse;
};
type FileUploadPageCoverRequest = {
type?: "file_upload";
file_upload: {
id: string;
};
};
export type FileUploadWithOptionalNameRequest = {
file_upload: FileUploadIdRequest;
type?: "file_upload";
name?: StringRequest;
};
type FilesPropertyConfigurationRequest = {
type?: "files";
files: EmptyObject;
};
type FormViewConfigRequest = {
type: "form";
is_form_closed?: boolean | null;
anonymous_submissions?: boolean | null;
submission_permissions?: "none" | "comment_only" | "reader" | "read_and_write" | "editor" | null;
};
type FormulaCheckboxSubGroupByRequest = {
type: "checkbox";
sort: GroupSortRequest;
};
type FormulaDateSubGroupByRequest = {
type: "date";
group_by: "relative" | "day" | "week" | "month" | "year";
sort: GroupSortRequest;
start_day_of_week?: 0 | 1;
};
type FormulaGroupByConfigRequest = {
type: "formula";
property_id: string;
group_by: FormulaDateSubGroupByRequest | FormulaTextSubGroupByRequest | FormulaNumberSubGroupByRequest | FormulaCheckboxSubGroupByRequest;
hide_empty_groups?: boolean;
};
type FormulaNumberSubGroupByRequest = {
type: "number";
sort: GroupSortRequest;
range_start?: number;
range_end?: number;
range_size?: number;
};
type FormulaPropertyConfigurationRequest = {
type?: "formula";
formula: {
expression?: string;
};
};
type FormulaPropertyFilter = {
string: TextPropertyFilter;
} | {
checkbox: CheckboxPropertyFilter;
} | {
number: NumberPropertyFilter;
} | {
date: DatePropertyFilter;
};
type FormulaTextSubGroupByRequest = {
type: "text";
group_by: "exact" | "alphabet_prefix";
sort: GroupSortRequest;
};
type GalleryViewConfigRequest = {
type: "gallery";
properties?: Array<ViewPropertyConfigRequest> | null;
cover?: CoverConfigRequest | null;
cover_size?: "small" | "medium" | "large" | null;
cover_aspect?: "contain" | "cover" | null;
card_layout?: "list" | "compact" | null;
};
/**
* Group-by configuration based on property type.
*/
type GroupByConfigRequest = SelectGroupByConfigRequest | StatusGroupByConfigRequest | PersonGroupByConfigRequest | RelationGroupByConfigRequest | DateGroupByConfigRequest | TextGroupByConfigRequest | NumberGroupByConfigRequest | CheckboxGroupByConfigRequest | FormulaGroupByConfigRequest;
export type GroupFilterOperatorArray = Array<PropertyOrTimestampFilter | {
or: PropertyOrTimestampFilterArray;
} | {
and: PropertyOrTimestampFilterArray;
}>;
export type GroupObjectRequest = {
id: IdRequest;
name?: string | null;
object?: "group";
};
export type GroupObjectResponse = {
id: IdResponse;
object: "group";
name: string | null;
};
type GroupSortRequest = {
type: "manual" | "ascending" | "descending";
};
type IconPageIconResponse = {
type: "icon";
icon: NoticonIconResponse;
};
export type IdRequest = string;
export type IdResponse = string;
export type InitialDataSourceRequest = {
properties?: Record<string, PropertyConfigurationRequest>;
};
type InternalFileRequest = {
url: string;
expiry_time?: string;
};
export type InternalFileResponse = {
url: string;
expiry_time: string;
};
export type InternalOrExternalFileWithNameRequest = {
file: InternalFileRequest;
name: StringRequest;
type?: "file";
} | {
external: ExternalFileRequest;
name: StringRequest;
type?: "external";
};
type LastEditedByPropertyConfigurationRequest = {
type?: "last_edited_by";
last_edited_by: EmptyObject;
};
type LastEditedTimePropertyConfigurationRequest = {
type?: "last_edited_time";
last_edited_time: EmptyObject;
};
type LastVisitedTimePropertyConfigurationRequest = {
type?: "last_visited_time";
last_visited_time: EmptyObject;
};
type LinkMentionResponse = {
href: string;
title?: string;
description?: string;
link_author?: string;
link_provider?: string;
thumbnail_url?: string;
icon_url?: string;
iframe_url?: string;
height?: number;
padding?: number;
padding_top?: number;
};
type LinkPreviewMentionResponse = {
url: string;
};
type ListViewConfigRequest = {
type: "list";
properties?: Array<ViewPropertyConfigRequest> | null;
};
type LocationPropertyConfigurationRequest = {
type?: "location";
location: EmptyObject;
};
type MapViewConfigRequest = {
type: "map";
height?: "small" | "medium" | "large" | "extra_large" | null;
map_by?: string | null;
properties?: Array<ViewPropertyConfigRequest> | null;
};
export type MentionRichTextItemResponse = {
type: "mention";
mention: {
type: "user";
user: UserValueResponse;
} | {
type: "date";
date: DateResponse;
} | {
type: "link_preview";
link_preview: LinkPreviewMentionResponse;
} | {
type: "link_mention";
link_mention: LinkMentionResponse;
} | {
type: "page";
page: {
id: IdResponse;
};
} | {
type: "database";
database: {
id: IdResponse;
};
} | {
type: "template_mention";
template_mention: TemplateMentionResponse;
} | {
type: "custom_emoji";
custom_emoji: CustomEmojiResponse;
};
};
type MultiSelectPropertyConfigurationRequest = {
type?: "multi_select";
multi_select: {
options?: Array<{
name: string;
color?: SelectColor;
description?: string | null;
}>;
};
};
type MultiSelectPropertyFilter = {
contains: StringOrStringArray;
} | {
does_not_contain: StringOrStringArray;
} | ExistencePropertyFilter;
/**
* One of: `gray`, `lightgray`, `brown`, `yellow`, `orange`, `green`, `blue`, `purple`,
* `pink`, `red`
*/
type NoticonColor = "gray" | "lightgray" | "brown" | "yellow" | "orange" | "green" | "blue" | "purple" | "pink" | "red";
type NoticonIconResponse = {
name: NoticonName;
color: NoticonColor;
};
type NoticonName = string;
type NumberGroupByConfigRequest = {
type: "number";
property_id: string;
sort: GroupSortRequest;
hide_empty_groups?: boolean;
range_start?: number;
range_end?: number;
range_size?: number;
};
type NumberPropertyConfigurationRequest = {
type?: "number";
number: {
format?: NumberFormat;
};
};
type NumberPropertyFilter = {
equals: number;
} | {
does_not_equal: number;
} | {
greater_than: number;
} | {
less_than: number;
} | {
greater_than_or_equal_to: number;
} | {
less_than_or_equal_to: number;
} | ExistencePropertyFilter;
export type PageCoverRequest = FileUploadPageCoverRequest | ExternalPageCoverRequest;
export type PageCoverResponse = FilePageCoverResponse | ExternalPageCoverResponse;
export type PageIconResponse = EmojiPageIconResponse | FilePageIconResponse | ExternalPageIconResponse | CustomEmojiPageIconResponse | IconPageIconResponse;
type PageIdParentForBlockBasedObjectResponse = {
type: "page_id";
page_id: IdResponse;
};
export type PageMarkdownResponse = {
object: "page_markdown";
id: IdResponse;
markdown: string;
truncated: boolean;
unknown_block_ids: Array<IdResponse>;
};
export type PagePositionSchema = {
type: "after_block";
after_block: {
id: IdRequest;
};
} | {
type: "page_start";
} | {
type: "page_end";
};
export type ParentForBlockBasedObjectResponse = DatabaseParentResponse | DataSourceParentResponse | PageIdParentForBlockBasedObjectResponse | BlockIdParentForBlockBasedObjectResponse | AgentIdParentForBlockBasedObjectResponse | WorkspaceParentForBlockBasedObjectResponse;
export type ParentOfDataSourceRequest = {
type?: "database_id";
database_id: IdRequest;
};
export type ParentOfDatabaseResponse = PageIdParentForBlockBasedObjectResponse | WorkspaceParentForBlockBasedObjectResponse | DatabaseParentResponse | BlockIdParentForBlockBasedObjectResponse;
export type PartialUserObjectResponse = {
id: IdResponse;
object: "user";
};
type PeoplePropertyConfigurationRequest = {
type?: "people";
people: EmptyObject;
};
type PeoplePropertyFilter = {
contains: PersonIdOrMe;
} | {
does_not_contain: PersonIdOrMe;
} | ExistencePropertyFilter;
type PersonGroupByConfigRequest = {
type: "person" | "created_by" | "last_edited_by";
property_id: string;
sort: GroupSortRequest;
hide_empty_groups?: boolean;
};
type PersonIdOrMe = IdRequest | "me";
export type PersonUserObjectResponse = {
type: "person";
person: {
email?: string;
};
};
type PhoneNumberPropertyConfigurationRequest = {
type?: "phone_number";
phone_number: EmptyObject;
};
type PlacePropertyConfigurationRequest = {
type?: "place";
place: EmptyObject;
};
export type PropertyConfigurationRequest = PropertyConfigurationRequestCommon & (NumberPropertyConfigurationRequest | FormulaPropertyConfigurationRequest | SelectPropertyConfigurationRequest | MultiSelectPropertyConfigurationRequest | StatusPropertyConfigurationRequest | RelationPropertyConfigurationRequest | RollupPropertyConfigurationRequest | UniqueIdPropertyConfigurationRequest | TitlePropertyConfigurationRequest | RichTextPropertyConfigurationRequest | UrlPropertyConfigurationRequest | PeoplePropertyConfigurationRequest | FilesPropertyConfigurationRequest | EmailPropertyConfigurationRequest | PhoneNumberPropertyConfigurationRequest | DatePropertyConfigurationRequest | CheckboxPropertyConfigurationRequest | CreatedByPropertyConfigurationRequest | CreatedTimePropertyConfigurationRequest | LastEditedByPropertyConfigurationRequest | LastEditedTimePropertyConfigurationRequest | ButtonPropertyConfigurationRequest | LocationPropertyConfigurationRequest | VerificationPropertyConfigurationRequest | LastVisitedTimePropertyConfigurationRequest | PlacePropertyConfigurationRequest);
type PropertyConfigurationRequestCommon = {
description?: PropertyDescriptionRequest | null;
};
export type PropertyFilter = {
title: TextPropertyFilter;
property: string;
type?: "title";
} | {
rich_text: TextPropertyFilter;
property: string;
type?: "rich_text";
} | {
number: NumberPropertyFilter;
property: string;
type?: "number";
} | {
checkbox: CheckboxPropertyFilter;
property: string;
type?: "checkbox";
} | {
select: SelectPropertyFilter;
property: string;
type?: "select";
} | {
multi_select: MultiSelectPropertyFilter;
property: string;
type?: "multi_select";
} | {
status: StatusPropertyFilter;
property: string;
type?: "status";
} | {
date: DatePropertyFilter;
property: string;
type?: "date";
} | {
people: PeoplePropertyFilter;
property: string;
type?: "people";
} | {
files: ExistencePropertyFilter;
property: string;
type?: "files";
} | {
url: TextPropertyFilter;
property: string;
type?: "url";
} | {
email: TextPropertyFilter;
property: string;
type?: "email";
} | {
phone_number: TextPropertyFilter;
property: string;
type?: "phone_number";
} | {
relation: RelationPropertyFilter;
property: string;
type?: "relation";
} | {
created_by: PeoplePropertyFilter;
property: string;
type?: "created_by";
} | {
created_time: DatePropertyFilter;
property: string;
type?: "created_time";
} | {
last_edited_by: PeoplePropertyFilter;
property: string;
type?: "last_edited_by";
} | {
last_edited_time: DatePropertyFilter;
property: string;
type?: "last_edited_time";
} | {
formula: FormulaPropertyFilter;
property: string;
type?: "formula";
} | {
unique_id: NumberPropertyFilter;
property: string;
type?: "unique_id";
} | {
rollup: RollupPropertyFilter;
property: string;
type?: "rollup";
} | {
verification: VerificationPropertyStatusFilter;
property: string;
type?: "verification";
};
type PropertyOrTimestampFilter = PropertyFilter | TimestampFilter;
type PropertyOrTimestampFilterArray = Array<PropertyOrTimestampFilter>;
/**
* A property filter condition. Same shape as a property filter but without the
* "property" field (the hashmap key identifies the property). For example: { "select": {
* "equals": "High" } }.
*/
type QuickFilterConditionRequest = Record<string, never>;
type RelationGroupByConfigRequest = {
type: "relation";
property_id: string;
sort: GroupSortRequest;
hide_empty_groups?: boolean;
};
type RelationPropertyConfigurationRequest = {
type?: "relation";
relation: {
data_source_id: IdRequest;
} & ({
type?: "single_property";
single_property: EmptyObject;
} | {
type?: "dual_property";
dual_property: {
synced_property_id?: string;
synced_property_name?: string;
};
});
};
type RelationPropertyFilter = {
contains: IdRequest;
} | {
does_not_contain: IdRequest;
} | ExistencePropertyFilter;
type RelativeDateValue = "today" | "tomorrow" | "yesterday" | "one_week_ago" | "one_week_from_now" | "one_month_ago" | "one_month_from_now";
export type RichTextItemResponse = RichTextItemResponseCommon & (TextRichTextItemResponse | MentionRichTextItemResponse | EquationRichTextItemResponse);
export type RichTextItemResponseCommon = {
plain_text: string;
href: string | null;
annotations: AnnotationResponse;
};
type RichTextPropertyConfigurationRequest = {
type?: "rich_text";
rich_text: EmptyObject;
};
export type RollupFunction = "count" | "count_values" | "empty" | "not_empty" | "unique" | "show_unique" | "percent_empty" | "percent_not_empty" | "sum" | "average" | "median" | "min" | "max" | "range" | "earliest_date" | "latest_date" | "date_range" | "checked" | "unchecked" | "percent_checked" | "percent_unchecked" | "count_per_group" | "percent_per_group" | "show_original";
type RollupPropertyConfigurationRequest = {
type?: "rollup";
rollup: {
function: RollupFunction;
} & ({
relation_property_name: string;
rollup_property_name: string;
} | {
relation_property_id: string;
rollup_property_name: string;
} | {
relation_property_name: string;
rollup_property_id: string;
} | {
relation_property_id: string;
rollup_property_id: string;
});
};
type RollupPropertyFilter = {
any: RollupSubfilterPropertyFilter;
} | {
none: RollupSubfilterPropertyFilter;
} | {
every: RollupSubfilterPropertyFilter;
} | {
date: DatePropertyFilter;
} | {
number: NumberPropertyFilter;
};
type RollupSubfilterPropertyFilter = {
rich_text: TextPropertyFilter;
} | {
number: NumberPropertyFilter;
} | {
checkbox: CheckboxPropertyFilter;
} | {
select: SelectPropertyFilter;
} | {
multi_select: MultiSelectPropertyFilter;
} | {
relation: RelationPropertyFilter;
} | {
date: DatePropertyFilter;
} | {
people: PeoplePropertyFilter;
} | {
files: ExistencePropertyFilter;
} | {
status: StatusPropertyFilter;
};
/**
* One of: `default`, `gray`, `brown`, `orange`, `yellow`, `green`, `blue`, `purple`,
* `pink`, `red`
*/
export type SelectColor = "default" | "gray" | "brown" | "orange" | "yellow" | "green" | "blue" | "purple" | "pink" | "red";
type SelectGroupByConfigRequest = {
type: "select" | "multi_select";
property_id: string;
sort: GroupSortRequest;
hide_empty_groups?: boolean;
};
type SelectPropertyConfigurationRequest = {
type?: "select";
select: {
options?: Array<{
name: string;
color?: SelectColor;
description?: string | null;
}>;
};
};
type SelectPropertyFilter = {
equals: StringOrStringArray;
} | {
does_not_equal: StringOrStringArray;
} | ExistencePropertyFilter;
/**
* One of: `ascending`, `descending`
*/
type SortDirectionRequest = "ascending" | "descending";
type StatusGroupByConfigRequest = {
type: "status";
property_id: string;
group_by: "group" | "option";
sort: GroupSortRequest;
hide_empty_groups?: boolean;
};
type StatusPropertyConfigRequest = {
options?: Array<{
name: string;
color?: SelectColor;
description?: string | null;
}>;
};
export type StatusPropertyConfigUpdateRequest = {
options?: Array<{
color?: SelectColor;
description?: string | null;
} & ({
name: string;
id?: string;
} | {
id: string;
name?: string;
})>;
};
type StatusPropertyConfigurationRequest = {
type?: "status";
status: StatusPropertyConfigRequest;
};
type StatusPropertyFilter = {
equals: StringOrStringArray;
} | {
does_not_equal: StringOrStringArray;
} | ExistencePropertyFilter;
type StringOrStringArray = string | Array<string>;
type SubtaskConfigRequest = {
property_id?: string;
display_mode?: "show" | "hidden" | "flattened" | "disabled";
filter_scope?: "parents" | "parents_and_subitems" | "subitems";
toggle_column_id?: string;
};
type TableViewConfigRequest = {
type: "table";
properties?: Array<ViewPropertyConfigRequest> | null;
group_by?: GroupByConfigRequest | null;
subtasks?: SubtaskConfigRequest | null;
wrap_cells?: boolean;
frozen_column_index?: number;
show_vertical_lines?: boolean;
};
type TemplateMentionDateTemplateMentionResponse = {
type: "template_mention_date";
template_mention_date: "today" | "now";
};
type TemplateMentionResponse = TemplateMentionDateTemplateMentionResponse | TemplateMentionUserTemplateMentionResponse;
type TemplateMentionUserTemplateMentionResponse = {
type: "template_mention_user";
template_mention_user: "me";
};
/**
* IANA timezone to use when resolving template variables like @now and @today (e.g.
* 'America/New_York'). Defaults to the authorizing user's timezone for public
* integrations, or UTC for internal integrations.
*/
export type TemplateTimezone = string;
type TextGroupByConfigRequest = {
type: "text" | "title" | "url" | "email" | "phone_number";
property_id: string;
group_by: "exact" | "alphabet_prefix";
sort: GroupSortRequest;
hide_empty_groups?: boolean;
};
type TextPropertyFilter = {
equals: string;
} | {
does_not_equal: string;
} | {
contains: string;
} | {
does_not_contain: string;
} | {
starts_with: string;
} | {
ends_with: string;
} | ExistencePropertyFilter;
export type TextRichTextItemResponse = {
type: "text";
text: {
content: string;
link: {
url: string;
} | null;
};
};
type TimeZoneRequest = string;
type TimelineArrowsByRequest = {
property_id?: string | null;
};
type TimelinePreferenceRequest = {
zoom_level: "hours" | "day" | "week" | "bi_week" | "month" | "quarter" | "year" | "5_years";
center_timestamp?: number;
};
type TimelineViewConfigRequest = {
type: "timeline";
date_property_id: string;
end_date_property_id?: string | null;
properties?: Array<ViewPropertyConfigRequest> | null;
show_table?: boolean | null;
table_properties?: Array<ViewPropertyConfigRequest> | null;
preference?: TimelinePreferenceRequest | null;
arrows_by?: TimelineArrowsByRequest | null;
color_by?: boolean | null;
};
type TimestampCreatedTimeFilter = {
created_time: DatePropertyFilter;
timestamp: "created_time";
type?: "created_time";
};
export type TimestampFilter = TimestampCreatedTimeFilter | TimestampLastEditedTimeFilter;
type TimestampLastEditedTimeFilter = {
last_edited_time: DatePropertyFilter;
timestamp: "last_edited_time";
type?: "last_edited_time";
};
type TitlePropertyConfigurationRequest = {
type?: "title";
title: EmptyObject;
};
type UniqueIdPropertyConfigurationRequest = {
type?: "unique_id";
unique_id: {
prefix?: string | null;
};
};
export type UpdateMediaContentWithFileAndCaptionRequest = {
caption?: Array<RichTextItemRequest>;
external?: ExternalFileRequest;
file_upload?: FileUploadIdRequest;
};
export type UpdateMediaContentWithFileNameAndCaptionRequest = {
caption?: Array<RichTextItemRequest>;
external?: ExternalFileRequest;
file_upload?: FileUploadIdRequest;
name?: StringRequest;
};
export type UpdateMediaContentWithUrlAndCaptionRequest = {
url?: string;
caption?: Array<RichTextItemRequest>;
};
export type UpdateViewRequest = {
name?: string;
filter?: ViewFilterRequest | null;
sorts?: ViewPropertySortsRequest | null;
quick_filters?: Record<string, QuickFilterConditionRequest | null> | null;
configuration?: ViewConfigRequest;
};
type UrlPropertyConfigurationRequest = {
type?: "url";
url: EmptyObject;
};
export type UserObjectResponse = UserObjectResponseCommon & (PersonUserObjectResponse | BotUserObjectResponse);
export type UserObjectResponseCommon = {
id: IdResponse;
object: "user";
name: string | null;
avatar_url: string | null;
};
type UserValueResponse = PartialUserObjectResponse | UserObjectResponse;
type VerificationPropertyConfigurationRequest = {
type?: "verification";
verification: EmptyObject;
};
type VerificationPropertyStatusFilter = {
status: "verified" | "expired" | "none";
};
/**
* View configuration, discriminated by the type field.
*/
type ViewConfigRequest = TableViewConfigRequest | BoardViewConfigRequest | CalendarViewConfigRequest | TimelineViewConfigRequest | GalleryViewConfigRequest | ListViewConfigRequest | MapViewConfigRequest | FormViewConfigRequest | ChartViewConfigRequest;
/**
* Filter for the view. Uses the same format as the data source query filter (property
* filters, timestamp filters, or compound and/or filters). Simple property filters appear
* in the view's filter bar in the Notion UI. Select, status, and multi_select filter
* operators accept a single string or an array of strings to filter by multiple values
* (e.g. { "does_not_equal": ["Done", "Archive"] }).
*/
type ViewFilterRequest = Record<string, never>;
/**
* Position of the new view in the database's view tab bar.
*/
type ViewPositionRequest = {
type: "start";
} | {
type: "end";
} | {
type: "after_view";
view_id: IdRequest;
};
type ViewPropertyConfigRequest = {
property_id: string;
visible?: boolean;
width?: number;
wrap?: boolean;
status_show_as?: "select" | "checkbox";
card_property_width_mode?: "full_line" | "inline";
date_format?: "full" | "short" | "month_day_year" | "day_month_year" | "year_month_day" | "relative";
time_format?: "12_hour" | "24_hour" | "hidden";
};
type ViewPropertySortRequest = {
property: string;
direction: SortDirectionRequest;
};
type ViewPropertySortsRequest = Array<ViewPropertySortRequest>;
/**
* Sort for the view. Can be a property sort (with property and direction) or timestamp
* sort (with timestamp and direction).
*/
type ViewSortRequest = Record<string, never>;
type ViewSortsRequest = Array<ViewSortRequest>;
/**
* One of: `table`, `board`, `list`, `calendar`, `timeline`, `gallery`, `form`, `chart`,
* `map`, `dashboard`
*/
type ViewTypeRequest = "table" | "board" | "list" | "calendar" | "timeline" | "gallery" | "form" | "chart" | "map" | "dashboard";
/**
* Where to place the new widget in the dashboard. "new_row" creates a new row,
* "existing_row" adds to an existing row side-by-side with other widgets.
*/
type WidgetPlacementRequest = {
type: "new_row";
row_index?: number;
} | {
type: "existing_row";
row_index: number;
};
type WorkspaceParentForBlockBasedObjectResponse = {
type: "workspace";
workspace: true;
};
export type BlockObjectRequest = {
embed: MediaContentWithUrlAndCaptionRequest;
type?: "embed";
object?: "block";
} | {
bookmark: MediaContentWithUrlAndCaptionRequest;
type?: "bookmark";
object?: "block";
} | {
image: MediaContentWithFileAndCaptionRequest;
type?: "image";
object?: "block";
} | {
video: MediaContentWithFileAndCaptionRequest;
type?: "video";
object?: "block";
} | {
pdf: MediaContentWithFileAndCaptionRequest;
type?: "pdf";
object?: "block";
} | {
file: MediaContentWithFileNameAndCaptionRequest;
type?: "file";
object?: "block";
} | {
audio: MediaContentWithFileAndCaptionRequest;
type?: "audio";
object?: "block";
} | {
code: {
rich_text: Array<RichTextItemRequest>;
language: LanguageRequest;
caption?: Array<RichTextItemRequest>;
};
type?: "code";
object?: "block";
} | {
equation: ContentWithExpressionRequest;
type?: "equation";
object?: "block";
} | {
divider: EmptyObject;
type?: "divider";
object?: "block";
} | {
breadcrumb: EmptyObject;
type?: "breadcrumb";
object?: "block";
} | {
tab: TabRequestWithNestedTabItemChildren;
type?: "tab";
object?: "block";
} | {
table_of_contents: {
color?: ApiColor;
};
type?: "table_of_contents";
object?: "block";
} | {
link_to_page: {
page_id: IdRequest;
type?: "page_id";
} | {
database_id: IdRequest;
type?: "database_id";
} | {
comment_id: IdRequest;
type?: "comment_id";
};
type?: "link_to_page";
object?: "block";
} | {
table_row: ContentWithTableRowRequest;
type?: "table_row";
object?: "block";
} | {
table: TableRequestWithTableRowChildren;
type?: "table";
object?: "block";
} | {
column_list: ColumnListRequest;
type?: "column_list";
object?: "block";
} | {
column: ColumnWithChildrenRequest;
type?: "column";
object?: "block";
} | {
heading_1: {
rich_text: Array<RichTextItemRequest>;
color?: ApiColor;
is_toggleable?: boolean;
children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>;
};
type?: "heading_1";
object?: "block";
} | {
heading_2: {
rich_text: Array<RichTextItemRequest>;
color?: ApiColor;
is_toggleable?: boolean;
children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>;
};
type?: "heading_2";
object?: "block";
} | {
heading_3: {
rich_text: Array<RichTextItemRequest>;
color?: ApiColor;
is_toggleable?: boolean;
children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>;
};
type?: "heading_3";
object?: "block";
} | {
heading_4: {
rich_text: Array<RichTextItemRequest>;
color?: ApiColor;
is_toggleable?: boolean;
children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>;
};
type?: "heading_4";
object?: "block";
} | {
paragraph: {
rich_text: Array<RichTextItemRequest>;
color?: ApiColor;
icon?: PageIconRequest;
children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>;
};
type?: "paragraph";
object?: "block";
} | {
bulleted_list_item: {
rich_text: Array<RichTextItemRequest>;
color?: ApiColor;
children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>;
};
type?: "bulleted_list_item";
object?: "block";
} | {
numbered_list_item: {
rich_text: Array<RichTextItemRequest>;
color?: ApiColor;
children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>;
};
type?: "numbered_list_item";
object?: "block";
} | {
quote: {
rich_text: Array<RichTextItemRequest>;
color?: ApiColor;
children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>;
};
type?: "quote";
object?: "block";
} | {
to_do: {
rich_text: Array<RichTextItemRequest>;
color?: ApiColor;
children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>;
checked?: boolean;
};
type?: "to_do";
object?: "block";
} | {
toggle: {
rich_text: Array<RichTextItemRequest>;
color?: ApiColor;
children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>;
};
type?: "toggle";
object?: "block";
} | {
template: {
rich_text: Array<RichTextItemRequest>;
children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>;
};
type?: "template";
object?: "block";
} | {
callout: {
rich_text: Array<RichTextItemRequest>;
color?: ApiColor;
children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>;
icon?: PageIconRequest;
};
type?: "callout";
object?: "block";
} | {
synced_block: {
synced_from: {
block_id: IdRequest;
type?: "block_id";
} | null;
children?: Array<BlockObjectWithSingleLevelOfChildrenRequest>;
};
type?: "synced_block";
object?: "block";
};
export type DateRequest = {
start: string;
end?: string | null;
time_zone?: TimeZoneRequest | null;
};
export type PageIconRequest = FileUploadPageIconRequest | EmojiPageIconRequest | ExternalPageIconRequest | CustomEmojiPageIconRequest | IconPageIconRequest;
export type PartialUserObjectRequest = {
id: IdRequest;
object?: "user";
};
export type RichTextItemRequest = RichTextItemRequestCommon & (TextRichTextItemRequest | MentionRichTextItemRequest | EquationRichTextItemRequest);
export type StringRequest = string;
export type TextRequest = string;
export type RequestStatusResponse = {
type: "complete" | "incomplete";
incomplete_reason?: "query_result_limit_reached";
};
export type PartialPageObjectResponse = {
object: "page";
id: IdResponse;
};
export type PageObjectResponse = {
object: "page";
id: IdResponse;
created_time: string;
last_edited_time: string;
in_trash: boolean;
/** @deprecated Use `in_trash` instead. Present for backwards compatibility with API versions prior to 2026-03-11. */
archived: boolean;
is_archived: boolean;
is_locked: boolean;
url: string;
public_url: string | null;
parent: ParentForBlockBasedObjectResponse;
properties: Record<string, PagePropertyValueWithIdResponse>;
icon: PageIconResponse | null;
cover: PageCoverResponse | null;
created_by: PartialUserObjectResponse;
last_edited_by: PartialUserObjectResponse;
};
type BlockObjectWithSingleLevelOfChildrenRequest = {
embed: MediaContentWithUrlAndCaptionRequest;
type?: "embed";
object?: "block";
} | {
bookmark: MediaContentWithUrlAndCaptionRequest;
type?: "bookmark";
object?: "block";
} | {
image: MediaContentWithFileAndCaptionRequest;
type?: "image";
object?: "block";
} | {
video: MediaContentWithFileAndCaptionRequest;
type?: "video";
object?: "block";
} | {
pdf: MediaContentWithFileAndCaptionRequest;
type?: "pdf";
object?: "block";
} | {
file: MediaContentWithFileNameAndCaptionRequest;
type?: "file";
object?: "block";
} | {
audio: MediaContentWithFileAndCaptionRequest;
type?: "audio";
object?: "block";
} | {
code: {
rich_text: Array<RichTextItemRequest>;
language: LanguageRequest;
caption?: Array<RichTextItemRequest>;
};
type?: "code";
object?: "block";
} | {
equation: ContentWithExpressionRequest;
type?: "equation";
object?: "block";
} | {
divider: EmptyObject;
type?: "divider";
object?: "block";
} | {
breadcrumb: EmptyObject;
type?: "breadcrumb";
object?: "block";
} | {
tab: TabRequestWithTabItemChildren;
type?: "tab";
object?: "block";
} | {
table_of_contents: {
color?: ApiColor;
};
type?: "table_of_contents";
object?: "block";
} | {
link_to_page: {
page_id: IdRequest;
type?: "page_id";
} | {
database_id: IdRequest;
type?: "database_id";
} | {
comment_id: IdRequest;
type?: "comment_id";
};
type?: "link_to_page";
object?: "block";
} | {
table_row: ContentWithTableRowRequest;
type?: "table_row";
object?: "block";
} | {
heading_1: HeaderContentWithSingleLevelOfChildrenRequest;
type?: "heading_1";
object?: "block";
} | {
heading_2: HeaderContentWithSingleLevelOfChildrenRequest;
type?: "heading_2";
object?: "block";
} | {
heading_3: HeaderContentWithSingleLevelOfChildrenRequest;
type?: "heading_3";
object?: "block";
} | {
heading_4: HeaderContentWithSingleLevelOfChildrenRequest;
type?: "heading_4";
object?: "block";
} | {
paragraph: ParagraphWithSingleLevelOfChildrenRequest;
type?: "paragraph";
object?: "block";
} | {
bulleted_list_item: ContentWithSingleLevelOfChildrenRequest;
type?: "bulleted_list_item";
object?: "block";
} | {
numbered_list_item: ContentWithSingleLevelOfChildrenRequest;
type?: "numbered_list_item";
object?: "block";
} | {
quote: ContentWithSingleLevelOfChildrenRequest;
type?: "quote";
object?: "block";
} | {
table: TableRequestWithTableRowChildren;
type?: "table";
object?: "block";
} | {
to_do: {
rich_text: Array<RichTextItemRequest>;
color?: ApiColor;
children?: Array<BlockObjectRequestWithoutChildren>;
checked?: boolean;
};
type?: "to_do";
object?: "block";
} | {
toggle: ContentWithSingleLevelOfChildrenRequest;
type?: "toggle";
object?: "block";
} | {
template: {
rich_text: Array<RichTextItemRequest>;
children?: Array<BlockObjectRequestWithoutChildren>;
};
type?: "template";
object?: "block";
} | {
callout: {
rich_text: Array<RichTextItemRequest>;
color?: ApiColor;
children?: Array<BlockObjectRequestWithoutChildren>;
icon?: PageIconRequest;
};
type?: "callout";
object?: "block";
} | {
synced_block: {
synced_from: {
block_id: IdRequest;
type?: "block_id";
} | null;
children?: Array<BlockObjectRequestWithoutChildren>;
};
type?: "synced_block";
object?: "block";
};
type ColumnListRequest = {
children: Array<ColumnBlockWithChildrenRequest>;
};
type ColumnWithChildrenRequest = {
children: Array<BlockObjectWithSingleLevelOfChildrenRequest>;
width_ratio?: number;
};
export type ContentWithExpressionRequest = {
expression: string;
};
export type ContentWithTableRowRequest = {
cells: Array<Array<RichTextItemRequest>>;
};
type CustomEmojiPageIconRequest = {
type?: "custom_emoji";
custom_emoji: {
id: IdRequest;
name?: string;
url?: string;
};
};
type EmojiPageIconRequest = {
type?: "emoji";
emoji: EmojiRequest;
};
type EquationRichTextItemRequest = {
type?: "equation";
equation: {
expression: string;
};
};
type ExternalFileRequest = {
url: TextRequest;
};
type ExternalPageIconRequest = {
type?: "external";
external: {
url: string;
};
};
type FileUploadIdRequest = {
id: IdRequest;
};
type FileUploadPageIconRequest = {
type?: "file_upload";
file_upload: {
id: string;
};
};
type IconPageIconRequest = {
type?: "icon";
icon: {
name: NoticonName;
color?: NoticonColor;
};
};
export type LanguageRequest = "abap" | "abc" | "agda" | "arduino" | "ascii art" | "assembly" | "bash" | "basic" | "bnf" | "c" | "c#" | "c++" | "clojure" | "coffeescript" | "coq" | "css" | "dart" | "dhall" | "diff" | "docker" | "ebnf" | "elixir" | "elm" | "erlang" | "f#" | "flow" | "fortran" | "gherkin" | "glsl" | "go" | "graphql" | "groovy" | "haskell" | "hcl" | "html" | "idris" | "java" | "javascript" | "json" | "julia" | "kotlin" | "latex" | "less" | "lisp" | "livescript" | "llvm ir" | "lua" | "makefile" | "markdown" | "markup" | "matlab" | "mathematica" | "mermaid" | "nix" | "notion formula" | "objective-c" | "ocaml" | "pascal" | "perl" | "php" | "plain text" | "powershell" | "prolog" | "protobuf" | "purescript" | "python" | "r" | "racket" | "reason" | "ruby" | "rust" | "sass" | "scala" | "scheme" | "scss" | "shell" | "smalltalk" | "solidity" | "sql" | "swift" | "toml" | "typescript" | "vb.net" | "verilog" | "vhdl" | "visual basic" | "webassembly" | "xml" | "yaml" | "java/c/c++/c#";
type MediaContentWithFileAndCaptionRequest = {
external: ExternalFileRequest;
type?: "external";
caption?: Array<RichTextItemRequest>;
} | {
file_upload: FileUploadIdRequest;
type?: "file_upload";
caption?: Array<RichTextItemRequest>;
};
type MediaContentWithFileNameAndCaptionRequest = {
external: ExternalFileRequest;
type?: "external";
caption?: Array<RichTextItemRequest>;
name?: StringRequest;
} | {
file_upload: FileUploadIdRequest;
type?: "file_upload";
caption?: Array<RichTextItemRequest>;
name?: StringRequest;
};
type MediaContentWithUrlAndCaptionRequest = {
url: string;
caption?: Array<RichTextItemRequest>;
};
type MentionRichTextItemRequest = {
type?: "mention";
mention: {
type?: "user";
user: PartialUserObjectRequest;
} | {
type?: "date";
date: DateRequest;
} | {
type?: "page";
page: {
id: IdRequest;
};
} | {
type?: "database";
database: {
id: IdRequest;
};
} | {
type?: "template_mention";
template_mention: TemplateMentionRequest;
} | {
type?: "custom_emoji";
custom_emoji: {
id: IdRequest;
name?: string;
url?: string;
};
};
};
type RichTextItemRequestCommon = {
annotations?: AnnotationRequest;
};
type TabRequestWithNestedTabItemChildren = {
children: Array<TabItemRequestWithSingleLevelOfChildren>;
};
type TableRequestWithTableRowChildren = {
table_width: number;
children: Array<TableRowRequest>;
has_column_header?: boolean;
has_row_header?: boolean;
};
type TextRichTextItemRequest = {
type?: "text";
text: {
content: string;
link?: {
url: string;
} | null;
};
};
type PagePropertyValueWithIdResponse = IdObjectResponse & (SimpleOrArrayPropertyValueResponse | PartialRollupPropertyResponse);
export type NumberFormat = string;
export type PropertyDescriptionRequest = string;
type AnnotationRequest = {
bold?: boolean;
italic?: boolean;
strikethrough?: boolean;
underline?: boolean;
code?: boolean;
color?: ApiColor;
};
export type BlockObjectRequestWithoutChildren = {
embed: MediaContentWithUrlAndCaptionRequest;
type?: "embed";
object?: "block";
} | {
bookmark: MediaContentWithUrlAndCaptionRequest;
type?: "bookmark";
object?: "block";
} | {
image: MediaContentWithFileAndCaptionRequest;
type?: "image";
object?: "block";
} | {
video: MediaContentWithFileAndCaptionRequest;
type?: "video";
object?: "block";
} | {
pdf: MediaContentWithFileAndCaptionRequest;
type?: "pdf";
object?: "block";
} | {
file: MediaContentWithFileNameAndCaptionRequest;
type?: "file";
object?: "block";
} | {
audio: MediaContentWithFileAndCaptionRequest;
type?: "audio";
object?: "block";
} | {
code: {
rich_text: Array<RichTextItemRequest>;
language: LanguageRequest;
caption?: Array<RichTextItemRequest>;
};
type?: "code";
object?: "block";
} | {
equation: ContentWithExpressionRequest;
type?: "equation";
object?: "block";
} | {
divider: EmptyObject;
type?: "divider";
object?: "block";
} | {
breadcrumb: EmptyObject;
type?: "breadcrumb";
object?: "block";
} | {
tab: EmptyObject;
type?: "tab";
object?: "block";
} | {
table_of_contents: {
color?: ApiColor;
};
type?: "table_of_contents";
object?: "block";
} | {
link_to_page: {
page_id: IdRequest;
type?: "page_id";
} | {
database_id: IdRequest;
type?: "database_id";
} | {
comment_id: IdRequest;
type?: "comment_id";
};
type?: "link_to_page";
object?: "block";
} | {
table_row: ContentWithTableRowRequest;
type?: "table_row";
object?: "block";
} | {
heading_1: HeaderContentWithRichTextAndColorRequest;
type?: "heading_1";
object?: "block";
} | {
heading_2: HeaderContentWithRichTextAndColorRequest;
type?: "heading_2";
object?: "block";
} | {
heading_3: HeaderContentWithRichTextAndColorRequest;
type?: "heading_3";
object?: "block";
} | {
heading_4: HeaderContentWithRichTextAndColorRequest;
type?: "heading_4";
object?: "block";
} | {
paragraph: ContentWithRichTextColorAndIconRequest;
type?: "paragraph";
object?: "block";
} | {
bulleted_list_item: ContentWithRichTextAndColorRequest;
type?: "bulleted_list_item";
object?: "block";
} | {
numbered_list_item: ContentWithRichTextAndColorRequest;
type?: "numbered_list_item";
object?: "block";
} | {
quote: ContentWithRichTextAndColorRequest;
type?: "quote";
object?: "block";
} | {
to_do: {
rich_text: Array<RichTextItemRequest>;
checked?: boolean;
color?: ApiColor;
};
type?: "to_do";
object?: "block";
} | {
toggle: ContentWithRichTextAndColorRequest;
type?: "toggle";
object?: "block";
} | {
template: ContentWithRichTextRequest;
type?: "template";
object?: "block";
} | {
callout: {
rich_text: Array<