DEV Community

Vhub Systems
Vhub Systems

Posted on

How to Cut Web Scraping Costs by 95% Using Pay-Per-Result Actors (vs $49–$500/mo Tools)

I was spending $149/month on a scraping infrastructure subscription for a side project that pulled Amazon product data. The project made $47/month in affiliate revenue.

The math was obviously broken — and it took me three months to realize the problem wasn't my pricing strategy, it was my tooling contract. Every major scraping infrastructure platform charges you a flat monthly fee whether you scrape 100 pages or 100,000. You're paying for capacity, not output.

In 2025–2026, there's a better model: pay only for the data you actually get. This article shows you exactly how to move there.


The Pricing Cliff Problem

Here's how scraping infrastructure pricing actually works:

Tool Entry Price What You Get
Bright Data $500+/month Proxy pool + scrapers
Apify (flat plan) $49/month 100 actor runs
ScrapingBee $49/month 150,000 API credits
ZenRows $49/month 250,000 API credits
Oxylabs $180+/month Proxy pool

The trap: the entry price sounds reasonable. But real workloads hit the ceiling fast. A weekly price-monitoring job checking 500 products daily? You'll burn through a $49/month ScrapingBee plan in 10 days. The next tier is $149. Then $299.

Worse: you pay even when the target site goes down, blocks you, or returns empty data. The monthly fee doesn't care whether you got good results.


Why This Happened: The Infrastructure Layer Markup

These services are solving real engineering problems — proxy rotation, browser rendering, CAPTCHA bypass, fingerprint spoofing. Those problems are genuinely hard and expensive to build. But when they wrap that infrastructure in SaaS pricing, you pay for:

  • The engineering team that built it
  • The sales team that sold it
  • The VC returns expected from SaaS multiples
  • The capacity you might need but don't

The pay-per-result model strips all of that out. You pay for successful data. Failed requests don't count.


The Alternative: Apify Actors on Pay-Per-Result Billing

Apify's actor marketplace includes purpose-built scrapers for specific targets. Unlike the generalist proxy-API model, each actor is optimized for one source. The billing is compute-based — you pay for actual execution time, not a monthly subscription.

The actor we'll use for this example: lanky_quantifier/amazon-product-scraper — built specifically for Amazon ASINs, handles anti-bot automatically, returns structured JSON.


Step 1: Understand What You're Paying For

Run a quick calculation on your current scraping spend:

# How to calculate your actual cost-per-result
monthly_fee = 49.00       # What you pay
successful_requests = 12000  # What you actually got last month
failed_or_cached = 3000      # Empty/blocked/error responses

actual_cost_per_result = monthly_fee / successful_requests
print(f"You're paying ${actual_cost_per_result:.4f} per valid result")
# → $0.0041 per result, but you paid for 15,000 attempts
Enter fullscreen mode Exit fullscreen mode

Now calculate what pay-per-result would cost:

# Apify actor pricing: ~$0.0001 per compute unit
# Amazon product scraper: ~10-15 CU per ASIN
compute_units_per_asin = 12
cost_per_compute_unit = 0.0001

cost_per_asin = compute_units_per_asin * cost_per_compute_unit
monthly_cost = successful_requests * cost_per_asin

print(f"Pay-per-result cost: ${monthly_cost:.2f}/month")
# → $14.40/month for 12,000 ASINs
Enter fullscreen mode Exit fullscreen mode

Step 2: Set Up the Actor

Input JSON for the Amazon product scraper:

{
  "asins": [
    "B09G3HRMVB",
    "B08N5WRWNW",
    "B07XJ8C8F5"
  ],
  "countryCode": "US",
  "maxRetries": 3
}
Enter fullscreen mode Exit fullscreen mode

Output per ASIN:

{
  "asin": "B09G3HRMVB",
  "title": "Product Name",
  "price": 29.99,
  "currency": "USD",
  "availability": "In Stock",
  "rating": 4.3,
  "reviewCount": 1847,
  "category": "Electronics"
}
Enter fullscreen mode Exit fullscreen mode

Run it once manually with 5–10 ASINs to verify output quality. Check that price and availability are returning correctly for your target products before scheduling.


Step 3: Schedule and Automate

For price monitoring, a daily or weekly schedule covers most use cases. Apify's built-in scheduler uses cron syntax:

0 7 * * *
Enter fullscreen mode Exit fullscreen mode

Every day at 7am UTC. Results land in a dataset you can fetch via API or webhook.

To get results into a spreadsheet automatically, wire an Apify webhook to n8n (free self-hosted) or Make:

[Apify run completes] → webhook → [n8n HTTP node fetches dataset] → [Google Sheets append]
Enter fullscreen mode Exit fullscreen mode

The dataset fetch URL follows this pattern:

GET https://api.apify.com/v2/datasets/{datasetId}/items?format=json
Enter fullscreen mode Exit fullscreen mode

Step 4: The Cost Comparison at Scale

Here's the actual math at different volumes:

Monthly Volume ScrapingBee Oxylabs Pay-Per-Result (Apify actor)
5,000 pages $49 $180 ~$6
25,000 pages $99 $180 ~$30
100,000 pages $299 $300+ ~$120
500,000 pages $999 $700+ ~$600

Below 100,000 pages/month — the range where 95% of side projects and small agencies live — pay-per-result wins by 4–8x. The crossover point where SaaS pricing gets competitive is high-volume, predictable workloads (500K+ pages/month with steady usage).


Real Numbers from a Small Monitoring Pipeline

Here's what a price-monitoring pipeline for 300 Amazon products (checked daily) actually costs:

  • 300 products × 30 days = 9,000 ASIN lookups/month
  • ~12 compute units per ASIN
  • 108,000 compute units/month
  • At $0.0001/CU = $10.80/month
  • vs. $49/month minimum on any SaaS tool

The Apify free tier includes $5/month in compute credit. A small monitoring job (50 products daily) runs free.


When SaaS Pricing Makes Sense

Pay-per-result isn't always the right choice. SaaS proxy APIs make sense when:

  • You need predictable monthly costs for budgeting (enterprise billing)
  • You're running generalist scraping against hundreds of different sites (not one target)
  • Your volume is above 500K requests/month with consistent usage
  • You need enterprise SLAs and dedicated support

If your use case fits one of those, the SaaS tools are priced fairly. If you're a developer or small team with one or two data sources, pay-per-result is almost always cheaper.


The Architectural Shift

The old model: buy a proxy pool + scraping API subscription, build your own parser, maintain against site changes.

The new model: use a purpose-built actor that handles the specific target, pay only for successful runs, let the actor maintainer handle anti-bot updates.

The key insight: anti-bot maintenance is not your problem to solve. When Cloudflare updates their fingerprinting, the actor maintainer pushes an update. You get the fix automatically. With a DIY scraper running on a proxy subscription, you're on your own.


Get Started

  1. Sign up for Apify — $5/month free compute credit, no card required
  2. Search the actor store for your target site (Amazon, LinkedIn, Google Maps, Zillow — all covered)
  3. Run manually with 10 test inputs to validate output quality
  4. Set up a schedule and wire a webhook to your destination (Sheets, Airtable, database, n8n)

Calculate your current cost-per-result from your existing tool. If it's higher than $0.005 per page, you're paying the SaaS markup.


The math changes at enterprise scale. But if your monthly bill is under $500 and you're not running 500K+ requests, you're almost certainly overpaying. The actors marketplace exists specifically to solve this.

Top comments (0)