SaaSworthy Software Directory Scraper
Pricing
Pay per event
SaaSworthy Software Directory Scraper
Extract public SaaSworthy software profiles, pricing plans, features, ratings, review sentiment, alternatives, and vendor metadata for market intelligence.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Extract structured software profiles, pricing plans, features, ratings, review sentiment, alternatives, and vendor metadata from SaaSworthy.
Use product URLs for exact lookups or category slugs to build a market map. Each output row is a rich software-product record ready for spreadsheets, BI tools, databases, agents, and scheduled monitoring.
What does SaaSworthy Software Directory Scraper do?
The Actor visits public SaaSworthy product and category pages and turns them into consistent JSON records.
It collects:
- software name, slug, URL, tagline, and description
- primary software category
- SW Score and component scores
- aggregate user rating and rating count
- rating distribution
- pricing summary, free-plan, and free-trial signals
- named pricing plans, prices, billing periods, and plan features
- product feature lists
- supported platforms and organization types
- API and support availability
- suggested alternatives
- positive and negative review sentiment topics
- review summary, pros, and cons
- logo, screenshots, and buyer FAQs
Who is it for?
Product marketers
Track competitor positioning, plan packaging, feature claims, and review sentiment.
SaaS founders
Map a category before entering a market or changing pricing.
Analysts and investors
Build repeatable software-category datasets for market and deal research.
Content and SEO teams
Create evidence-backed comparison tables, alternatives pages, and software roundups.
Procurement teams
Collect comparable product, plan, feature, and rating data before shortlisting tools.
Data engineers
Feed normalized SaaSworthy records into warehouses, dashboards, and enrichment pipelines.
Why use this SaaSworthy scraper?
Copying product pages by hand is slow and difficult to refresh.
This Actor provides:
- exact product lookup by URL or slug
- category-level product discovery
- consistent field names across products
- nested pricing plans and alternatives
- bounded retries for traffic challenges
- optional Apify Proxy configuration
- JSON, CSV, Excel, XML, and RSS exports
- scheduled runs and webhook integrations
- pay-per-event pricing that scales with produced records
What data can I extract?
| Field | Description |
|---|---|
name | Software product name |
slug | Canonical SaaSworthy product slug |
productUrl | Public source URL |
tagline | Product positioning statement |
description | SaaSworthy product overview |
category | Primary software category |
swScore | SaaSworthy ranking score |
scoreBreakdown | Feature, review, momentum, and popularity components |
rating | Displayed user rating |
ratingCount | Number of displayed ratings |
ratingDistribution | Excellent through terrible percentages |
pricingSummary | Trial and starting-price summary |
hasFreeTrial | Whether a free trial is advertised |
hasFreePlan | Whether a free plan/freemium offer is advertised |
pricingPlans | Plan names, prices, billing periods, descriptions, features |
features | Product capabilities listed by SaaSworthy |
platforms | Browser, mobile, and desktop availability |
organizationTypes | Supported company sizes and user types |
apiSupport | Displayed API availability |
supportModes | Online and other support modes |
alternatives | Related products with canonical URLs |
positiveSentiments | Positive themes from review analysis |
negativeSentiments | Negative themes from review analysis |
reviewSummary | Source review summary |
pros | Summarized advantages |
cons | Summarized drawbacks |
logoUrl | Product logo URL |
screenshotUrls | Product screenshot URLs |
faqs | Buyer questions and answers |
scrapedAt | UTC extraction time |
How to scrape SaaSworthy product profiles
- Open the Actor in Apify Console.
- Add one or more product URLs or slugs.
- Set a small maximum for the first run.
- Leave proxy disabled unless your network is challenged.
- Click Start.
- Review the records in the SaaSworthy software products view.
- Export or integrate the default dataset.
Example product input:
{"productUrls": ["slack", "asana"],"maxItems": 2,"proxyConfiguration": { "useApifyProxy": false }}
How to scrape a SaaSworthy category
Use the part after /list/ in a category URL.
For example:
{"categories": ["project-management-software"],"maxItems": 20,"maxPagesPerCategory": 2}
The Actor discovers canonical product links and then opens each product profile.
To control run duration:
- reduce
maxItems - reduce
maxPagesPerCategory - split large category portfolios into scheduled tasks
- use exact product slugs when discovery is unnecessary
Input reference
productUrls
An array of full SaaSworthy product URLs or bare slugs.
Accepted examples:
slackasanahttps://www.saasworthy.com/product/slack
categories
An array of SaaSworthy category slugs or list URLs.
Examples:
project-management-softwarecrm-softwarebusiness-instant-messaging-software
startUrls
A mixed list of exact SaaSworthy product and list URLs.
maxItems
Maximum product records across all sources. Default: 10.
maxPagesPerCategory
Maximum listing pages visited for each category. Default: 2.
proxyConfiguration
Optional Apify Proxy settings. Direct browser access is the default and avoids unnecessary proxy bandwidth.
Output example
{"name": "Slack","slug": "slack","productUrl": "https://www.saasworthy.com/product/slack","category": "Business Instant Messaging Software","swScore": 98,"rating": 3.7,"ratingCount": 338,"hasFreeTrial": true,"hasFreePlan": true,"pricingPlans": [{"name": "Pro","price": "$4.38","billingPeriod": "per user / month","features": ["Unlimited message history", "Unlimited app integrations"]}],"positiveSentiments": ["Real-time Messaging", "Extensive Integrations"],"negativeSentiments": ["Storage Limitations", "Notification Overload"],"scrapedAt": "2026-07-14T00:00:00.000Z"}
Source fields vary by product. Missing source sections are returned as empty arrays or null rather than invented values.
How much does it cost to scrape SaaSworthy?
The Actor uses pay-per-event pricing:
- a small one-time Start event per run
- a Software product extracted event for each saved product
- tier discounts reduce the per-product event price on larger Apify plans
The current event price is displayed before each run in Apify Console.
Browser compute and optional proxy usage are billed separately by Apify. Keep first runs small to measure your workflow.
A run with exact product slugs is usually cheaper than a category crawl because it skips listing discovery.
Pricing intelligence workflow
To monitor competitor plans:
- Create one task with the target product slugs.
- Set
maxItemsto the portfolio size. - Schedule the task daily or weekly.
- Store each dataset in your warehouse.
- Compare
pricingPlans,features, andscrapedAtover time. - Trigger a webhook when a plan name, price, or feature list changes.
The Actor captures source data; your downstream workflow decides what counts as a meaningful change.
Market mapping workflow
To create a category map:
- Start from one or more category slugs.
- Collect product names, URLs, ratings, SW Scores, and alternatives.
- Use alternatives as relationship edges.
- Group products by pricing model and feature coverage.
- Refresh the map on a schedule.
This is useful for product strategy, market reports, acquisition scouting, and competitive content.
Tips for reliable runs
- Start with one known product such as
slack. - Prefer canonical SaaSworthy URLs.
- Avoid setting large limits before a small validation run.
- Use category discovery only when you need multiple products.
- Do not enable a residential proxy by default.
- If the site challenges your network, configure Apify Proxy and retry.
- Schedule conservative batches instead of one oversized run.
- Treat pricing details as source observations, not guaranteed vendor quotes.
- Confirm high-stakes purchasing decisions on the vendor website.
Handling errors and missing data
The Actor retries challenged navigation with fresh browser state.
If one product fails:
- the failure is logged
- other products continue
- no empty shell record is saved
A run fails when every requested product is invalid or inaccessible. This protects downstream systems from treating empty pages as real products.
Some products do not publish:
- pricing plans
- rating distribution
- review sentiment
- FAQs
- screenshots
Those fields remain empty or null.
Integrations
Google Sheets
Use the Apify Google Sheets integration to refresh a software comparison workbook.
Webhooks
Send a dataset-ready webhook to your change-detection or alerting service.
Zapier and Make
Trigger CRM updates, competitive-intelligence tickets, or content briefs after a scheduled run.
Data warehouses
Pull dataset items into BigQuery, Snowflake, PostgreSQL, or your object store.
Slack and email alerts
Compare the newest record with the previous run and notify a team when pricing or sentiment changes.
Run with the Apify API using cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~saasworthy-software-directory-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"productUrls":["slack"],"maxItems":1}'
Fetch dataset items after the run finishes:
$curl "https://api.apify.com/v2/datasets/DATASET_ID/items?clean=true&format=json"
Run with the Apify API using Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/saasworthy-software-directory-scraper').call({productUrls: ['slack', 'asana'],maxItems: 2,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Run with the Apify API using Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/saasworthy-software-directory-scraper').call(run_input={'categories': ['project-management-software'],'maxItems': 10,'maxPagesPerCategory': 1,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use with MCP and AI assistants
Connect the Actor through Apify MCP:
https://mcp.apify.com/?tools=automation-lab/saasworthy-software-directory-scraper
In Claude Code, add the hosted server:
$claude mcp add --transport http apify https://mcp.apify.com/?tools=automation-lab/saasworthy-software-directory-scraper
Claude Desktop setup
Cursor setup
VS Code setup
Claude Desktop and Cursor can use this mcpServers configuration (supply authentication using your environment or client settings):
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=automation-lab/saasworthy-software-directory-scraper"}}}
VS Code users can add the same HTTP URL from the MCP server settings. Authenticate the Apify MCP connection with your Apify token.
Example prompts:
- “Extract Slack and Asana pricing, features, ratings, and sentiment from SaaSworthy.”
- “Build a ten-product map of project management software.”
- “Compare the free plans and negative review themes of these SaaS competitors.”
- “Run my SaaSworthy competitor portfolio task and summarize pricing changes.”
AI output should cite the source records and avoid inventing unavailable fields.
Scheduling and monitoring
Apify tasks preserve a tested input configuration.
Recommended schedules:
- daily for high-priority competitor pricing
- weekly for product and sentiment monitoring
- monthly for broad category maps
Use a stable product list for clean comparisons. Category membership can naturally change between runs.
Data quality and limitations
SaaSworthy is a third-party software directory.
The Actor reports what the public source displays at extraction time.
Important limitations:
- source data may be vendor-entered or summarized
- rating counters may differ between page sections
- plan prices can be localized or outdated
- products may omit optional sections
- anti-bot rules can change
- a public profile can move to another slug
For procurement or financial decisions, verify details with the software vendor.
Is it legal to scrape SaaSworthy?
This Actor extracts publicly available pages without logging in.
You are responsible for:
- following applicable laws
- respecting website terms
- avoiding personal-data misuse
- choosing reasonable run frequency
- using the output for a lawful purpose
Do not use the Actor to bypass access controls or collect private account data.
FAQ
Does this Actor need a SaaSworthy account?
No. It uses public product and category pages.
Does it scrape individual user reviews?
It extracts aggregate ratings, rating distribution, sentiment topics, review summary, pros, and cons from the product profile. It does not emit individual reviewer records.
Can I scrape multiple categories?
Yes. Add several category slugs and set a combined maxItems cap.
Why did a product return no record?
The URL may be invalid, redirected to a generic page, temporarily challenged, or missing a real SaaSworthy product profile. Check the run log and test the canonical URL in a browser.
Why is a pricing plan missing?
Not every product publishes structured plans. SaaSworthy can also show only a starting-price summary.
Can I use a proxy?
Yes. Configure proxyConfiguration in the Actor input. Start without one, then enable it only when required.
Can I export CSV or Excel?
Yes. Apify datasets support JSON, CSV, Excel, XML, RSS, and other formats.
How do I avoid duplicates?
The Actor canonicalizes discovered product URLs and saves each product once per run.
Related scrapers
Combine this Actor with other automation-lab tools:
- G2 Scraper for software product and review intelligence
- Trustpilot Scraper for company review monitoring
- Google Maps Lead Finder for local-business research
Use only the sources needed for your workflow and reconcile entities by canonical website domain where possible.
Support
If a public SaaSworthy page works in your browser but fails in the Actor, open an issue from the Actor page.
Include:
- the exact input
- the run URL
- the affected SaaSworthy URL
- the expected field or record
This makes reproduction and repair faster.