pricing-trackerद्वारा firecrawl

Extract pricing tiers from a vendor's pricing page and normalize them into a consistent shape. Optimized for SaaS, API, cloud, LLM, and CDN pricing pages — all of which share similar structure but inconsistent naming.

npx skills add https://github.com/firecrawl/firecrawl-agent --skill pricing-tracker

Pricing Tracker

Extract pricing tiers from a vendor's pricing page and normalize them into a consistent shape. Optimized for SaaS, API, cloud, LLM, and CDN pricing pages — all of which share similar structure but inconsistent naming.

When to use

  • User provides a pricing URL: "get pricing from https://openai.com/api/pricing"
  • User names a vendor: "what does Vercel cost?", "get Anthropic API pricing"
  • User wants to compare prices across vendors (delegate per-vendor extraction to this skill, then aggregate)
  • User wants to monitor pricing on a schedule (combine with exportSkill: true to generate a standalone workflow)

Do NOT use for e-commerce SKU pricing — use e-commerce instead.

Strategy

  1. Find the pricing URL.

    • If the user provided one, use it.
    • Otherwise search "<vendor> pricing" and take the top result from the vendor's own domain.
  2. Scrape with only-main-content. Pricing pages are heavy on nav and testimonials that waste context.

  3. Identify the unit. Every pricing page has one of these shapes — pick the right one:

    • Per seat — SaaS (Notion, Linear, Vercel)
    • Per request / token / call — API and LLM (OpenAI, Anthropic)
    • Per GB / TB — storage, bandwidth, CDN
    • Per minute / hour — compute (Modal, Replicate)
    • Flat monthly — simple SaaS tiers
    • Usage-based with tiers — cloud (AWS, GCP)
  4. Extract every tier. Include Free and Enterprise even when their price is $0 or "Contact sales" — users care about those as much as the paid tiers.

  5. Flag the gotchas.

    • Annual vs monthly pricing (often a 20% discount buried on annual)
    • Overage rates past the included quota
    • Seat minimums ("Team plan starts at 5 seats")
    • Features gated to higher tiers
    • "Free tier" that requires a credit card
  6. Call formatOutput once with the full pricing object.

Quick start

// Single vendor
await agent.run({
  prompt: 'Get OpenAI API pricing for every model',
  urls: ['https://openai.com/api/pricing'],
  skills: ['pricing-tracker'],
  format: 'json',
})
// Export as cron-friendly workflow for price monitoring
await agent.run({
  prompt: 'Track Vercel Pro pricing',
  urls: ['https://vercel.com/pricing'],
  skills: ['pricing-tracker'],
  exportSkill: true,
})
// exportedSkill.workflow → standalone script you can run on a schedule

Output schema

{
  "vendor": "OpenAI",
  "url": "https://openai.com/api/pricing",
  "currency": "USD",
  "billingPeriod": "monthly",
  "unit": "per 1M tokens",
  "tiers": [
    {
      "name": "gpt-4o",
      "price": 2.5,
      "unit": "per 1M input tokens",
      "includedQuota": null,
      "features": [],
      "limits": {},
      "enterpriseOnly": false
    }
  ],
  "freeTierAvailable": false,
  "enterpriseContactOnly": false,
  "notes": "Output tokens priced separately at $10 / 1M. Batch API is 50% off.",
  "capturedAt": "2026-04-15",
  "sources": ["https://openai.com/api/pricing"]
}

Tips

  • Numbers are numbers, not strings. Price 2.5, never "$2.50". Strip currency symbols and commas. Put the currency in currency and the unit in unit.
  • Do not guess. If a tier shows "Contact sales", put null in price and set enterpriseContactOnly: true. Never make up a number.
  • Model-tier grids count as tiers. For LLM pricing pages with many models, emit one tier entry per model.
  • Capture capturedAt: <date> in every output. Makes downstream diffing against a previous run trivial.
  • Annual vs monthly: if both are shown, capture the monthly rate as the primary price and note the annual discount in notes.
  • Always include sources: [...] — at minimum the scraped pricing URL.

See also

NotebookLM Web Importer

एक क्लिक में वेब पेज और YouTube वीडियो NotebookLM में आयात करें। 200,000+ उपयोगकर्ताओं द्वारा विश्वसनीय।

Chrome एक्सटेंशन इंस्टॉल करें