> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Notion: Post Page

> Create a page. Notion Post Page reference includes SDK V2 and CLI requests, input constraints, response fields, and Deepline cost.

Create a page.

<Info>
  Tool ID: `notion_post_page`
</Info>

## Run this action

Use the TypeScript SDK for a single call. Put `ctx.tools.execute(...)` inside a Play when the call should be durable, scheduled, or run across a CSV.

```ts theme={null}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'notion_post_page',
  {
    "filter_properties": [
      "example"
    ],
    "parent": {
      "page_id": "page_123"
    },
    "properties": {}
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={null}
deepline tools execute notion_post_page --input '{
  "filter_properties": [
    "example"
  ],
  "parent": {
    "page_id": "page_123"
  },
  "properties": {}
}' --json
```

## Example response

The SDK exposes this shape at `result.toolResponse.raw`. Values below are representative.

```json theme={null}
{
  "data": {
    "object": "page",
    "id": "123e4567-e89b-42d3-a456-426614174000"
  }
}
```

Use `deepline tools get notion_post_page --json` for the latest machine-readable contract.

## Input reference

Create a page

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.filter_properties` | `array` | No | — | — |
| `payload.parent` | `object` | No | — | — |
| `payload.properties` | `record` | No | — | — |
| `payload.icon` | `object \| null` | No | — | — |
| `payload.cover` | `object \| null` | No | — | — |
| `payload.content` | `array` | No | — | Maximum items: 100. |
| `payload.children` | `array` | No | — | Maximum items: 100. |
| `payload.markdown` | `string` | No | — | Page content as Notion-flavored Markdown. Mutually exclusive with content/children. |
| `payload.position` | `object` | No | — | — |

<Info>
  This input schema is too large to embed without slowing the page. Get the complete live contract with `deepline tools get notion_post_page --json`.
</Info>

## Output reference

Standard tool result payload.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `object` | Yes | — | Provider response payload. |
| `result.data.object` | `"page"` | Yes | — | The page object type name. |
| `result.data.id` | `string` | Yes | — | — |
| `result.data.created_time` | `string` | Yes | — | Date and time when this page was created. |
| `result.data.last_edited_time` | `string` | Yes | — | Date and time when this page was last edited. |
| `result.data.in_trash` | `boolean` | Yes | — | Whether the page is in trash. |
| `result.data.is_archived` | `boolean` | Yes | — | Whether the page has been archived. |
| `result.data.is_locked` | `boolean` | Yes | — | Whether the page is locked from editing in the Notion app UI. |
| `result.data.url` | `string` | Yes | — | The URL of the Notion page. |
| `result.data.public_url` | `string \| null` | Yes | — | The public URL of the Notion page, if it has been published to the web. |
| `result.data.parent` | `object` | Yes | — | — |
| `result.data.parent.type` | `"database_id"` | Yes | — | The parent type. |
| `result.data.parent.database_id` | `string` | Yes | — | — |
| `result.data.parent.data_source_id` | `string` | Yes | — | — |
| `result.data.parent.page_id` | `string` | Yes | — | — |
| `result.data.parent.block_id` | `string` | Yes | — | — |
| `result.data.parent.agent_id` | `string` | Yes | — | — |
| `result.data.parent.workspace` | `true` | Yes | — | Always true for workspace parent. |
| `result.data.properties` | `record` | Yes | — | Property values of this page. |
| `result.data.icon` | `object \| null` | Yes | — | Page icon. |
| `result.data.icon.type` | `"emoji"` | Yes | — | Type of icon. In this case, an emoji. |
| `result.data.icon.emoji` | `string` | Yes | — | — |
| `result.data.icon.file` | `object` | Yes | — | — |
| `result.data.icon.file.url` | `string` | Yes | — | The URL of the file. |
| `result.data.icon.file.expiry_time` | `string` | Yes | — | The time when the URL will expire. |
| `result.data.icon.external` | `object` | Yes | — | The external URL for the icon. |
| `result.data.icon.external.url` | `string` | Yes | — | The URL of the external file or resource. |
| `result.data.icon.custom_emoji` | `object` | Yes | — | — |
| `result.data.icon.custom_emoji.id` | `string` | Yes | — | — |
| `result.data.icon.custom_emoji.name` | `string` | Yes | — | The name of the custom emoji. |
| `result.data.icon.custom_emoji.url` | `string` | Yes | — | The URL of the custom emoji. |
| `result.data.icon.icon` | `object` | Yes | — | — |
| `result.data.icon.icon.name` | `string` | Yes | — | — |
| `result.data.icon.icon.color` | `"gray" \| "lightgray" \| "brown" \| "yellow" \| "orange" \| "green" \| "blue" \| "purple" \| "pink" \| "red"` | Yes | — | — |
| `result.data.cover` | `object \| null` | Yes | — | Page cover image. |
| `result.data.cover.type` | `"file"` | Yes | — | Type of cover. In this case, a file. |
| `result.data.cover.file` | `object` | Yes | — | — |
| `result.data.cover.file.url` | `string` | Yes | — | The URL of the file. |
| `result.data.cover.file.expiry_time` | `string` | Yes | — | The time when the URL will expire. |
| `result.data.cover.external` | `object` | Yes | — | The external URL for the cover. |
| `result.data.cover.external.url` | `string` | Yes | — | The URL of the external file or resource. |
| `result.data.created_by` | `object` | Yes | — | — |
| `result.data.created_by.id` | `string` | Yes | — | — |
| `result.data.created_by.object` | `"user"` | Yes | — | Always `user` |
| `result.data.last_edited_by` | `object` | Yes | — | — |
| `result.data.last_edited_by.id` | `string` | Yes | — | — |
| `result.data.last_edited_by.object` | `"user"` | Yes | — | Always `user` |
| `result.meta` | `object` | No | — | Additional response metadata (status, paging). |

<Info>
  This output schema is too large to embed without slowing the page. Get the complete live contract with `deepline tools get notion_post_page --json`.
</Info>

## Deepline cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.

## Related documentation

* [Notion provider guide](/docs/providers/notion/guide)
* [SDK V2 quickstart](/docs/sdk-v2/quickstart)
* [SDK reference](/docs/sdk-v2/sdk-reference)
* [Run tools across a CSV](/docs/sdk-v2/batch-csv)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.