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

# Notion

> Notion Scenario seeding parameters, nested fields, and examples

Use `notion` in `twins` and put this configuration under `seed_config.notion`.

Notion workspace with pages, databases, and people.

## Example seed

This is the complete Scenario request body for [creating a Scenario](https://docs.argalabs.com/api-reference/post-create-a-scenario.md). You can also import it with `arga test-runner scenarios import --file scenario.json`.

```json theme={null}
{
  "name": "Notion eval fixture",
  "twins": [
    "notion"
  ],
  "seed_config": {
    "notion": {
      "workspace_plan": "business",
      "users": [
        {
          "name": "Ada Reviewer",
          "email": "ada@example.test",
          "is_guest": false
        }
      ],
      "teamspaces": [
        {
          "name": "Engineering",
          "access": "closed",
          "members": {
            "ada@example.test": "member"
          }
        }
      ],
      "workspace_security": {
        "guest_invites": "members",
        "public_sharing": true,
        "member_invites": "owners"
      },
      "pages": [
        {
          "title": "Page Title",
          "content": "Page content text"
        }
      ],
      "databases": [
        {
          "name": "Database Name",
          "schema": {
            "Name": {
              "title": {}
            },
            "Status": {
              "select": {
                "options": [
                  {
                    "name": "Todo"
                  },
                  {
                    "name": "Done"
                  }
                ]
              }
            }
          },
          "rows": [
            {
              "Name": {
                "title": [
                  {
                    "text": {
                      "content": "Row title"
                    }
                  }
                ]
              },
              "Status": {
                "select": {
                  "name": "Todo"
                }
              },
              "content": "Optional page body for this row"
            }
          ]
        }
      ]
    }
  }
}
```

## Parameters

The following fields belong directly inside `seed_config.notion`. Required nested fields are marked in their tables. Provider-native objects can contain service-specific fields beyond the representative record shapes below.

| Parameter | Type | Description |
| - | - | - |
| `workspace_plan` | `string` | Notion workspace plan: free, plus, business, or enterprise. |
| `users` | `object[]` | Users fixtures in provider-native format. |
| `teamspaces` | `object[]` | Teamspaces fixtures in provider-native format. |
| `workspace_security` | `object` | Notion workspace security settings. |
| `pages` | `object[]` | Pages fixtures in provider-native format. |
| `databases` | `object[]` | Databases fixtures in provider-native format. |
| `seed` | `integer` | Deterministic seed used by this twin. |
| `base_time` | `string` | Reference clock for repeatable fixtures. Omit to use the current clock. |

## Seeding behavior

Declare database property schemas before supplying rows. Row property names must match the database schema. Use `teamspace` and `sharing` on a page or database to assign access. The Scenario adapter forwards `workspace_plan`, users, teamspaces, and workspace security; other runtime configuration is separate.

## Resource fields

These tables describe the record shapes used by the example. Keep native field names and casing. Map keys such as property names, IDs, and metadata keys are supplied by your fixture.

### `users[]`

| Parameter | Type | Description |
| - | - | - |
| `name` | `string` | Human-readable name. |
| `email` | `string` | Main account email address. |
| `is_guest` | `boolean` | Enable or set is guest behavior. |

### `teamspaces[]`

| Parameter | Type | Description |
| - | - | - |
| `name` | `string` | Human-readable name. |
| `access` | `string` | Stripe API-key and Dashboard-user permissions. |
| `members` | `object` | Members. |

### `pages[]`

| Parameter | Type | Description |
| - | - | - |
| `title` | `string` | Human-readable name. |
| `content` | `string` | Text content. |

### `databases[]`

| Parameter | Type | Description |
| - | - | - |
| `name` | `string` | Human-readable name. |
| `schema` | `object` | Schema. |
| `rows` | `object[]` | Rows fixtures in provider-native format. |

### `databases[].rows[]`

| Parameter | Type | Description |
| - | - | - |
| `Name` | `object` | Name. |
| `Status` | `object` | Status. |
| `content` | `string` | Text content. |

### `databases[].rows[].Name.title[]`

| Parameter | Type | Description |
| - | - | - |
| `text` | `object` | Text content. |

## API coverage and limitations

**Twin name:** `notion`

**Supports**

* Notion API routes for users, search, pages, databases, data sources, blocks, comments, file uploads, views, OAuth token exchange, introspection, and revocation.
* Deterministic workspace state, bot identity, pagination, markdown projection, nested page content, database/data-source querying, event outbox, webhook delivery, replay, and admin inspection.
* Workspace plan limits for file uploads and guests, plus capability-based user information visibility.

**Known limitations**

* Pages, databases, and users start empty unless seeded or created through API calls.
* Unsupported property template types and unsupported database property filters return validation errors.
* Requests outside supported `/v1` routes return Notion-style invalid request errors rather than generated mock success responses.

**MCP tools:** `get_twin_catalog`, `provision_twins`, `start_url_validation`, `get_validation_results`.

See [Scenario seeding](https://docs.argalabs.com/twins/seeding.md) for saving, provisioning, and resetting fixtures.


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