# Slack Marketplace · Developer Emails (`corent1robert/slack-app-directory-developer-contacts`) Actor

Export unique Slack Marketplace app publishers for partnership and outreach. Public support email, website, categories and app portfolio — one vendor per row, not per listing. Keyword, app URL, category, or full catalog. No login. No API key.

- **URL**: https://apify.com/corent1robert/slack-app-directory-developer-contacts.md
- **Developed by:** [Corentin Robert](https://apify.com/corent1robert) (community)
- **Categories:** Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 unique slack app publishers

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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Slack Marketplace · Unique Developer Emails

Export **unique Slack Marketplace publishers** — public email, website, categories and app portfolio — **one vendor per row**, not one row per listing.

**No login. No Slack API key. No workspace access.**

### Who is this for?

| You are… | Typical goal | Suggested setup |
|---|---|---|
| Partnership / alliances at a SaaS | Unique publishers already selling into Slack, not duplicate app rows | Search your niche (`security`, `zoom`) then sort by `appCount` |
| Collab / security / HR SaaS | Vendors whose customers already live in Slack | Category (Security & Compliance, HR, Productivity) + **Require public email = Yes** |
| Outbound / SDR | CRM-ready inbox and company site | **Publishers — Outreach** view, CSV |
| Market research | Who publishes several Slack apps | Paid **Full catalog**, raise Max vendors |

**What you get by default:** unique publisher, public support inbox when listed, website origin, categories, sample listing icon — **only fields the Marketplace already shows**. Slack-built apps are skipped unless you turn that filter off.

**Typical fill (public `zoom` slice, Aug 2026):** 48 listings collapsed to 43 unique vendors; 8 exported with a public inbox (e.g. Zoom `zoom-integrations@zoom.us`, 4 Zoom apps → 1 row). Slack does not publish install counts or a developer display name.

**When the directory already has the inbox:** this Actor does not crawl the publisher’s marketing site. Slack listings typically publish a support email on the page itself.

### How to scrape Slack Marketplace publishers

1. Open this Actor in Apify Console.
2. **Step 1 — Mode:** leave **Search** (a niche) or switch to **Full catalog** (every unique publisher, paid). Catalog ignores keyword and category.
3. **Step 2 — Search** (Search mode only): keep `zoom`, or paste `https://slack.com/marketplace/A5GE9BMQC`. Optionally pick a category.
4. Leave **Max vendors** at 20 for a first run, then raise it. Full catalog: raise toward 5,000.
5. Click **Start**. Download JSON / CSV / Excel. Use **Publishers — Outreach** for the inbox; **Overview** for who ships several apps.

In Search mode, query **or** category is required. Full catalog is paid Apify plans only.

See the **Input** tab for the visible options (proxy is optional and hidden).

### Ready-made examples (published tasks)

| Example | What you get |
|---|---|
| [Find Slack security app publishers with emails](https://apify.com/corent1robert/slack-app-directory-developer-contacts/examples/security-slack-publishers-emails) | Unique Security & Compliance vendors, public inbox, CRM-ready |
| [Export Slack productivity app vendors for CRM](https://apify.com/corent1robert/slack-app-directory-developer-contacts/examples/productivity-slack-app-vendors) | Productivity category, one publisher per row |
| [Refresh Slack publisher contacts from an app URL](https://apify.com/corent1robert/slack-app-directory-developer-contacts/examples/app-url-zoom-refresh) | Paste a listing URL, get the vendor file |
| [Slack AI app publishers for cold outreach](https://apify.com/corent1robert/slack-app-directory-developer-contacts/examples/ai-slack-app-publishers-outreach) | AI Apps & Assistants niche, outreach view |

### What data can this Slack Marketplace scraper extract?

| Field | Why it matters for ICP |
|---|---|
| `developerEmail`, `emails` | Public inbox on the listing |
| `developerWebsite`, `developerDomain` | Company site + clean host for CRM match |
| `developerName` | Company inferred from the inbox / website host (Slack does not publish a developer display name) |
| `supportUrl`, `privacyPolicyUrl` | Other public ways in |
| `categories`, `appCount`, `appNames` | Portfolio in this run |
| `sampleAppName`, `sampleAppIcon`, `listingUrl` | Sample listing + logo |
| `sourceQuery`, `scrapedAt` | Run metadata |

Not extracted (and not invented): private Slack workspace contacts, guessed emails from the marketing site, install counts or review scores (Slack does not publish them on the public listing).

Two apps that share the same support-email domain stay **one lead**.

### How much does it cost to scrape Slack Marketplace publishers?

This Actor uses **pay-per-event** pricing. **Actor start is $0.00005** (Apify default — first 5 seconds of compute included). You only pay per **unique publisher written to the dataset**. You are not charged per app listing. Paid Apify plans get a lower price per vendor.

**Free plan:** a run stops at **20 vendors** — enough to test. Keyword / category: paid plans can raise Max vendors up to **2,000**. **Full catalog** (paid only) goes up to **5,000** unique publishers.

| | Free | Bronze | Silver | Gold | Platinum | Diamond |
|---|---|---|---|---|---|---|
| Per unique vendor | $0.001 | $0.0009 | $0.0008 | $0.0007 | $0.0006 | $0.0005 |
| 20 vendors (Try) | **$0.02** | $0.02 | $0.02 | $0.01 | $0.01 | $0.01 |
| 1,000 vendors | **$1.00** | $0.90 | $0.80 | $0.70 | $0.60 | $0.50 |
| Full catalog (~1,500–2,000 unique publishers) | **~$1.50–2.00** | $1.35–1.80 | $1.20–1.60 | $1.05–1.40 | $0.90–1.20 | $0.75–1.00 |

Totals include the $0.00005 start. Live Slack Marketplace scrapers on Apify charge **per app listing**: jungle (17 users) **$0.10 start + $1 / 1k apps**; crawlerbros **~$4.33 / 1k**; dadhalfdev **$9 / 1k**; lead.gen.labs **~$20 / 1k**. Same $1 / 1k sticker as jungle — but here two apps from the same publisher are **one charge**, and start is **$0.00005** not $0.10. A 1,000-vendor file is **$1** on Free — Zoom’s four apps count as one row.

Set **Max vendors** and, on Apify, a **max total charge** so a run cannot exceed your budget. A row with an empty email still counts if **Require public email** is **No**.

Default memory is **512 MB** (HTTP only, no browser).

### Is it legal to scrape Slack Marketplace?

This Actor only accesses data that Slack makes **publicly available** on [slack.com/marketplace](https://slack.com/marketplace) listing pages (support email, website, categories the publisher chose to show). As with any data containing personal information, ensure your use complies with GDPR and relevant regulations. Do not scrape personal data unless you have a legitimate reason to do so.

### Input

| Field | Required | Notes |
|---|---|---|
| Mode | yes | Search (default) or Full catalog (paid) |
| Keyword or Slack Marketplace URL | Search | `zoom`, `security`, or a `/marketplace/A…` URL |
| Marketplace category | Search | Optional. Combine with a keyword or use alone |
| Max vendors | no | Default 20. Cap 2,000 (search) / 5,000 (catalog) |
| Require public email | no | Default yes |
| Skip Slack-built apps | no | Default yes |

### Output example

```json
{
  "developerName": "Zoom",
  "developerWebsite": "https://zoom.us",
  "developerDomain": "zoom.us",
  "developerEmail": "zoom-integrations@zoom.us",
  "emails": ["zoom-integrations@zoom.us"],
  "emailSource": "directory",
  "supportUrl": "https://support.zoom.us/hc/en-us/articles/4418682867725",
  "categories": ["Communication", "Voice & Video"],
  "appCount": 4,
  "appNames": ["Zoom", "Zoom for Government", "Zoom AI", "Zoom Revenue Accelerator"],
  "sampleAppName": "Zoom",
  "listingUrl": "https://slack.com/marketplace/A5GE9BMQC-zoom"
}
```

### Also available

**[HubSpot Marketplace App Partners](https://apify.com/corent1robert/hubspot-marketplace-app-partners)** — unique HubSpot app vendors with named outreach contacts.\
**[WordPress.org Plugin Author Contacts](https://apify.com/corent1robert/wordpress-plugin-author-contacts)** — unique plugin authors with public emails.

### How to run via API

```bash
curl "https://api.apify.com/v2/acts/corent1robert~slack-app-directory-developer-contacts/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query":"zoom","maxVendors":20,"requireEmail":"yes"}'
```

### Local development

```bash
cd slack-app-directory-developer-contacts
npm install
npm test
apify run --purge --input-file=./input.json
```

### Performance

HTTP only, 512 MB default, 4h timeout. A 20-vendor keyword run typically finishes in under two minutes. Full catalog (~2,600 listings) is a longer paid job — unique vendors are fewer than listings because several apps share one publisher.

### FAQ

**Why is there no developer name on some rows?** Slack does not publish a company display name on public listings. The Actor uses the inbox / website host (e.g. `zoom.us` → Zoom) or the sample app title when there is only one app.

**Why skip Slack-built apps?** Incoming Webhooks and similar Slack-owned listings have no third-party inbox. Turn **Skip Slack-built** off if you want them.

**Do I need a Slack token?** No. Public Marketplace pages only.

**Do I pay per app?** No. Two apps from the same publisher = **one** charge.

**Is a proxy required?** No. Enable Apify Proxy only if you get blocked.

### Support

Use the **Issues** tab for bugs. Custom needs: **corentin@outreacher.fr**

*Keywords: Slack Marketplace scraper, Slack app directory email, Slack app publisher leads, Slack app developer contacts, Slack Marketplace unique vendors.*

# Actor input Schema

## `coverage` (type: `string`):

**Search (default):** use Step 2 (keyword, app URL and/or category).

**Full catalog (paid):** walks Slack Marketplace listings into unique publishers. Leave Step 2 empty — it is ignored. Set Max vendors to how many publishers you will pay for. Free Apify plans cannot use Full catalog.

## `query` (type: `string`):

Examples: `zoom` · `security` · `https://slack.com/marketplace/A5GE9BMQC`

Leave empty if you only pick a category. **Ignored** when Mode is Full catalog.

## `category` (type: `string`):

Optional, Search mode only. Leave **None** if you already typed a query. **Ignored** when Mode is Full catalog.

## `maxVendors` (type: `integer`):

**Global** cap of unique publisher rows (one company, many Slack apps). Default **20** keeps first runs cheap. Keyword mode: up to **2,000**. Full catalog (paid): up to **5,000**.

## `requireEmail` (type: `string`):

**Yes (default):** skip publishers with no public inbox on the listing. **No:** also keep publishers with only a website.

## `skipSlackBuilt` (type: `string`):

**Yes (default):** keep independent publishers only (Slack-owned integrations are dropped). **No:** include Slack-built apps.

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

Optional. Direct HTTP is enough for the public directory. Enable Apify Proxy only if you get blocked.

## `minDelayMs` (type: `integer`):

Minimum pause between every HTTP request.

## `maxRequestRetries` (type: `integer`):

Retries on block / 5xx, rotating the proxy session when a proxy is configured.

## `verboseLogs` (type: `boolean`):

Add debug lines to the run log (status codes and skipped listing ids).

## Actor input object example

```json
{
  "coverage": "search",
  "query": "zoom",
  "category": "",
  "maxVendors": 20,
  "requireEmail": "yes",
  "skipSlackBuilt": "yes",
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "minDelayMs": 250,
  "maxRequestRetries": 5,
  "verboseLogs": false
}
```

# Actor output Schema

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

Who to contact: outreach email, app count, sample listing

## `outreach` (type: `string`):

Inbox, website and support URL for a first email

## `portfolio` (type: `string`):

App count, categories and sample listing

## `dataset` (type: `string`):

All publisher rows

## `output` (type: `string`):

Vendors scraped, listings fetched, filters

## `runLog` (type: `string`):

Live progress

# 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 = {
    "query": "zoom"
};

// Run the Actor and wait for it to finish
const run = await client.actor("corent1robert/slack-app-directory-developer-contacts").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 = { "query": "zoom" }

# Run the Actor and wait for it to finish
run = client.actor("corent1robert/slack-app-directory-developer-contacts").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "query": "zoom"
}' |
apify call corent1robert/slack-app-directory-developer-contacts --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,corent1robert/slack-app-directory-developer-contacts"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/WzoC06Quwy07cYEfG/builds/p0sC0uy8GHJdN9sgE/openapi.json
