icon field is a discriminated union on the type key:
The read/write columns above apply to page and database icons. Callout block icons support all types except
file_upload on write — use emoji, external, custom_emoji, or icon instead.Emoji
Example: set a page icon via the Create a page endpoint
Example: set a page icon via the Update page endpoint
Custom emoji
Custom emojis are icons uploaded and managed in your workspace. Use the List custom emojis endpoint to retrieve them.Example: custom emoji in a page icon response
Example: inline custom emoji in rich text
Example: set a page icon to a custom emoji
When writing, only theid field is required inside custom_emoji.
Example: look up a custom emoji by name
Use thename query parameter on List custom emojis to resolve a custom emoji name to its ID, then use the ID to set a page icon.
Icon
Native Notion icons are built-in icons with a name and color. They appear in the Notion UI icon picker under the “Icons” tab.Icon name
When setting a native icon, the name field accepts either Notion’s internal API icon name or the name shown in the Notion icon picker tooltip. Responses return the internal API icon name.
Icon picker names are case-insensitive, and spaces, underscores, and hyphens are treated equivalently. For example, "token", "star circle", "star-circle", and "STAR_CIRCLE" set the same icon. "redirect", "arrow redirect heavy", and "arrow_redirect_heavy" also set the same icon.
Icon color
Valid color values: "gray", "lightgray", "brown", "yellow", "orange", "green", "blue", "purple", "pink", "red".
If omitted when setting an icon, the color defaults to "gray".