# Notion Connections Scraper (`lexis-solutions/notion-connections-scraper`) Actor

Scrape Notion Connections: integration name, category, publisher, description, and website/social links from Notion's public app directory.

- **URL**: https://apify.com/lexis-solutions/notion-connections-scraper.md
- **Developed by:** [Lexis Solutions](https://apify.com/lexis-solutions) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.99 / 1,000 connections

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Notion Connections Scraper

![banner](https://image.thum.io/get/width/1400/crop/900/https://www.notion.com/connections)

Notion Connections is Notion's public directory of third-party integrations and apps that connect to Notion workspaces — things like Slack, Datadog, Panther, and hundreds of other tools. This actor extracts structured data for every listed connection, including its name, category, publisher, description, and social/website profile links.

### Introduction

The Notion Connections scraper accepts either the Notion Connections directory URL or individual connection detail URLs. Directory URLs are paged through to extract structured data for every listed connection, while detail URLs (e.g. `https://www.notion.com/connections/slack`) are scraped directly to pull the connection's full details, including its about section, features, how-to-use instructions, and preview images — all without needing a Notion account or API key.

### Use Cases

- **SaaS integration mapping**: Build a catalog of every app that integrates with Notion.
- **Competitive intelligence**: Track which vendors are investing in the Notion ecosystem and how they position their integrations.
- **Partner research**: Identify potential integration or co-marketing partners within the Notion ecosystem.
- **Market monitoring**: Watch for new or updated connections added to the Notion directory over time.

### Input

Provide the following fields:

- `startUrls` (array, required): Notion Connections URLs to scrape. Use the directory URL (e.g. `https://www.notion.com/connections`) to list connections, or a specific connection's detail URL (e.g. `https://www.notion.com/connections/slack`) to extract its full details.
- `maxItems` (integer, optional): Maximum number of connections to extract per start URL (default: 5). For detail URLs, each URL yields a single item.
- `proxyConfiguration` (object, optional): Apify proxy settings.

### Input Examples

**1) Default directory scrape**

```json
{
  "startUrls": [{ "url": "https://www.notion.com/connections" }],
  "maxItems": 5
}
````

**2) Larger extraction with proxy**

```json
{
  "startUrls": [{ "url": "https://www.notion.com/connections" }],
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

**3) Scrape a specific connection's full details**

```json
{
  "startUrls": [{ "url": "https://www.notion.com/connections/slack" }]
}
```

### Output

Every item — whether scraped from the directory listing or a specific connection's detail page — contains fields like:

```json
{
  "url": "https://www.notion.com/connections/panther",
  "name": "Panther",
  "slug": "panther",
  "publisher": "Panther",
  "category": ["Technology Partners", "Enterprise Integrations"],
  "description": "A SIEM built for speed, scale, and flexibility",
  "iconUrl": "https://images.ctfassets.net/spoqsaf9291f/2why2YpL1vvDv2erTmbMOY/4659b7c9f0840a1d28679d1ba9d532f9/Panther_LogoMark_Color_MD_-_Spencer_Thellmann.png",
  "websiteUrl": "https://panther.com/",
  "twitterUrl": "https://twitter.com/runpanther",
  "linkedinUrl": "https://www.linkedin.com/company/runpanther/",
  "facebookUrl": null,
  "about": "Install Notion's integration with Panther to detect, investigate, and automate response to threats at any scale...",
  "howToUse": "When inside Notion as a Workspace Owner, navigate to Settings & members → Connections...",
  "images": [
    "https://images.ctfassets.net/spoqsaf9291f/2why2YpL1vvDv2erTmbMOY/.../panther-preview.png"
  ],
  "features": [
    {
      "title": "workspaceEvents",
      "description": null
    }
  ],
  "scrapedAt": "2026-07-16T10:30:00.000Z"
}
```

`about`, `howToUse`, and `images` come from the same structured data for both directory and detail URLs. `features` differs slightly by source: detail pages render human-readable feature titles and descriptions (e.g. `"Read, insert, & update content"`), while directory listings only expose the underlying feature keys (e.g. `"workspaceEvents"`) with a `null` description — scrape a connection's detail URL directly if you need the human-readable feature text for it.

### Why use the Notion Connections Scraper?

- **Complete directory coverage**: Pages through the entire Notion Connections listing automatically.
- **Structured output**: Ready-to-use JSON records for BI tools, CRMs, and research pipelines.
- **Per-URL limits**: `maxItems` is enforced per start URL.
- **Fast**: No browser required — extracts data directly from the page's structured data.
- **Well-maintained**: Actively supported by Lexis Solutions.

### FAQ

- **Do I need a Notion account to use this scraper?**

  No, the scraper works without any account or API key.

- **How many connections can I scrape?**

  There is no hard limit. Use the `maxItems` field to control the number of results; the directory currently lists several hundred connections.

- **Is this scraper compliant with Notion's terms?**

  This scraper accesses only publicly available data. Always review the website's terms of service before scraping.

***

Got feedback or need an extension?

Lexis Solutions is a [certified Apify Partner](https://apify.com/partners/find).
We can help you with custom solutions or data extraction projects.

Contact us over [Email](mailto:scraping@lexis.solutions) or
[LinkedIn](https://www.linkedin.com/company/lexis-solutions)

### Support Our Work

If you're happy with our work and scrapers, you're welcome to leave us a
company review [here](https://apify.com/partners/find/lexis-solutions/review)

### Image Credit

Image credit: [notion.com](https://www.notion.com/)

# Actor input Schema

## `startUrls` (type: `array`):

Notion Connections URLs to scrape. Use the directory URL (e.g. https://www.notion.com/connections) to list connections, or a specific connection's detail URL (e.g. https://www.notion.com/connections/slack) to extract its full details.

## `maxItems` (type: `integer`):

Maximum number of connections to extract per start URL.

## `proxyConfiguration` (type: `object`):

Your proxy configuration from Apify.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.notion.com/connections"
    }
  ],
  "maxItems": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.notion.com/connections"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("lexis-solutions/notion-connections-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://www.notion.com/connections" }] }

# Run the Actor and wait for it to finish
run = client.actor("lexis-solutions/notion-connections-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.notion.com/connections"
    }
  ]
}' |
apify call lexis-solutions/notion-connections-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=lexis-solutions/notion-connections-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Notion Connections Scraper",
        "description": "Scrape Notion Connections: integration name, category, publisher, description, and website/social links from Notion's public app directory.",
        "version": "1.0",
        "x-build-id": "MnzcvYMF3A0jprTww"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/lexis-solutions~notion-connections-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-lexis-solutions-notion-connections-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/lexis-solutions~notion-connections-scraper/runs": {
            "post": {
                "operationId": "runs-sync-lexis-solutions-notion-connections-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/lexis-solutions~notion-connections-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-lexis-solutions-notion-connections-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Notion Connections URLs to scrape. Use the directory URL (e.g. https://www.notion.com/connections) to list connections, or a specific connection's detail URL (e.g. https://www.notion.com/connections/slack) to extract its full details.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Maximum number of items",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of connections to extract per start URL.",
                        "default": 5
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Your proxy configuration from Apify.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
