{
  "ab_internal": {
    "isEnterprise": false,
    "ql": 400,
    "requireVersionIncrementsInPullRequests": true,
    "sl": 200
  },
  "allowedHosts": {
    "hosts": [
      "api.notion.com"
    ]
  },
  "connectorBuildOptions": {
    "baseImage": "docker.io/airbyte/source-declarative-manifest:7.23.7.post4.dev30357014888@sha256:ee7f99ddd45a7be1c364e2a298fade8361a865eb498c86ab6a172511becf5338"
  },
  "connectorTestSuitesOptions": [
    {
      "suite": "liveTests",
      "testConnections": [
        {
          "id": "58842b61-7557-4971-829a-5a1cc43d7614",
          "name": "notion_config_oauth_dev_null"
        },
        {
          "id": "8af67fe8-a20e-4eae-816a-2a3c893c0360",
          "name": "notion_config_dev_null"
        }
      ]
    },
    {
      "suite": "unitTests"
    },
    {
      "suite": "acceptanceTests",
      "testSecrets": [
        {
          "fileName": "config.json",
          "name": "SECRET_SOURCE-NOTION__CREDS",
          "secretStore": {
            "alias": "airbyte-connector-testing-secret-store",
            "type": "GSM"
          }
        },
        {
          "fileName": "config_oauth.json",
          "name": "SECRET_SOURCE-NOTION__CREDS_OAUTH",
          "secretStore": {
            "alias": "airbyte-connector-testing-secret-store",
            "type": "GSM"
          }
        }
      ]
    }
  ],
  "custom": false,
  "dockerImageTag": "4.0.18-preview.290de9f",
  "dockerRepository": "airbyte/source-notion",
  "documentationUrl": "https://docs.airbyte.com/integrations/sources/notion",
  "externalDocumentationUrls": [
    {
      "title": "Changes by version",
      "type": "api_reference",
      "url": "https://developers.notion.com/reference/changes-by-version"
    },
    {
      "title": "Changelog",
      "type": "api_release_history",
      "url": "https://developers.notion.com/page/changelog"
    }
  ],
  "generated": {
    "git": {
      "commit_author": "Devin AI",
      "commit_author_email": "158243242+devin-ai-integration[bot]@users.noreply.github.com",
      "commit_sha": "290de9f641bf5a3f85ce2d45cce3c86fb2729258",
      "commit_timestamp": "2026-07-28T12:07:48+00:00"
    },
    "sbomUrl": "https://connectors.airbyte.com/files/sbom/airbyte/source-notion/4.0.18-preview.290de9f.spdx.json",
    "source_file_info": {
      "metadata_bucket_name": "prod-airbyte-cloud-connector-metadata-service",
      "metadata_file_path": "metadata/airbyte/source-notion/4.0.18-preview.290de9f/metadata.yaml",
      "metadata_last_modified": "2026-07-28T12:14:47.176147+00:00",
      "registry_entry_generated_at": "2026-07-28T12:14:47.176147+00:00"
    }
  },
  "githubIssueLabel": "source-notion",
  "icon": "notion.svg",
  "iconUrl": "https://connectors.airbyte.com/files/metadata/airbyte/source-notion/latest/icon.svg",
  "language": "manifest-only",
  "license": "ELv2",
  "maxSecondsBetweenMessages": 1,
  "name": "Notion",
  "packageInfo": {},
  "public": true,
  "releaseStage": "generally_available",
  "releases": {
    "breakingChanges": {
      "2.0.0": {
        "message": "Version 2.0.0 introduces schema changes to multiple properties shared by the blocks, databases and pages streams. These changes were introduced to reflect updates to the Notion API. A full schema refresh and data reset are required to upgrade to this version.",
        "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/notion-migrations#2.0.0",
        "upgradeDeadline": "2023-11-09"
      },
      "3.0.0": {
        "message": "The source Notion connector is being migrated from the Python CDK to our declarative low-code CDK. Due to changes in the handling of state format between these CDKs, this migration constitutes a breaking change for users syncing the `Comments` stream. To ensure a smooth migration, please reset your data for this stream upon updating. This will facilitate a fresh first sync. If you are not syncing the `Comments` stream, you can upgrade without any further action. For more information, see our migration documentation for source Notion.",
        "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/notion-migrations#3.0.0",
        "scopedImpact": [
          {
            "impactedScopes": [
              "comments"
            ],
            "scopeType": "stream"
          }
        ],
        "upgradeDeadline": "2024-04-29"
      },
      "4.0.0": {
        "message": "This version migrates the connector to Notion API version 2025-09-03. The `databases` stream has been replaced by a new `data_sources` stream with a different schema. Pages now reference `data_source_id` instead of `database_id` in their parent field. The `blocks` stream has new fields (`in_trash`, `data_source_id` parent type). A full schema refresh and data reset are required for the `data_sources`, `pages`, and `blocks` streams. For more information, see our migration documentation for source Notion.",
        "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/notion-migrations#4.0.0",
        "scopedImpact": [
          {
            "impactedScopes": [
              "data_sources",
              "pages",
              "blocks"
            ],
            "scopeType": "stream"
          }
        ],
        "upgradeDeadline": "2026-04-10"
      }
    },
    "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/notion-migrations",
    "rolloutConfiguration": {
      "advanceDelayMinutes": 10,
      "enableProgressiveRollout": false,
      "initialPercentage": 0,
      "maxPercentage": 50
    }
  },
  "remoteRegistries": {
    "pypi": {
      "enabled": false,
      "packageName": "airbyte-source-notion"
    }
  },
  "sourceDefinitionId": "6e00b415-b02e-4160-bf02-58176a0ae687",
  "sourceType": "api",
  "spec": {
    "advanced_auth": {
      "auth_flow_type": "oauth2.0",
      "oauth_config_specification": {
        "complete_oauth_output_specification": {
          "properties": {
            "access_token": {
              "path_in_connector_config": [
                "credentials",
                "access_token"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "complete_oauth_server_input_specification": {
          "properties": {
            "client_id": {
              "type": "string"
            },
            "client_secret": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "complete_oauth_server_output_specification": {
          "properties": {
            "client_id": {
              "path_in_connector_config": [
                "credentials",
                "client_id"
              ],
              "type": "string"
            },
            "client_secret": {
              "path_in_connector_config": [
                "credentials",
                "client_secret"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "oauth_connector_input_specification": {
          "access_token_headers": {
            "Authorization": "Basic {{ (client_id_value ~ ':' ~ client_secret_value) | b64encode }}",
            "Content-Type": "application/x-www-form-urlencoded"
          },
          "access_token_params": {
            "code": "{{ auth_code_value }}",
            "grant_type": "authorization_code",
            "redirect_uri": "{{ redirect_uri_value }}"
          },
          "access_token_url": "https://api.notion.com/v1/oauth/token",
          "consent_url": "https://api.notion.com/v1/oauth/authorize?{{client_id_param}}&{{redirect_uri_param}}&response_type=code&{{state_param}}",
          "extract_output": [
            "access_token"
          ],
          "scopes_join_strategy": "space"
        }
      },
      "predicate_key": [
        "credentials",
        "auth_type"
      ],
      "predicate_value": "OAuth2.0"
    },
    "connectionSpecification": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "credentials": {
          "description": "Choose either OAuth (recommended for Airbyte Cloud) or Access Token. See our <a href='https://docs.airbyte.com/integrations/sources/notion#setup-guide'>docs</a> for more information.",
          "oneOf": [
            {
              "properties": {
                "access_token": {
                  "airbyte_secret": true,
                  "description": "The Access Token received by completing the OAuth flow for your Notion integration. See our <a href='https://docs.airbyte.com/integrations/sources/notion#step-2-set-permissions-and-acquire-authorization-credentials'>docs</a> for more information.",
                  "title": "Access Token",
                  "type": "string"
                },
                "auth_type": {
                  "const": "OAuth2.0",
                  "type": "string"
                },
                "client_id": {
                  "airbyte_secret": true,
                  "description": "The Client ID of your Notion integration. See our <a href='https://docs.airbyte.com/integrations/sources/notion#step-2-set-permissions-and-acquire-authorization-credentials'>docs</a> for more information.",
                  "title": "Client ID",
                  "type": "string"
                },
                "client_secret": {
                  "airbyte_secret": true,
                  "description": "The Client Secret of your Notion integration. See our <a href='https://docs.airbyte.com/integrations/sources/notion#step-2-set-permissions-and-acquire-authorization-credentials'>docs</a> for more information.",
                  "title": "Client Secret",
                  "type": "string"
                }
              },
              "required": [
                "auth_type",
                "client_id",
                "client_secret",
                "access_token"
              ],
              "title": "OAuth2.0",
              "type": "object"
            },
            {
              "properties": {
                "auth_type": {
                  "const": "token",
                  "type": "string"
                },
                "token": {
                  "airbyte_secret": true,
                  "description": "The Access Token for your private Notion integration. See the <a href='https://docs.airbyte.com/integrations/sources/notion#step-1-create-an-integration-in-notion'>docs</a> for more information on how to obtain this token.",
                  "title": "Access Token",
                  "type": "string"
                }
              },
              "required": [
                "auth_type",
                "token"
              ],
              "title": "Access Token",
              "type": "object"
            }
          ],
          "order": 1,
          "title": "Authentication Method",
          "type": "object"
        },
        "num_workers": {
          "default": 3,
          "description": "Number of worker threads to use for the sync. Higher values can speed up large syncs but may increase rate-limit pressure against Notion's limit of approximately three requests per second per integration.",
          "examples": [
            1,
            3,
            10
          ],
          "maximum": 10,
          "minimum": 1,
          "order": 2,
          "title": "Number of concurrent workers",
          "type": "integer"
        },
        "start_date": {
          "description": "UTC date and time in the format YYYY-MM-DDTHH:MM:SS.000Z. During incremental sync, any data generated before this date will not be replicated. If left blank, the start date will be set to 2 years before the present date.",
          "examples": [
            "2020-11-16T00:00:00.000Z"
          ],
          "format": "date-time",
          "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}Z$",
          "pattern_descriptor": "YYYY-MM-DDTHH:MM:SS.000Z",
          "title": "Start Date",
          "type": "string"
        }
      },
      "title": "Notion Source Spec",
      "type": "object"
    },
    "supportsDBT": false,
    "supportsNormalization": false
  },
  "suggestedStreams": {
    "streams": [
      "blocks",
      "data_sources",
      "pages",
      "users"
    ]
  },
  "supportLevel": "certified",
  "supportsDataActivation": false,
  "supportsFileTransfer": false,
  "tags": [
    "language:manifest-only",
    "cdk:low-code"
  ],
  "tombstone": false
}
