
pricing-tracker
✓ Official★ 1,100by firecrawl · part of firecrawl/web-agent
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.
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.
Inspect the full instructions your agent will receiveExpandCollapse
This is the exact playbook injected into your agent when the skill activates — shown here so you can audit it before installing. You don't need to read it to use the skill.
by 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
Download ZIPGitHub1.1k
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: trueto generate a standalone workflow)
Do NOT use for e-commerce SKU pricing — use e-commerce instead.
Strategy
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.
Scrape with only-main-content. Pricing pages are heavy on nav and testimonials that waste context.
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)
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.
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
Call formatOutput once with the full pricing object.
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 incurrencyand the unit inunit. -
Do not guess. If a tier shows "Contact sales", put
nullinpriceand setenterpriseContactOnly: true. Never make up a number. -
Model-tier grids count as tiers. For LLM pricing pages with many models, emit one
tierentry 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
-
competitor-analysis — when pricing is one axis of a broader comparison
-
structured-extraction — lower-level helper if your schema diverges from the default
-
deep-research — for pricing that requires cross-referencing third-party sources
npx skills add https://github.com/firecrawl/web-agent --skill pricing-trackerRun this in your project — your agent picks the skill up automatically.
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
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.