SaaS Pricing Scraper avatar

SaaS Pricing Scraper

Pricing

from $5.00 / 1,000 pricing plans

Go to Apify Store
SaaS Pricing Scraper

SaaS Pricing Scraper

Extract SaaS pricing plans from pricing pages. Returns plan name, monthly/yearly price, billing period, features, and CTA text using JSON-LD, data attributes, and DOM heuristics.

Pricing

from $5.00 / 1,000 pricing plans

Rating

0.0

(0)

Developer

Harsh

Harsh

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Apify Actor that extracts SaaS pricing plans from public pricing pages. Built with TypeScript, Crawlee CheerioCrawler, and heuristic parsers for common pricing page patterns.

Features

  • Extracts per plan: planName, monthlyPrice, yearlyPrice, billingPeriod, features[], ctaText
  • Multi-strategy extraction:
    • JSON-LD structured data (Product, Offer)
    • data-* attributes (data-plan, data-monthly-price, etc.)
    • DOM heuristics for pricing cards, tiers, and feature lists
  • Built-in retries, rate limiting, logging, and error handling
  • Optional Apify Proxy support

Input

FieldTypeDefaultDescription
startUrlsarraystripe + apify pricingPricing page URLs to scrape
maxRequestsPerCrawlinteger50Max pages per run
maxRequestRetriesinteger3HTTP retry count
maxRequestsPerMinuteinteger30Rate limit
useProxybooleantrueUse Apify Proxy

See examples/input.json for a ready-to-run example.

Output

Each dataset item represents one pricing plan:

{
"planName": "Pro",
"monthlyPrice": "$49",
"yearlyPrice": null,
"billingPeriod": "monthly",
"features": ["Unlimited projects", "Priority support"],
"ctaText": "Get started",
"sourceUrl": "https://example.com/pricing",
"scrapedAt": "2026-07-05T12:00:00.000Z",
"extractionMethod": "pricing-cards+json-ld",
"error": null
}

Local development

npm install
npm run lint
npm run build
npm test
apify run

Copy examples/input.json to storage/key_value_stores/default/INPUT.json to customize local runs.

Deploy

apify login
apify push

Limitations

  • Cheerio parses static HTML only. Pricing pages that render entirely client-side (heavy React/Vue SPAs) may return fewer or no plans.
  • Price parsing uses common currency symbols and numeric patterns; localized or custom formats may need site-specific tuning.
  • Heuristic selectors work across many SaaS sites but cannot guarantee 100% coverage.

Project structure

.actor/ Actor metadata, input/output/dataset schemas
examples/ Sample input JSON
src/
main.ts Crawler setup, rate limits, retries
routes.ts Request handler
pricing-extractor.ts Extraction heuristics
types.ts TypeScript interfaces
test/ Unit and integration tests

Resources