# Salesforce AppExchange Scraper | Emails & Numbers | $4 / 1k (`fatihtahta/salesforce-appexchange-scraper`) Actor

Scrape Salesforce AppExchange listings, capture app details including, descriptions, pricing, trials, rating details, all emails, phone number and more. ideal for vendor research and lead generation, $4 for 1000 listings.

- **URL**: https://apify.com/fatihtahta/salesforce-appexchange-scraper.md
- **Developed by:** [Fatih Tahta](https://apify.com/fatihtahta) (community)
- **Categories:** Lead generation, Developer tools, Automation
- **Stats:** 9 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.99 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Salesforce AppExchange Scraper | Emails & Numbers | $4 / 1k

### Overview

**Salesforce AppExchange Scraper | Emails & Numbers | $4 / 1k** collects structured data from [appexchange.salesforce.com](https://appexchange.salesforce.com), the official marketplace for Salesforce apps, add-ons, and consulting solutions. It captures key product details, pricing, contact points, and listing metadata so you can evaluate vendors, monitor competitors, and enrich your pipelines without manual browsing. Runs are fully automated, consistent, and ready to export for downstream workflows, saving you time while keeping results reliable.

### Why Use This Actor

- **Lead generation and outreach:** Surface sales and support contacts plus pricing signals to feed CRM and outreach tools.
- **Market research:** Track categories, ratings, and reviews to benchmark competitors or analyze verticals.
- **Product tracking:** Monitor listing updates, new editions, and trial offers to stay ahead of marketplace changes.
- **Directory building:** Build organized catalogs of AppExchange apps with links, industries, and supported products for internal portals or datasets.
- **Workflow friendly:** Designed for analysts, GTM teams, and builders who need repeatable, structured data without manual effort.

### Input Parameters

| Parameter | Type | Description | Default |
| --- | --- | --- | --- |
| `startUrls` | array of strings | One or more AppExchange search, category, or individual listing URLs to collect data from. Use filters at `https://appexchange.salesforce.com/explore` to refine what you scrape. | Prefilled examples provided |
| `limit` | integer | Maximum number of listings to save per input. | `50000` |
| `proxyConfiguration` | object | Proxy settings. The default residential proxy keeps the scraper reliable. | Apify Proxy with `RESIDENTIAL` group |

### Example Input

```json
{
  "startUrls": [
    "https://appexchange.salesforce.com/appxSearchKeywordResults?price=free%3Bfreemium&category=sales%3Baccounting%3BcompensationManagement"
  ],
  "limit": 200,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

### Example Output

Each dataset item represents one AppExchange listing with product, pricing, and contact information.

```json
{
  "id": "a0N30000000q64KEAQ",
  "url": "https://appexchange.salesforce.com/appxListingDetail?listingId=a0N30000000q64KEAQ",
  "title": "Outlook Integration for Emails and Calendars - Revenue Grid",
  "price": 30,
  "currency": "USD",
  "brand": "Revenue Grid",
  "description": "Capture Activities directly to Salesforce without compromises with the most robust integration. \n\n✅ Sync Emails, Calendars, Leads on your own terms. \n✅ 100% customizable\n✅   Custom object supported \n✅   Flexible deployment options\n✅  14 day Free trial",
  "fullDescription": "Data Auto-Capture\nForget about manually updating Salesforce with new events and contacts or saving emails, tasks or attachments. Data auto-capture automatically creates new or updates existing records for any object.  \n \nEmail Sidebar\nBoost Salesforce adoption by bringing it right to where users are already working: their inbox! Email sidebar shows the objects and fields you need, making it quick and easy to view and edit records or create new ones.\n \nScheduling\nSave time and cut out the back and forth. Include clickable time slots in emails to propose meeting times or share your whole availability with a “Book me” link so prospects can choose the time that works best for them.\n \nCalendar Sync and Lightning Scheduler Adapter\nKeep your Salesforce calendar synchronized with the calendar you actually use in Outlook or Gmail. New events or changes to existing events in one calendar will appear immediately in the other. And with our adapter, prospects will always see your real availability in Lightning Scheduler from both Salesforce and Outlook calendar so you can forget about conflicting scheduling.\n \nCompare to:\nLightning sync\nSalesforce Inbox\nCirrus Insight\nRiva",
  "publisherWebsite": "https://revenuegrid.com/?utm_source=appexchange&utm_medium=referral&utm_campaign=VendorPageLink&utm_content=company_info&utm_term=websitelink",
  "reviewCount": 511,
  "rating": 4.76,
  "categories": [
    "Email & Calendar Sync",
    "Integration",
    "Productivity"
  ],
  "editions": ["PE", "EE", "UE", "FE", "DE", "PP", "ES"],
  "languages": ["en", "fr", "de", "it", "ko", "ru", "zh_CN", "es", "zh_TW"],
  "productsSupported": ["Experience Cloud", "Financial Services Cloud", "Health Cloud"],
  "targetUserPersona": ["Admin", "Data Analyst", "Sales"],
  "highlights": [
    "400% MORE CAPTURED DATA IN CRM\n \n✅ Capture emails, contacts, calendar events, tasks, and attachments automatically\n✅ Automatically create new records without duplicates\n✅ Configure capture rules to meet your needs",
    "62% PRODUCTIVITY BOOST\n\n✅ Add available time slots to meeting invites or simply share your calendar availability \n✅ Access, edit, and manage relevant Salesforce data directly from your inbox\n✅ Show real-time, merged availability in Lightning Scheduler\n",
    "GET A SECURE, SCALABLE SOLUTION WITH 15+ YEARS OF EXPERIENCE\n\n✅ On-prem or private cloud deployment\n✅ SOC 2, ISO 27001, GDPR, Privacy Shield certified\n✅ O365, MS Exchange versions supported: 2010-present\n✅ Award-winning support, free implementation"
  ],
  "publishedDate": "2015-09-18",
  "pricing": {
    "plan": "Activity Capture 360",
    "price": 30,
    "currency": "USD",
    "units": "user",
    "frequency": "monthly"
  },
  "pricingPlans": [
    {
      "id": "fbb33631-003d-415b-8f6c-a038adbd48ee",
      "index": 0,
      "price": 30,
      "units": "user",
      "active": true,
      "frequency": "monthly",
      "plan_name": "Activity Capture 360",
      "trial_days": 14,
      "custom_unit": "",
      "currency_code": "USD",
      "source_record_type": "external"
    }
  ],
  "trialDays": 14,
  "supportEmail": "support@revenuegrid.com",
  "supportDetails": "Support available only for paid clients during Revenue Grid business hours: Monday-Friday 8 AM – 5 PM EST, with an average response time starting from 4 business hours.",
  "salesEmail": "sales@revenuegrid.com",
  "salesPhone": "+1 (866) 684 9276",
  "systemRequirements": "Supports: Mac, Office 365, Exchange 2010-2016 & Gmail, Outlook 2010-2016. Web: IE, Chrome, Safari, Firefox, OWA/Outlook for Mac, iOS, Android. SFDC Sales, Service, Community Cloud: Professional, Enterprise, Unlim, Customer & Partner Community licenses.",
  "isLightningReady": true,
  "isSalesforce1Mobile": true,
  "isSalesforceShield": true,
  "securityReviewStatus": "a0b30000000NhLxAAK",
  "listingCategories": ["Email & Calendar Sync", "Integration", "Productivity"],
  "industries": ["Financial Services", "Healthcare & Life Sciences", "High Tech"],
  "marketplace": "English",
  "productsRequired": ["Sales Cloud", "Service Cloud"]
}
```

- `id`, `url`, `title`, `brand`, and `description` summarize the listing and link back to AppExchange.
- `price`, `currency`, `pricing`, and `pricingPlans` show costs, billing units, and trials.
- `reviewCount`, `rating`, `categories`, `industries`, and `editions` outline positioning and eligibility.
- `supportEmail`, `salesEmail`, `salesPhone`, and `publisherWebsite` provide outreach options for teams.
- `highlights`, `fullDescription`, `systemRequirements`, and feature flags (Lightning, mobile, Shield) help evaluate fit.

### Notes & Limitations

- Use this actor responsibly and respect Salesforce AppExchange terms of service and any applicable policies.
- Start with smaller limits to validate your filters before scaling up.
- Ensure you have a lawful basis to store and use any contact information.

### Support

Questions or custom needs? Open an issue on the **Issues** tab of the actor page in Apify Console and it will be resolved around the clock.

Happy Scraping,

- Fatih

# Actor input Schema

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

Paste one or more Salesforce AppExchange Search, Category, or individual listing page URLs to scrape. check out https://appexchange.salesforce.com/explore to configure your filters.

## `limit` (type: `integer`):

Stop the run after this number of listings has been saved per input.

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

The default Apify Residential proxy keeps the scraper reliable.

## Actor input object example

```json
{
  "startUrls": [
    "https://appexchange.salesforce.com/appxSearchKeywordResults?price=free%3Bfreemium&category=sales%3Baccounting%3BcompensationManagement"
  ],
  "limit": 50000,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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": [
        "https://appexchange.salesforce.com/appxSearchKeywordResults?price=free%3Bfreemium&category=sales%3Baccounting%3BcompensationManagement"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("fatihtahta/salesforce-appexchange-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": ["https://appexchange.salesforce.com/appxSearchKeywordResults?price=free%3Bfreemium&category=sales%3Baccounting%3BcompensationManagement"] }

# Run the Actor and wait for it to finish
run = client.actor("fatihtahta/salesforce-appexchange-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": [
    "https://appexchange.salesforce.com/appxSearchKeywordResults?price=free%3Bfreemium&category=sales%3Baccounting%3BcompensationManagement"
  ]
}' |
apify call fatihtahta/salesforce-appexchange-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/jT4NI1wsNcXC0f7vh/builds/63VLQPifVjqdYyqKX/openapi.json
