Salesforce AppExchange Scraper avatar

Salesforce AppExchange Scraper

Pricing

from $5.00 / 1,000 listing scrapeds

Go to Apify Store
Salesforce AppExchange Scraper

Salesforce AppExchange Scraper

Scrape Salesforce AppExchange app listings: name, publisher firmographics (website, email, country, size), pricing plans, edition matrix, supported languages, average rating and review count. No login needed.

Pricing

from $5.00 / 1,000 listing scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

1

Monthly active users

2 days ago

Last modified

Share

What is Salesforce AppExchange Scraper?

Salesforce AppExchange Scraper extracts Salesforce AppExchange app listings into one dataset row per listing. Each row returns the app name, tagline and full description, rating and review count, every pricing plan with currency, billing frequency and unit, the supported Salesforce editions, languages, Lightning, Shield and FedRAMP flags, and the publisher's website, contact email, sales contact, country, location and employee count. ISV product managers, Salesforce partners, B2B lead-gen teams, market researchers and AI agents use it to study the AppExchange catalog and build vendor lists, with no Salesforce login.

Why ISV and partner teams use it

  • Pricing plans as data. pricingPlans lists every plan with price, currency, frequency, unit and trialDays, plus a startingPrice summary for quick sorting.
  • Publisher firmographics. publisherWebsite, publisherEmail, publisherCountry, publisherLocation, publisherEmployees and salesEmail turn each listing into a vendor record.
  • Edition and compliance matrix. editions, editionCodes, isLightningReady, isSalesforceShield, isFedrampCertified and isSalesforceMobile show where an app fits.
  • Two ways in. Paste listing URLs or IDs, or browse the App or Consulting catalog with an optional keyword filter.
  • Rich listing content. fullDescription, highlights and screenshots capture how each vendor positions its product.

Best fit for this Actor

  • Best fit for competitive intelligence on known AppExchange apps and for slicing the catalog by keyword.
  • Use listingUrls for exact apps you already track, and listingType plus keyword to discover apps in a niche.
  • Designed for public listing and publisher data; each row is one listing.
  • When you want the publisher's LinkedIn company page next, then pass publisherWebsite to LinkedIn Company Finder from Website.

Example workflow: mapping a CPQ competitor set

A product manager at a Salesforce ISV starts with the AppExchange links of six competing quoting apps. She pastes them into listingUrls and runs the Actor. The dataset returns each app's pricingPlans, startingPrice, editions, averageRating, reviewCount and publisherEmployees. She exports the rows to a spreadsheet, compares per-user monthly prices against edition coverage, then shares the matrix with her pricing committee. She schedules the same input monthly so price changes show up in the next export.

Input

Scrape specific listings:

{
"listingUrls": [
"https://appexchange.salesforce.com/appxListingDetail?listingId=a0N4V00000FguFBUAZ",
"a0N3A00000FMkeoUAD"
],
"maxResults": 50
}

Browse the catalog with a keyword:

{
"listingType": "App",
"keyword": "marketing",
"maxResults": 100,
"maxScan": 600
}
FieldTypeWhat it controls
listingUrlsarray of stringsFull appxListingDetail URLs or raw a0N... listing IDs. When set, browse settings are skipped.
listingTypestringApp or Consulting catalog in browse mode. Default App.
keywordstringCase-insensitive match on name, tagline, description, publisher and categories in browse mode.
maxResultsintegerListings returned and billed. Default 50.
maxScanintegerListings inspected while searching for keyword matches. Default 400.
proxyConfigurationobjectApify Proxy settings. Default Apify datacenter proxy.

Output

One row per listing. A real row (publisher contact email replaced with a fictional value, screenshots shortened):

{
"listingId": "a0N4V00000FguFBUAZ",
"appExchangeId": "a0N3u00000ONfPREA1",
"name": "BenefitsGuide: Business Listings",
"tagline": "Form 5500 data for employee benefits & financial service professionals",
"listingType": "App",
"technology": "force/package",
"appType": "Package/Platform/Data",
"recordType": "Data",
"listingUrl": "https://appexchange.salesforce.com/appxListingDetail?listingId=a0N4V00000FguFBUAZ",
"averageRating": 5,
"reviewCount": 1,
"isPaid": true,
"startingPrice": 20,
"startingPriceCurrency": "USD",
"startingPriceFrequency": "monthly",
"startingPriceUnit": "user",
"paymentType": "publisher_provided",
"pricingPlans": [
{
"planName": "Default Plan",
"price": 20,
"currency": "USD",
"frequency": "monthly",
"unit": "user",
"trialDays": 0
}
],
"editions": ["Professional", "Enterprise", "Unlimited", "Force.com", "Developer", "Performance"],
"editionCodes": ["PE", "EE", "UE", "FE", "DE", "PP"],
"languages": ["en"],
"isLightningReady": true,
"isSalesforceMobile": false,
"isSalesforceShield": true,
"isFedrampCertified": false,
"isPledge1Percent": false,
"publishedDate": "2021-05-04",
"publisherName": "BenefitsGuide",
"publisherWebsite": "http://www.benefitsguide.com",
"publisherEmail": "partner.contact@benefitsguide.com",
"publisherCountry": "US",
"publisherLocation": "Woodbury, NY USA",
"publisherEmployees": 8,
"salesEmail": "sales@benefitsguide.com",
"screenshots": [
"https://appexchange.salesforce.com/partners/servlet/servlet.FileDownload?file=00P4V00000rJYF5UAO"
],
"scrapedAt": "2026-10-01T20:56:11.684Z"
}
FieldWhat it contains
listingId, appExchangeId, listingUrl, publishedDateListing identity, link and publish date
name, tagline, description, fullDescription, highlightsListing copy
listingType, technology, appType, recordTypeWhat kind of listing it is
averageRating, reviewCountReview summary
isPaid, startingPrice, startingPriceCurrency, startingPriceFrequency, startingPriceUnit, paymentTypePrice summary
pricingPlansEvery plan with price, currency, frequency, unit and trial days
editions, editionCodes, languagesSupported Salesforce editions and languages
isLightningReady, isSalesforceMobile, isSalesforceShield, isFedrampCertified, isPledge1PercentPlatform and program flags
publisherName, publisherWebsite, publisherEmail, publisherPhone, publisherDescriptionPublisher identity and contact
publisherCountry, publisherLocation, publisherEmployeesPublisher firmographics
salesEmail, salesPhoneSales contact
screenshots, scrapedAtMedia URLs and collection time

Pricing

This Actor uses Pay per event plus Apify platform usage. You pay one Listing scraped event for each listing saved and one Actor Start event per run, and Apify platform usage for compute and proxy is billed alongside. The live Pricing tab on this page shows the current event prices.

Worked example in words: a run with six competitor URLs saves six listings, so it costs six Listing scraped events, one start event and the platform usage of a short run. In browse mode, maxResults caps the Listing scraped events.

Use with AI agents (MCP)

Connect the Actor to an MCP client through Apify MCP and ask:

Get the AppExchange listing for this URL and tell me its starting price, pricing plans, supported editions, rating and the publisher's country and size.

Agent checklist:

  1. Pass exact apps in listingUrls; use listingType with keyword for discovery.
  2. Read rows with get-dataset-items; cite listingUrl and scrapedAt as provenance.
  3. Cost scope: one Listing scraped event per saved row, capped by maxResults.

API example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~salesforce-appexchange-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"listingUrls": ["a0N4V00000FguFBUAZ"], "maxResults": 1}'
Your next stepUseWhy
When you want the publisher's LinkedIn pageLinkedIn Company Finder from WebsiteTurns publisherWebsite into a LinkedIn company URL
When you want more contacts from publisher sitesBulk Website Contact ExtractorEmails, phones and social links per domain
When you want review text for the same softwareSoftware Reviews All-in-One ScraperReviews from major B2B review sites

Best results

Starting situationHelpful actionExpected outcome
A known competitor setPaste URLs or a0N... IDs in listingUrlsExactly those listings
Exploring a nichelistingType: "App" with a keywordListings whose text contains the keyword
A rare keywordRaise maxScanMore of the catalog inspected for matches
Partner researchlistingType: "Consulting"Consulting partner listings
Price trackingSchedule the same listingUrlsComparable rows over time

The keyword filter is a literal text match over listing fields, so precise words such as CPQ or e-signature give the cleanest slices.

Builder's note

I found that each AppExchange listing page is fed by a public JSON response that already holds plans, editions and publisher details, so I read that directly rather than rendering the page. I chose a transparent keyword filter over scraped fields because it gives repeatable slices, and direct URLs remain the precise way to track a known app.

FAQ

Do I need a Salesforce login?

No. The data comes from public AppExchange listing data.

Does it include review text?

Each row carries averageRating and reviewCount. For review text, use a review scraper such as the one linked above.

Can I scrape consulting partners?

Yes. Set listingType to Consulting in browse mode.

Responsible use

This Actor collects public AppExchange listing and publisher information. Publisher contact emails and phones can be personal data under the GDPR, CCPA and similar laws, so use them with a lawful basis, honor opt-outs, and respect Salesforce's terms. Salesforce and AppExchange are trademarks of Salesforce, Inc.; this independent Actor is not affiliated with or endorsed by Salesforce.