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

23 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