Skip to Content
SourcesNotion

Notion

Required
Fields required for a valid configuration.
PathTypeRequiredDescriptionDefaultConstraints
requiredobjectYesNotion has no required connection fields; the integration token lives in the masked section.no extra properties
Masked
Sensitive fields under(secrets/credentials).
PathTypeRequiredDescriptionDefaultConstraints
maskedobjectYesno extra properties
masked.notion_tokenstringYesNotion API token used as a Bearer credential. Accepts an internal integration secret (ntn_...) or an OAuth public-integration access token.
Optional
Optional configuration fields.
PathTypeRequiredDescriptionDefaultConstraints
optionalobjectNono extra properties
optional.connectionobjectNoHTTP, version, and retry settings for Notion API calls.no extra properties
optional.connection.max_retriesintegerNoMaximum retry attempts for transient API failures and rate limits3min 0, max 10
optional.connection.notion_versionstringNoNotion-Version header sent with every request. Defaults to the data-sources API version.2025-09-03
optional.connection.rate_limit_delay_secondsnumberNoAdditional delay between API requests to reduce rate-limit pressure0min 0
optional.connection.request_timeout_secondsnumberNoHTTP request timeout for Notion API calls30min 1
optional.contentobjectNoNotion content extraction controls.no extra properties
optional.content.file_max_bytesintegerNoMaximum bytes downloaded per file for MIME inference and text extraction5242880min 1024
optional.content.include_commentsbooleanNoInclude page and block comments and aggregate them into a per-page comments assettrue
optional.content.include_data_sourcesbooleanNoEmit Notion data sources (databases) as assets with their schema and link their row pagestrue
optional.content.include_filesbooleanNoMaterialize files from file/image/pdf/video blocks, file properties, and page icon/cover as related assetstrue
optional.content.include_linked_pagesbooleanNoWire parent, relation, and mention references between pages into the asset links graphtrue
optional.scopeobjectNoOptional Notion scope filters. When omitted, all content shared with the integration is eligible for sampling.no extra properties
optional.scope.data_source_idsarrayNoRestrict extraction to specific data source IDs (up to 250)max items 250
optional.scope.data_source_ids[]stringNo
optional.scope.page_idsarrayNoRestrict extraction to specific page IDs (up to 250)max items 250
optional.scope.page_ids[]stringNo
optional.scope.search_querystringNoOptional full-text query passed to the Notion search endpoint to narrow discoverymin length 1
Extracted Metadata

Page

FieldTypeRequiredDescription
page_idstringYesNotion page id
titlestringYesTitle of the page
links_countintegerYesNumber of linked or related assets
parent_typestringNoParent object type
parent_idstringNoParent object id
statusstringNoStatus from properties
tagsstring[]NoMulti-select property values

Data Source

FieldTypeRequiredDescription
data_source_idstringYesNotion data source id
namestringYesData source name
row_countintegerYesNumber of rows
columnsobject[]NoColumns as {name, type} objects (Notion property name and type)
parent_typestringNoParent object type
parent_idstringNoParent object id

File

FieldTypeRequiredDescription
selectorstringYesSelector for the file within the page
namestringYesFile name
is_externalbooleanYesWhether the file is externally hosted

Comments

FieldTypeRequiredDescription
comments_countintegerYesNumber of comments
page_idstringYesParent page id
Examples
Internal integration workspace scan
Scan all pages, data sources, and comments shared with an internal Notion integration using its token

Config Payload

{
  "type": "NOTION",
  "required": {},
  "masked": {
    "notion_token": "ntn_your-internal-integration-token"
  },
  "optional": {
    "content": {
      "include_comments": true,
      "include_files": true,
      "include_data_sources": true
    }
  },
  "sampling": {
    "strategy": "AUTOMATIC",
    "rows_per_page": 50
  }
}

Schedule

{
  "enabled": true,
  "preset": "nightly",
  "cron": "28 1 * * *",
  "timezone": "UTC"
}
OAuth data-source compliance scan
Scan specific Notion data sources via an OAuth access token and run PII and secrets detection

Config Payload

{
  "type": "NOTION",
  "required": {},
  "masked": {
    "notion_token": "secret_your-oauth-access-token"
  },
  "optional": {
    "scope": {
      "data_source_ids": [
        "11111111-2222-3333-4444-555555555555"
      ]
    },
    "content": {
      "include_comments": true,
      "include_files": true
    }
  },
  "sampling": {
    "strategy": "AUTOMATIC",
    "rows_per_page": 30
  },
  "detectors": [
    {
      "type": "PII",
      "enabled": true
    },
    {
      "type": "SECRETS",
      "enabled": true
    }
  ]
}

Schedule

{
  "enabled": true,
  "preset": "weekday_morning",
  "cron": "41 7 * * 1-5",
  "timezone": "UTC"
}
Full workspace crawl with OCR
Crawl every shared page with OCR enabled to extract text from PDF and image attachments, with PII detection

Config Payload

{
  "type": "NOTION",
  "required": {},
  "masked": {
    "notion_token": "ntn_your-internal-integration-token"
  },
  "optional": {
    "content": {
      "include_comments": true,
      "include_files": true,
      "include_linked_pages": true,
      "include_data_sources": true
    }
  },
  "sampling": {
    "strategy": "AUTOMATIC",
    "enable_ocr": true
  },
  "detectors": [
    {
      "type": "PII",
      "enabled": true
    }
  ]
}

Schedule

{
  "enabled": true,
  "preset": "weekly",
  "cron": "9 3 * * 0",
  "timezone": "UTC"
}