Salesforce AppExchange Scraper
Pricing
from $5.00 / 1,000 listing scrapeds
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
Maintained by CommunityActor 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.
pricingPlanslists every plan withprice,currency,frequency,unitandtrialDays, plus astartingPricesummary for quick sorting. - Publisher firmographics.
publisherWebsite,publisherEmail,publisherCountry,publisherLocation,publisherEmployeesandsalesEmailturn each listing into a vendor record. - Edition and compliance matrix.
editions,editionCodes,isLightningReady,isSalesforceShield,isFedrampCertifiedandisSalesforceMobileshow 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,highlightsandscreenshotscapture 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
listingUrlsfor exact apps you already track, andlistingTypepluskeywordto 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
publisherWebsiteto 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}
| Field | Type | What it controls |
|---|---|---|
listingUrls | array of strings | Full appxListingDetail URLs or raw a0N... listing IDs. When set, browse settings are skipped. |
listingType | string | App or Consulting catalog in browse mode. Default App. |
keyword | string | Case-insensitive match on name, tagline, description, publisher and categories in browse mode. |
maxResults | integer | Listings returned and billed. Default 50. |
maxScan | integer | Listings inspected while searching for keyword matches. Default 400. |
proxyConfiguration | object | Apify 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"}
| Field | What it contains |
|---|---|
listingId, appExchangeId, listingUrl, publishedDate | Listing identity, link and publish date |
name, tagline, description, fullDescription, highlights | Listing copy |
listingType, technology, appType, recordType | What kind of listing it is |
averageRating, reviewCount | Review summary |
isPaid, startingPrice, startingPriceCurrency, startingPriceFrequency, startingPriceUnit, paymentType | Price summary |
pricingPlans | Every plan with price, currency, frequency, unit and trial days |
editions, editionCodes, languages | Supported Salesforce editions and languages |
isLightningReady, isSalesforceMobile, isSalesforceShield, isFedrampCertified, isPledge1Percent | Platform and program flags |
publisherName, publisherWebsite, publisherEmail, publisherPhone, publisherDescription | Publisher identity and contact |
publisherCountry, publisherLocation, publisherEmployees | Publisher firmographics |
salesEmail, salesPhone | Sales contact |
screenshots, scrapedAt | Media 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:
- Pass exact apps in
listingUrls; uselistingTypewithkeywordfor discovery. - Read rows with
get-dataset-items; citelistingUrlandscrapedAtas provenance. - 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}'
Related tools for vendor research
| Your next step | Use | Why |
|---|---|---|
| When you want the publisher's LinkedIn page | LinkedIn Company Finder from Website | Turns publisherWebsite into a LinkedIn company URL |
| When you want more contacts from publisher sites | Bulk Website Contact Extractor | Emails, phones and social links per domain |
| When you want review text for the same software | Software Reviews All-in-One Scraper | Reviews from major B2B review sites |
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| A known competitor set | Paste URLs or a0N... IDs in listingUrls | Exactly those listings |
| Exploring a niche | listingType: "App" with a keyword | Listings whose text contains the keyword |
| A rare keyword | Raise maxScan | More of the catalog inspected for matches |
| Partner research | listingType: "Consulting" | Consulting partner listings |
| Price tracking | Schedule the same listingUrls | Comparable 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.