[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-firecrawl-pricing-tracker":3,"mdc-p90hzl-key":34,"related-repo-firecrawl-pricing-tracker":1579,"related-org-firecrawl-pricing-tracker":1646},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"pricing-tracker","track and compare vendor pricing tiers","Extract and normalize pricing tiers from any SaaS, API, cloud, or LLM vendor's pricing page. Use this skill whenever the user says \"pricing for X\", \"how much does X cost\", \"pricing tiers\", \"cost comparison\", provides a URL ending in `\u002Fpricing` or `\u002Fplans`, or asks to monitor pricing over time. Pairs well with `exportSkill` to turn a run into a cron-friendly workflow. Scrape-driven; no interact needed for typical pricing pages.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"firecrawl","Firecrawl","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ffirecrawl.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Research","research","tag",{"name":17,"slug":18,"type":15},"Competitive Intelligence","competitive-intelligence",{"name":20,"slug":21,"type":15},"SaaS","saas",{"name":9,"slug":8,"type":15},1130,"https:\u002F\u002Fgithub.com\u002Ffirecrawl\u002Fweb-agent","2026-04-17T05:00:43.349332",null,157,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"🔥 Open-source web data agent optimized for structured web research","https:\u002F\u002Fgithub.com\u002Ffirecrawl\u002Fweb-agent\u002Ftree\u002FHEAD\u002Fagent-core\u002Fsrc\u002Fskills\u002Fdefinitions\u002Fpricing-tracker","---\nname: pricing-tracker\ndescription: |\n  Extract and normalize pricing tiers from any SaaS, API, cloud, or LLM vendor's pricing page. Use this skill whenever the user says \"pricing for X\", \"how much does X cost\", \"pricing tiers\", \"cost comparison\", provides a URL ending in `\u002Fpricing` or `\u002Fplans`, or asks to monitor pricing over time. Pairs well with `exportSkill` to turn a run into a cron-friendly workflow. Scrape-driven; no interact needed for typical pricing pages.\ncategory: Research\n---\n\n# Pricing Tracker\n\nExtract 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.\n\n## When to use\n\n- User provides a pricing URL: \"get pricing from https:\u002F\u002Fopenai.com\u002Fapi\u002Fpricing\"\n- User names a vendor: \"what does Vercel cost?\", \"get Anthropic API pricing\"\n- User wants to compare prices across vendors (delegate per-vendor extraction to this skill, then aggregate)\n- User wants to monitor pricing on a schedule (combine with `exportSkill: true` to generate a standalone workflow)\n\nDo NOT use for e-commerce SKU pricing — use `e-commerce` instead.\n\n## Strategy\n\n1. **Find the pricing URL.**\n   - If the user provided one, use it.\n   - Otherwise search `\"\u003Cvendor> pricing\"` and take the top result from the vendor's own domain.\n\n2. **Scrape with `only-main-content`.** Pricing pages are heavy on nav and testimonials that waste context.\n\n3. **Identify the unit.** Every pricing page has one of these shapes — pick the right one:\n   - **Per seat** — SaaS (Notion, Linear, Vercel)\n   - **Per request \u002F token \u002F call** — API and LLM (OpenAI, Anthropic)\n   - **Per GB \u002F TB** — storage, bandwidth, CDN\n   - **Per minute \u002F hour** — compute (Modal, Replicate)\n   - **Flat monthly** — simple SaaS tiers\n   - **Usage-based with tiers** — cloud (AWS, GCP)\n\n4. **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.\n\n5. **Flag the gotchas.**\n   - Annual vs monthly pricing (often a 20% discount buried on annual)\n   - Overage rates past the included quota\n   - Seat minimums (\"Team plan starts at 5 seats\")\n   - Features gated to higher tiers\n   - \"Free tier\" that requires a credit card\n\n6. **Call `formatOutput` once** with the full pricing object.\n\n## Quick start\n\n```typescript\n\u002F\u002F Single vendor\nawait agent.run({\n  prompt: 'Get OpenAI API pricing for every model',\n  urls: ['https:\u002F\u002Fopenai.com\u002Fapi\u002Fpricing'],\n  skills: ['pricing-tracker'],\n  format: 'json',\n})\n```\n\n```typescript\n\u002F\u002F Export as cron-friendly workflow for price monitoring\nawait agent.run({\n  prompt: 'Track Vercel Pro pricing',\n  urls: ['https:\u002F\u002Fvercel.com\u002Fpricing'],\n  skills: ['pricing-tracker'],\n  exportSkill: true,\n})\n\u002F\u002F exportedSkill.workflow → standalone script you can run on a schedule\n```\n\n## Output schema\n\n```json\n{\n  \"vendor\": \"OpenAI\",\n  \"url\": \"https:\u002F\u002Fopenai.com\u002Fapi\u002Fpricing\",\n  \"currency\": \"USD\",\n  \"billingPeriod\": \"monthly\",\n  \"unit\": \"per 1M tokens\",\n  \"tiers\": [\n    {\n      \"name\": \"gpt-4o\",\n      \"price\": 2.5,\n      \"unit\": \"per 1M input tokens\",\n      \"includedQuota\": null,\n      \"features\": [],\n      \"limits\": {},\n      \"enterpriseOnly\": false\n    }\n  ],\n  \"freeTierAvailable\": false,\n  \"enterpriseContactOnly\": false,\n  \"notes\": \"Output tokens priced separately at $10 \u002F 1M. Batch API is 50% off.\",\n  \"capturedAt\": \"2026-04-15\",\n  \"sources\": [\"https:\u002F\u002Fopenai.com\u002Fapi\u002Fpricing\"]\n}\n```\n\n## Tips\n\n- **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`.\n- **Do not guess.** If a tier shows \"Contact sales\", put `null` in `price` and set `enterpriseContactOnly: true`. Never make up a number.\n- **Model-tier grids count as tiers.** For LLM pricing pages with many models, emit one `tier` entry per model.\n- **Capture `capturedAt: \u003Cdate>` in every output.** Makes downstream diffing against a previous run trivial.\n- **Annual vs monthly:** if both are shown, capture the monthly rate as the primary price and note the annual discount in `notes`.\n- **Always include `sources: [...]`** — at minimum the scraped pricing URL.\n\n## See also\n\n- [competitor-analysis](..\u002Fcompetitor-analysis\u002FSKILL.md) — when pricing is one axis of a broader comparison\n- [structured-extraction](..\u002Fstructured-extraction\u002FSKILL.md) — lower-level helper if your schema diverges from the default\n- [deep-research](..\u002Fdeep-research\u002FSKILL.md) — for pricing that requires cross-referencing third-party sources\n",{"data":35,"body":36},{"name":4,"description":6,"category":13},{"type":37,"children":38},"root",[39,47,53,60,104,117,123,328,334,550,733,739,1382,1388,1531,1537,1573],{"type":40,"tag":41,"props":42,"children":43},"element","h1",{"id":4},[44],{"type":45,"value":46},"text","Pricing Tracker",{"type":40,"tag":48,"props":49,"children":50},"p",{},[51],{"type":45,"value":52},"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.",{"type":40,"tag":54,"props":55,"children":57},"h2",{"id":56},"when-to-use",[58],{"type":45,"value":59},"When to use",{"type":40,"tag":61,"props":62,"children":63},"ul",{},[64,80,85,90],{"type":40,"tag":65,"props":66,"children":67},"li",{},[68,70,78],{"type":45,"value":69},"User provides a pricing URL: \"get pricing from ",{"type":40,"tag":71,"props":72,"children":76},"a",{"href":73,"rel":74},"https:\u002F\u002Fopenai.com\u002Fapi\u002Fpricing",[75],"nofollow",[77],{"type":45,"value":73},{"type":45,"value":79},"\"",{"type":40,"tag":65,"props":81,"children":82},{},[83],{"type":45,"value":84},"User names a vendor: \"what does Vercel cost?\", \"get Anthropic API pricing\"",{"type":40,"tag":65,"props":86,"children":87},{},[88],{"type":45,"value":89},"User wants to compare prices across vendors (delegate per-vendor extraction to this skill, then aggregate)",{"type":40,"tag":65,"props":91,"children":92},{},[93,95,102],{"type":45,"value":94},"User wants to monitor pricing on a schedule (combine with ",{"type":40,"tag":96,"props":97,"children":99},"code",{"className":98},[],[100],{"type":45,"value":101},"exportSkill: true",{"type":45,"value":103}," to generate a standalone workflow)",{"type":40,"tag":48,"props":105,"children":106},{},[107,109,115],{"type":45,"value":108},"Do NOT use for e-commerce SKU pricing — use ",{"type":40,"tag":96,"props":110,"children":112},{"className":111},[],[113],{"type":45,"value":114},"e-commerce",{"type":45,"value":116}," instead.",{"type":40,"tag":54,"props":118,"children":120},{"id":119},"strategy",[121],{"type":45,"value":122},"Strategy",{"type":40,"tag":124,"props":125,"children":126},"ol",{},[127,157,175,248,274,310],{"type":40,"tag":65,"props":128,"children":129},{},[130,136],{"type":40,"tag":131,"props":132,"children":133},"strong",{},[134],{"type":45,"value":135},"Find the pricing URL.",{"type":40,"tag":61,"props":137,"children":138},{},[139,144],{"type":40,"tag":65,"props":140,"children":141},{},[142],{"type":45,"value":143},"If the user provided one, use it.",{"type":40,"tag":65,"props":145,"children":146},{},[147,149,155],{"type":45,"value":148},"Otherwise search ",{"type":40,"tag":96,"props":150,"children":152},{"className":151},[],[153],{"type":45,"value":154},"\"\u003Cvendor> pricing\"",{"type":45,"value":156}," and take the top result from the vendor's own domain.",{"type":40,"tag":65,"props":158,"children":159},{},[160,173],{"type":40,"tag":131,"props":161,"children":162},{},[163,165,171],{"type":45,"value":164},"Scrape with ",{"type":40,"tag":96,"props":166,"children":168},{"className":167},[],[169],{"type":45,"value":170},"only-main-content",{"type":45,"value":172},".",{"type":45,"value":174}," Pricing pages are heavy on nav and testimonials that waste context.",{"type":40,"tag":65,"props":176,"children":177},{},[178,183,185],{"type":40,"tag":131,"props":179,"children":180},{},[181],{"type":45,"value":182},"Identify the unit.",{"type":45,"value":184}," Every pricing page has one of these shapes — pick the right one:",{"type":40,"tag":61,"props":186,"children":187},{},[188,198,208,218,228,238],{"type":40,"tag":65,"props":189,"children":190},{},[191,196],{"type":40,"tag":131,"props":192,"children":193},{},[194],{"type":45,"value":195},"Per seat",{"type":45,"value":197}," — SaaS (Notion, Linear, Vercel)",{"type":40,"tag":65,"props":199,"children":200},{},[201,206],{"type":40,"tag":131,"props":202,"children":203},{},[204],{"type":45,"value":205},"Per request \u002F token \u002F call",{"type":45,"value":207}," — API and LLM (OpenAI, Anthropic)",{"type":40,"tag":65,"props":209,"children":210},{},[211,216],{"type":40,"tag":131,"props":212,"children":213},{},[214],{"type":45,"value":215},"Per GB \u002F TB",{"type":45,"value":217}," — storage, bandwidth, CDN",{"type":40,"tag":65,"props":219,"children":220},{},[221,226],{"type":40,"tag":131,"props":222,"children":223},{},[224],{"type":45,"value":225},"Per minute \u002F hour",{"type":45,"value":227}," — compute (Modal, Replicate)",{"type":40,"tag":65,"props":229,"children":230},{},[231,236],{"type":40,"tag":131,"props":232,"children":233},{},[234],{"type":45,"value":235},"Flat monthly",{"type":45,"value":237}," — simple SaaS tiers",{"type":40,"tag":65,"props":239,"children":240},{},[241,246],{"type":40,"tag":131,"props":242,"children":243},{},[244],{"type":45,"value":245},"Usage-based with tiers",{"type":45,"value":247}," — cloud (AWS, GCP)",{"type":40,"tag":65,"props":249,"children":250},{},[251,256,258,264,266,272],{"type":40,"tag":131,"props":252,"children":253},{},[254],{"type":45,"value":255},"Extract every tier.",{"type":45,"value":257}," Include Free and Enterprise even when their price is ",{"type":40,"tag":96,"props":259,"children":261},{"className":260},[],[262],{"type":45,"value":263},"$0",{"type":45,"value":265}," or ",{"type":40,"tag":96,"props":267,"children":269},{"className":268},[],[270],{"type":45,"value":271},"\"Contact sales\"",{"type":45,"value":273}," — users care about those as much as the paid tiers.",{"type":40,"tag":65,"props":275,"children":276},{},[277,282],{"type":40,"tag":131,"props":278,"children":279},{},[280],{"type":45,"value":281},"Flag the gotchas.",{"type":40,"tag":61,"props":283,"children":284},{},[285,290,295,300,305],{"type":40,"tag":65,"props":286,"children":287},{},[288],{"type":45,"value":289},"Annual vs monthly pricing (often a 20% discount buried on annual)",{"type":40,"tag":65,"props":291,"children":292},{},[293],{"type":45,"value":294},"Overage rates past the included quota",{"type":40,"tag":65,"props":296,"children":297},{},[298],{"type":45,"value":299},"Seat minimums (\"Team plan starts at 5 seats\")",{"type":40,"tag":65,"props":301,"children":302},{},[303],{"type":45,"value":304},"Features gated to higher tiers",{"type":40,"tag":65,"props":306,"children":307},{},[308],{"type":45,"value":309},"\"Free tier\" that requires a credit card",{"type":40,"tag":65,"props":311,"children":312},{},[313,326],{"type":40,"tag":131,"props":314,"children":315},{},[316,318,324],{"type":45,"value":317},"Call ",{"type":40,"tag":96,"props":319,"children":321},{"className":320},[],[322],{"type":45,"value":323},"formatOutput",{"type":45,"value":325}," once",{"type":45,"value":327}," with the full pricing object.",{"type":40,"tag":54,"props":329,"children":331},{"id":330},"quick-start",[332],{"type":45,"value":333},"Quick start",{"type":40,"tag":335,"props":336,"children":341},"pre",{"className":337,"code":338,"language":339,"meta":340,"style":340},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F Single vendor\nawait agent.run({\n  prompt: 'Get OpenAI API pricing for every model',\n  urls: ['https:\u002F\u002Fopenai.com\u002Fapi\u002Fpricing'],\n  skills: ['pricing-tracker'],\n  format: 'json',\n})\n","typescript","",[342],{"type":40,"tag":96,"props":343,"children":344},{"__ignoreMap":340},[345,357,394,430,469,506,536],{"type":40,"tag":346,"props":347,"children":350},"span",{"class":348,"line":349},"line",1,[351],{"type":40,"tag":346,"props":352,"children":354},{"style":353},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[355],{"type":45,"value":356},"\u002F\u002F Single vendor\n",{"type":40,"tag":346,"props":358,"children":360},{"class":348,"line":359},2,[361,367,373,378,384,389],{"type":40,"tag":346,"props":362,"children":364},{"style":363},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[365],{"type":45,"value":366},"await",{"type":40,"tag":346,"props":368,"children":370},{"style":369},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[371],{"type":45,"value":372}," agent",{"type":40,"tag":346,"props":374,"children":376},{"style":375},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[377],{"type":45,"value":172},{"type":40,"tag":346,"props":379,"children":381},{"style":380},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[382],{"type":45,"value":383},"run",{"type":40,"tag":346,"props":385,"children":386},{"style":369},[387],{"type":45,"value":388},"(",{"type":40,"tag":346,"props":390,"children":391},{"style":375},[392],{"type":45,"value":393},"{\n",{"type":40,"tag":346,"props":395,"children":397},{"class":348,"line":396},3,[398,404,409,414,420,425],{"type":40,"tag":346,"props":399,"children":401},{"style":400},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[402],{"type":45,"value":403},"  prompt",{"type":40,"tag":346,"props":405,"children":406},{"style":375},[407],{"type":45,"value":408},":",{"type":40,"tag":346,"props":410,"children":411},{"style":375},[412],{"type":45,"value":413}," '",{"type":40,"tag":346,"props":415,"children":417},{"style":416},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[418],{"type":45,"value":419},"Get OpenAI API pricing for every model",{"type":40,"tag":346,"props":421,"children":422},{"style":375},[423],{"type":45,"value":424},"'",{"type":40,"tag":346,"props":426,"children":427},{"style":375},[428],{"type":45,"value":429},",\n",{"type":40,"tag":346,"props":431,"children":433},{"class":348,"line":432},4,[434,439,443,448,452,456,460,465],{"type":40,"tag":346,"props":435,"children":436},{"style":400},[437],{"type":45,"value":438},"  urls",{"type":40,"tag":346,"props":440,"children":441},{"style":375},[442],{"type":45,"value":408},{"type":40,"tag":346,"props":444,"children":445},{"style":369},[446],{"type":45,"value":447}," [",{"type":40,"tag":346,"props":449,"children":450},{"style":375},[451],{"type":45,"value":424},{"type":40,"tag":346,"props":453,"children":454},{"style":416},[455],{"type":45,"value":73},{"type":40,"tag":346,"props":457,"children":458},{"style":375},[459],{"type":45,"value":424},{"type":40,"tag":346,"props":461,"children":462},{"style":369},[463],{"type":45,"value":464},"]",{"type":40,"tag":346,"props":466,"children":467},{"style":375},[468],{"type":45,"value":429},{"type":40,"tag":346,"props":470,"children":472},{"class":348,"line":471},5,[473,478,482,486,490,494,498,502],{"type":40,"tag":346,"props":474,"children":475},{"style":400},[476],{"type":45,"value":477},"  skills",{"type":40,"tag":346,"props":479,"children":480},{"style":375},[481],{"type":45,"value":408},{"type":40,"tag":346,"props":483,"children":484},{"style":369},[485],{"type":45,"value":447},{"type":40,"tag":346,"props":487,"children":488},{"style":375},[489],{"type":45,"value":424},{"type":40,"tag":346,"props":491,"children":492},{"style":416},[493],{"type":45,"value":4},{"type":40,"tag":346,"props":495,"children":496},{"style":375},[497],{"type":45,"value":424},{"type":40,"tag":346,"props":499,"children":500},{"style":369},[501],{"type":45,"value":464},{"type":40,"tag":346,"props":503,"children":504},{"style":375},[505],{"type":45,"value":429},{"type":40,"tag":346,"props":507,"children":509},{"class":348,"line":508},6,[510,515,519,523,528,532],{"type":40,"tag":346,"props":511,"children":512},{"style":400},[513],{"type":45,"value":514},"  format",{"type":40,"tag":346,"props":516,"children":517},{"style":375},[518],{"type":45,"value":408},{"type":40,"tag":346,"props":520,"children":521},{"style":375},[522],{"type":45,"value":413},{"type":40,"tag":346,"props":524,"children":525},{"style":416},[526],{"type":45,"value":527},"json",{"type":40,"tag":346,"props":529,"children":530},{"style":375},[531],{"type":45,"value":424},{"type":40,"tag":346,"props":533,"children":534},{"style":375},[535],{"type":45,"value":429},{"type":40,"tag":346,"props":537,"children":539},{"class":348,"line":538},7,[540,545],{"type":40,"tag":346,"props":541,"children":542},{"style":375},[543],{"type":45,"value":544},"}",{"type":40,"tag":346,"props":546,"children":547},{"style":369},[548],{"type":45,"value":549},")\n",{"type":40,"tag":335,"props":551,"children":553},{"className":337,"code":552,"language":339,"meta":340,"style":340},"\u002F\u002F Export as cron-friendly workflow for price monitoring\nawait agent.run({\n  prompt: 'Track Vercel Pro pricing',\n  urls: ['https:\u002F\u002Fvercel.com\u002Fpricing'],\n  skills: ['pricing-tracker'],\n  exportSkill: true,\n})\n\u002F\u002F exportedSkill.workflow → standalone script you can run on a schedule\n",[554],{"type":40,"tag":96,"props":555,"children":556},{"__ignoreMap":340},[557,565,592,620,656,691,713,724],{"type":40,"tag":346,"props":558,"children":559},{"class":348,"line":349},[560],{"type":40,"tag":346,"props":561,"children":562},{"style":353},[563],{"type":45,"value":564},"\u002F\u002F Export as cron-friendly workflow for price monitoring\n",{"type":40,"tag":346,"props":566,"children":567},{"class":348,"line":359},[568,572,576,580,584,588],{"type":40,"tag":346,"props":569,"children":570},{"style":363},[571],{"type":45,"value":366},{"type":40,"tag":346,"props":573,"children":574},{"style":369},[575],{"type":45,"value":372},{"type":40,"tag":346,"props":577,"children":578},{"style":375},[579],{"type":45,"value":172},{"type":40,"tag":346,"props":581,"children":582},{"style":380},[583],{"type":45,"value":383},{"type":40,"tag":346,"props":585,"children":586},{"style":369},[587],{"type":45,"value":388},{"type":40,"tag":346,"props":589,"children":590},{"style":375},[591],{"type":45,"value":393},{"type":40,"tag":346,"props":593,"children":594},{"class":348,"line":396},[595,599,603,607,612,616],{"type":40,"tag":346,"props":596,"children":597},{"style":400},[598],{"type":45,"value":403},{"type":40,"tag":346,"props":600,"children":601},{"style":375},[602],{"type":45,"value":408},{"type":40,"tag":346,"props":604,"children":605},{"style":375},[606],{"type":45,"value":413},{"type":40,"tag":346,"props":608,"children":609},{"style":416},[610],{"type":45,"value":611},"Track Vercel Pro pricing",{"type":40,"tag":346,"props":613,"children":614},{"style":375},[615],{"type":45,"value":424},{"type":40,"tag":346,"props":617,"children":618},{"style":375},[619],{"type":45,"value":429},{"type":40,"tag":346,"props":621,"children":622},{"class":348,"line":432},[623,627,631,635,639,644,648,652],{"type":40,"tag":346,"props":624,"children":625},{"style":400},[626],{"type":45,"value":438},{"type":40,"tag":346,"props":628,"children":629},{"style":375},[630],{"type":45,"value":408},{"type":40,"tag":346,"props":632,"children":633},{"style":369},[634],{"type":45,"value":447},{"type":40,"tag":346,"props":636,"children":637},{"style":375},[638],{"type":45,"value":424},{"type":40,"tag":346,"props":640,"children":641},{"style":416},[642],{"type":45,"value":643},"https:\u002F\u002Fvercel.com\u002Fpricing",{"type":40,"tag":346,"props":645,"children":646},{"style":375},[647],{"type":45,"value":424},{"type":40,"tag":346,"props":649,"children":650},{"style":369},[651],{"type":45,"value":464},{"type":40,"tag":346,"props":653,"children":654},{"style":375},[655],{"type":45,"value":429},{"type":40,"tag":346,"props":657,"children":658},{"class":348,"line":471},[659,663,667,671,675,679,683,687],{"type":40,"tag":346,"props":660,"children":661},{"style":400},[662],{"type":45,"value":477},{"type":40,"tag":346,"props":664,"children":665},{"style":375},[666],{"type":45,"value":408},{"type":40,"tag":346,"props":668,"children":669},{"style":369},[670],{"type":45,"value":447},{"type":40,"tag":346,"props":672,"children":673},{"style":375},[674],{"type":45,"value":424},{"type":40,"tag":346,"props":676,"children":677},{"style":416},[678],{"type":45,"value":4},{"type":40,"tag":346,"props":680,"children":681},{"style":375},[682],{"type":45,"value":424},{"type":40,"tag":346,"props":684,"children":685},{"style":369},[686],{"type":45,"value":464},{"type":40,"tag":346,"props":688,"children":689},{"style":375},[690],{"type":45,"value":429},{"type":40,"tag":346,"props":692,"children":693},{"class":348,"line":508},[694,699,703,709],{"type":40,"tag":346,"props":695,"children":696},{"style":400},[697],{"type":45,"value":698},"  exportSkill",{"type":40,"tag":346,"props":700,"children":701},{"style":375},[702],{"type":45,"value":408},{"type":40,"tag":346,"props":704,"children":706},{"style":705},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[707],{"type":45,"value":708}," true",{"type":40,"tag":346,"props":710,"children":711},{"style":375},[712],{"type":45,"value":429},{"type":40,"tag":346,"props":714,"children":715},{"class":348,"line":538},[716,720],{"type":40,"tag":346,"props":717,"children":718},{"style":375},[719],{"type":45,"value":544},{"type":40,"tag":346,"props":721,"children":722},{"style":369},[723],{"type":45,"value":549},{"type":40,"tag":346,"props":725,"children":727},{"class":348,"line":726},8,[728],{"type":40,"tag":346,"props":729,"children":730},{"style":353},[731],{"type":45,"value":732},"\u002F\u002F exportedSkill.workflow → standalone script you can run on a schedule\n",{"type":40,"tag":54,"props":734,"children":736},{"id":735},"output-schema",[737],{"type":45,"value":738},"Output schema",{"type":40,"tag":335,"props":740,"children":743},{"className":741,"code":742,"language":527,"meta":340,"style":340},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"vendor\": \"OpenAI\",\n  \"url\": \"https:\u002F\u002Fopenai.com\u002Fapi\u002Fpricing\",\n  \"currency\": \"USD\",\n  \"billingPeriod\": \"monthly\",\n  \"unit\": \"per 1M tokens\",\n  \"tiers\": [\n    {\n      \"name\": \"gpt-4o\",\n      \"price\": 2.5,\n      \"unit\": \"per 1M input tokens\",\n      \"includedQuota\": null,\n      \"features\": [],\n      \"limits\": {},\n      \"enterpriseOnly\": false\n    }\n  ],\n  \"freeTierAvailable\": false,\n  \"enterpriseContactOnly\": false,\n  \"notes\": \"Output tokens priced separately at $10 \u002F 1M. Batch API is 50% off.\",\n  \"capturedAt\": \"2026-04-15\",\n  \"sources\": [\"https:\u002F\u002Fopenai.com\u002Fapi\u002Fpricing\"]\n}\n",[744],{"type":40,"tag":96,"props":745,"children":746},{"__ignoreMap":340},[747,754,794,830,867,904,941,966,974,1014,1045,1082,1108,1134,1160,1186,1195,1204,1230,1255,1293,1331,1373],{"type":40,"tag":346,"props":748,"children":749},{"class":348,"line":349},[750],{"type":40,"tag":346,"props":751,"children":752},{"style":375},[753],{"type":45,"value":393},{"type":40,"tag":346,"props":755,"children":756},{"class":348,"line":359},[757,762,768,772,776,781,786,790],{"type":40,"tag":346,"props":758,"children":759},{"style":375},[760],{"type":45,"value":761},"  \"",{"type":40,"tag":346,"props":763,"children":765},{"style":764},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[766],{"type":45,"value":767},"vendor",{"type":40,"tag":346,"props":769,"children":770},{"style":375},[771],{"type":45,"value":79},{"type":40,"tag":346,"props":773,"children":774},{"style":375},[775],{"type":45,"value":408},{"type":40,"tag":346,"props":777,"children":778},{"style":375},[779],{"type":45,"value":780}," \"",{"type":40,"tag":346,"props":782,"children":783},{"style":416},[784],{"type":45,"value":785},"OpenAI",{"type":40,"tag":346,"props":787,"children":788},{"style":375},[789],{"type":45,"value":79},{"type":40,"tag":346,"props":791,"children":792},{"style":375},[793],{"type":45,"value":429},{"type":40,"tag":346,"props":795,"children":796},{"class":348,"line":396},[797,801,806,810,814,818,822,826],{"type":40,"tag":346,"props":798,"children":799},{"style":375},[800],{"type":45,"value":761},{"type":40,"tag":346,"props":802,"children":803},{"style":764},[804],{"type":45,"value":805},"url",{"type":40,"tag":346,"props":807,"children":808},{"style":375},[809],{"type":45,"value":79},{"type":40,"tag":346,"props":811,"children":812},{"style":375},[813],{"type":45,"value":408},{"type":40,"tag":346,"props":815,"children":816},{"style":375},[817],{"type":45,"value":780},{"type":40,"tag":346,"props":819,"children":820},{"style":416},[821],{"type":45,"value":73},{"type":40,"tag":346,"props":823,"children":824},{"style":375},[825],{"type":45,"value":79},{"type":40,"tag":346,"props":827,"children":828},{"style":375},[829],{"type":45,"value":429},{"type":40,"tag":346,"props":831,"children":832},{"class":348,"line":432},[833,837,842,846,850,854,859,863],{"type":40,"tag":346,"props":834,"children":835},{"style":375},[836],{"type":45,"value":761},{"type":40,"tag":346,"props":838,"children":839},{"style":764},[840],{"type":45,"value":841},"currency",{"type":40,"tag":346,"props":843,"children":844},{"style":375},[845],{"type":45,"value":79},{"type":40,"tag":346,"props":847,"children":848},{"style":375},[849],{"type":45,"value":408},{"type":40,"tag":346,"props":851,"children":852},{"style":375},[853],{"type":45,"value":780},{"type":40,"tag":346,"props":855,"children":856},{"style":416},[857],{"type":45,"value":858},"USD",{"type":40,"tag":346,"props":860,"children":861},{"style":375},[862],{"type":45,"value":79},{"type":40,"tag":346,"props":864,"children":865},{"style":375},[866],{"type":45,"value":429},{"type":40,"tag":346,"props":868,"children":869},{"class":348,"line":471},[870,874,879,883,887,891,896,900],{"type":40,"tag":346,"props":871,"children":872},{"style":375},[873],{"type":45,"value":761},{"type":40,"tag":346,"props":875,"children":876},{"style":764},[877],{"type":45,"value":878},"billingPeriod",{"type":40,"tag":346,"props":880,"children":881},{"style":375},[882],{"type":45,"value":79},{"type":40,"tag":346,"props":884,"children":885},{"style":375},[886],{"type":45,"value":408},{"type":40,"tag":346,"props":888,"children":889},{"style":375},[890],{"type":45,"value":780},{"type":40,"tag":346,"props":892,"children":893},{"style":416},[894],{"type":45,"value":895},"monthly",{"type":40,"tag":346,"props":897,"children":898},{"style":375},[899],{"type":45,"value":79},{"type":40,"tag":346,"props":901,"children":902},{"style":375},[903],{"type":45,"value":429},{"type":40,"tag":346,"props":905,"children":906},{"class":348,"line":508},[907,911,916,920,924,928,933,937],{"type":40,"tag":346,"props":908,"children":909},{"style":375},[910],{"type":45,"value":761},{"type":40,"tag":346,"props":912,"children":913},{"style":764},[914],{"type":45,"value":915},"unit",{"type":40,"tag":346,"props":917,"children":918},{"style":375},[919],{"type":45,"value":79},{"type":40,"tag":346,"props":921,"children":922},{"style":375},[923],{"type":45,"value":408},{"type":40,"tag":346,"props":925,"children":926},{"style":375},[927],{"type":45,"value":780},{"type":40,"tag":346,"props":929,"children":930},{"style":416},[931],{"type":45,"value":932},"per 1M tokens",{"type":40,"tag":346,"props":934,"children":935},{"style":375},[936],{"type":45,"value":79},{"type":40,"tag":346,"props":938,"children":939},{"style":375},[940],{"type":45,"value":429},{"type":40,"tag":346,"props":942,"children":943},{"class":348,"line":538},[944,948,953,957,961],{"type":40,"tag":346,"props":945,"children":946},{"style":375},[947],{"type":45,"value":761},{"type":40,"tag":346,"props":949,"children":950},{"style":764},[951],{"type":45,"value":952},"tiers",{"type":40,"tag":346,"props":954,"children":955},{"style":375},[956],{"type":45,"value":79},{"type":40,"tag":346,"props":958,"children":959},{"style":375},[960],{"type":45,"value":408},{"type":40,"tag":346,"props":962,"children":963},{"style":375},[964],{"type":45,"value":965}," [\n",{"type":40,"tag":346,"props":967,"children":968},{"class":348,"line":726},[969],{"type":40,"tag":346,"props":970,"children":971},{"style":375},[972],{"type":45,"value":973},"    {\n",{"type":40,"tag":346,"props":975,"children":977},{"class":348,"line":976},9,[978,983,989,993,997,1001,1006,1010],{"type":40,"tag":346,"props":979,"children":980},{"style":375},[981],{"type":45,"value":982},"      \"",{"type":40,"tag":346,"props":984,"children":986},{"style":985},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[987],{"type":45,"value":988},"name",{"type":40,"tag":346,"props":990,"children":991},{"style":375},[992],{"type":45,"value":79},{"type":40,"tag":346,"props":994,"children":995},{"style":375},[996],{"type":45,"value":408},{"type":40,"tag":346,"props":998,"children":999},{"style":375},[1000],{"type":45,"value":780},{"type":40,"tag":346,"props":1002,"children":1003},{"style":416},[1004],{"type":45,"value":1005},"gpt-4o",{"type":40,"tag":346,"props":1007,"children":1008},{"style":375},[1009],{"type":45,"value":79},{"type":40,"tag":346,"props":1011,"children":1012},{"style":375},[1013],{"type":45,"value":429},{"type":40,"tag":346,"props":1015,"children":1017},{"class":348,"line":1016},10,[1018,1022,1027,1031,1035,1041],{"type":40,"tag":346,"props":1019,"children":1020},{"style":375},[1021],{"type":45,"value":982},{"type":40,"tag":346,"props":1023,"children":1024},{"style":985},[1025],{"type":45,"value":1026},"price",{"type":40,"tag":346,"props":1028,"children":1029},{"style":375},[1030],{"type":45,"value":79},{"type":40,"tag":346,"props":1032,"children":1033},{"style":375},[1034],{"type":45,"value":408},{"type":40,"tag":346,"props":1036,"children":1038},{"style":1037},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1039],{"type":45,"value":1040}," 2.5",{"type":40,"tag":346,"props":1042,"children":1043},{"style":375},[1044],{"type":45,"value":429},{"type":40,"tag":346,"props":1046,"children":1048},{"class":348,"line":1047},11,[1049,1053,1057,1061,1065,1069,1074,1078],{"type":40,"tag":346,"props":1050,"children":1051},{"style":375},[1052],{"type":45,"value":982},{"type":40,"tag":346,"props":1054,"children":1055},{"style":985},[1056],{"type":45,"value":915},{"type":40,"tag":346,"props":1058,"children":1059},{"style":375},[1060],{"type":45,"value":79},{"type":40,"tag":346,"props":1062,"children":1063},{"style":375},[1064],{"type":45,"value":408},{"type":40,"tag":346,"props":1066,"children":1067},{"style":375},[1068],{"type":45,"value":780},{"type":40,"tag":346,"props":1070,"children":1071},{"style":416},[1072],{"type":45,"value":1073},"per 1M input tokens",{"type":40,"tag":346,"props":1075,"children":1076},{"style":375},[1077],{"type":45,"value":79},{"type":40,"tag":346,"props":1079,"children":1080},{"style":375},[1081],{"type":45,"value":429},{"type":40,"tag":346,"props":1083,"children":1085},{"class":348,"line":1084},12,[1086,1090,1095,1099,1103],{"type":40,"tag":346,"props":1087,"children":1088},{"style":375},[1089],{"type":45,"value":982},{"type":40,"tag":346,"props":1091,"children":1092},{"style":985},[1093],{"type":45,"value":1094},"includedQuota",{"type":40,"tag":346,"props":1096,"children":1097},{"style":375},[1098],{"type":45,"value":79},{"type":40,"tag":346,"props":1100,"children":1101},{"style":375},[1102],{"type":45,"value":408},{"type":40,"tag":346,"props":1104,"children":1105},{"style":375},[1106],{"type":45,"value":1107}," null,\n",{"type":40,"tag":346,"props":1109,"children":1111},{"class":348,"line":1110},13,[1112,1116,1121,1125,1129],{"type":40,"tag":346,"props":1113,"children":1114},{"style":375},[1115],{"type":45,"value":982},{"type":40,"tag":346,"props":1117,"children":1118},{"style":985},[1119],{"type":45,"value":1120},"features",{"type":40,"tag":346,"props":1122,"children":1123},{"style":375},[1124],{"type":45,"value":79},{"type":40,"tag":346,"props":1126,"children":1127},{"style":375},[1128],{"type":45,"value":408},{"type":40,"tag":346,"props":1130,"children":1131},{"style":375},[1132],{"type":45,"value":1133}," [],\n",{"type":40,"tag":346,"props":1135,"children":1137},{"class":348,"line":1136},14,[1138,1142,1147,1151,1155],{"type":40,"tag":346,"props":1139,"children":1140},{"style":375},[1141],{"type":45,"value":982},{"type":40,"tag":346,"props":1143,"children":1144},{"style":985},[1145],{"type":45,"value":1146},"limits",{"type":40,"tag":346,"props":1148,"children":1149},{"style":375},[1150],{"type":45,"value":79},{"type":40,"tag":346,"props":1152,"children":1153},{"style":375},[1154],{"type":45,"value":408},{"type":40,"tag":346,"props":1156,"children":1157},{"style":375},[1158],{"type":45,"value":1159}," {},\n",{"type":40,"tag":346,"props":1161,"children":1163},{"class":348,"line":1162},15,[1164,1168,1173,1177,1181],{"type":40,"tag":346,"props":1165,"children":1166},{"style":375},[1167],{"type":45,"value":982},{"type":40,"tag":346,"props":1169,"children":1170},{"style":985},[1171],{"type":45,"value":1172},"enterpriseOnly",{"type":40,"tag":346,"props":1174,"children":1175},{"style":375},[1176],{"type":45,"value":79},{"type":40,"tag":346,"props":1178,"children":1179},{"style":375},[1180],{"type":45,"value":408},{"type":40,"tag":346,"props":1182,"children":1183},{"style":375},[1184],{"type":45,"value":1185}," false\n",{"type":40,"tag":346,"props":1187,"children":1189},{"class":348,"line":1188},16,[1190],{"type":40,"tag":346,"props":1191,"children":1192},{"style":375},[1193],{"type":45,"value":1194},"    }\n",{"type":40,"tag":346,"props":1196,"children":1198},{"class":348,"line":1197},17,[1199],{"type":40,"tag":346,"props":1200,"children":1201},{"style":375},[1202],{"type":45,"value":1203},"  ],\n",{"type":40,"tag":346,"props":1205,"children":1207},{"class":348,"line":1206},18,[1208,1212,1217,1221,1225],{"type":40,"tag":346,"props":1209,"children":1210},{"style":375},[1211],{"type":45,"value":761},{"type":40,"tag":346,"props":1213,"children":1214},{"style":764},[1215],{"type":45,"value":1216},"freeTierAvailable",{"type":40,"tag":346,"props":1218,"children":1219},{"style":375},[1220],{"type":45,"value":79},{"type":40,"tag":346,"props":1222,"children":1223},{"style":375},[1224],{"type":45,"value":408},{"type":40,"tag":346,"props":1226,"children":1227},{"style":375},[1228],{"type":45,"value":1229}," false,\n",{"type":40,"tag":346,"props":1231,"children":1233},{"class":348,"line":1232},19,[1234,1238,1243,1247,1251],{"type":40,"tag":346,"props":1235,"children":1236},{"style":375},[1237],{"type":45,"value":761},{"type":40,"tag":346,"props":1239,"children":1240},{"style":764},[1241],{"type":45,"value":1242},"enterpriseContactOnly",{"type":40,"tag":346,"props":1244,"children":1245},{"style":375},[1246],{"type":45,"value":79},{"type":40,"tag":346,"props":1248,"children":1249},{"style":375},[1250],{"type":45,"value":408},{"type":40,"tag":346,"props":1252,"children":1253},{"style":375},[1254],{"type":45,"value":1229},{"type":40,"tag":346,"props":1256,"children":1258},{"class":348,"line":1257},20,[1259,1263,1268,1272,1276,1280,1285,1289],{"type":40,"tag":346,"props":1260,"children":1261},{"style":375},[1262],{"type":45,"value":761},{"type":40,"tag":346,"props":1264,"children":1265},{"style":764},[1266],{"type":45,"value":1267},"notes",{"type":40,"tag":346,"props":1269,"children":1270},{"style":375},[1271],{"type":45,"value":79},{"type":40,"tag":346,"props":1273,"children":1274},{"style":375},[1275],{"type":45,"value":408},{"type":40,"tag":346,"props":1277,"children":1278},{"style":375},[1279],{"type":45,"value":780},{"type":40,"tag":346,"props":1281,"children":1282},{"style":416},[1283],{"type":45,"value":1284},"Output tokens priced separately at $10 \u002F 1M. Batch API is 50% off.",{"type":40,"tag":346,"props":1286,"children":1287},{"style":375},[1288],{"type":45,"value":79},{"type":40,"tag":346,"props":1290,"children":1291},{"style":375},[1292],{"type":45,"value":429},{"type":40,"tag":346,"props":1294,"children":1296},{"class":348,"line":1295},21,[1297,1301,1306,1310,1314,1318,1323,1327],{"type":40,"tag":346,"props":1298,"children":1299},{"style":375},[1300],{"type":45,"value":761},{"type":40,"tag":346,"props":1302,"children":1303},{"style":764},[1304],{"type":45,"value":1305},"capturedAt",{"type":40,"tag":346,"props":1307,"children":1308},{"style":375},[1309],{"type":45,"value":79},{"type":40,"tag":346,"props":1311,"children":1312},{"style":375},[1313],{"type":45,"value":408},{"type":40,"tag":346,"props":1315,"children":1316},{"style":375},[1317],{"type":45,"value":780},{"type":40,"tag":346,"props":1319,"children":1320},{"style":416},[1321],{"type":45,"value":1322},"2026-04-15",{"type":40,"tag":346,"props":1324,"children":1325},{"style":375},[1326],{"type":45,"value":79},{"type":40,"tag":346,"props":1328,"children":1329},{"style":375},[1330],{"type":45,"value":429},{"type":40,"tag":346,"props":1332,"children":1334},{"class":348,"line":1333},22,[1335,1339,1344,1348,1352,1356,1360,1364,1368],{"type":40,"tag":346,"props":1336,"children":1337},{"style":375},[1338],{"type":45,"value":761},{"type":40,"tag":346,"props":1340,"children":1341},{"style":764},[1342],{"type":45,"value":1343},"sources",{"type":40,"tag":346,"props":1345,"children":1346},{"style":375},[1347],{"type":45,"value":79},{"type":40,"tag":346,"props":1349,"children":1350},{"style":375},[1351],{"type":45,"value":408},{"type":40,"tag":346,"props":1353,"children":1354},{"style":375},[1355],{"type":45,"value":447},{"type":40,"tag":346,"props":1357,"children":1358},{"style":375},[1359],{"type":45,"value":79},{"type":40,"tag":346,"props":1361,"children":1362},{"style":416},[1363],{"type":45,"value":73},{"type":40,"tag":346,"props":1365,"children":1366},{"style":375},[1367],{"type":45,"value":79},{"type":40,"tag":346,"props":1369,"children":1370},{"style":375},[1371],{"type":45,"value":1372},"]\n",{"type":40,"tag":346,"props":1374,"children":1376},{"class":348,"line":1375},23,[1377],{"type":40,"tag":346,"props":1378,"children":1379},{"style":375},[1380],{"type":45,"value":1381},"}\n",{"type":40,"tag":54,"props":1383,"children":1385},{"id":1384},"tips",[1386],{"type":45,"value":1387},"Tips",{"type":40,"tag":61,"props":1389,"children":1390},{},[1391,1430,1463,1481,1499,1515],{"type":40,"tag":65,"props":1392,"children":1393},{},[1394,1399,1401,1407,1409,1415,1417,1422,1424,1429],{"type":40,"tag":131,"props":1395,"children":1396},{},[1397],{"type":45,"value":1398},"Numbers are numbers, not strings.",{"type":45,"value":1400}," Price ",{"type":40,"tag":96,"props":1402,"children":1404},{"className":1403},[],[1405],{"type":45,"value":1406},"2.5",{"type":45,"value":1408},", never ",{"type":40,"tag":96,"props":1410,"children":1412},{"className":1411},[],[1413],{"type":45,"value":1414},"\"$2.50\"",{"type":45,"value":1416},". Strip currency symbols and commas. Put the currency in ",{"type":40,"tag":96,"props":1418,"children":1420},{"className":1419},[],[1421],{"type":45,"value":841},{"type":45,"value":1423}," and the unit in ",{"type":40,"tag":96,"props":1425,"children":1427},{"className":1426},[],[1428],{"type":45,"value":915},{"type":45,"value":172},{"type":40,"tag":65,"props":1431,"children":1432},{},[1433,1438,1440,1446,1448,1453,1455,1461],{"type":40,"tag":131,"props":1434,"children":1435},{},[1436],{"type":45,"value":1437},"Do not guess.",{"type":45,"value":1439}," If a tier shows \"Contact sales\", put ",{"type":40,"tag":96,"props":1441,"children":1443},{"className":1442},[],[1444],{"type":45,"value":1445},"null",{"type":45,"value":1447}," in ",{"type":40,"tag":96,"props":1449,"children":1451},{"className":1450},[],[1452],{"type":45,"value":1026},{"type":45,"value":1454}," and set ",{"type":40,"tag":96,"props":1456,"children":1458},{"className":1457},[],[1459],{"type":45,"value":1460},"enterpriseContactOnly: true",{"type":45,"value":1462},". Never make up a number.",{"type":40,"tag":65,"props":1464,"children":1465},{},[1466,1471,1473,1479],{"type":40,"tag":131,"props":1467,"children":1468},{},[1469],{"type":45,"value":1470},"Model-tier grids count as tiers.",{"type":45,"value":1472}," For LLM pricing pages with many models, emit one ",{"type":40,"tag":96,"props":1474,"children":1476},{"className":1475},[],[1477],{"type":45,"value":1478},"tier",{"type":45,"value":1480}," entry per model.",{"type":40,"tag":65,"props":1482,"children":1483},{},[1484,1497],{"type":40,"tag":131,"props":1485,"children":1486},{},[1487,1489,1495],{"type":45,"value":1488},"Capture ",{"type":40,"tag":96,"props":1490,"children":1492},{"className":1491},[],[1493],{"type":45,"value":1494},"capturedAt: \u003Cdate>",{"type":45,"value":1496}," in every output.",{"type":45,"value":1498}," Makes downstream diffing against a previous run trivial.",{"type":40,"tag":65,"props":1500,"children":1501},{},[1502,1507,1509,1514],{"type":40,"tag":131,"props":1503,"children":1504},{},[1505],{"type":45,"value":1506},"Annual vs monthly:",{"type":45,"value":1508}," if both are shown, capture the monthly rate as the primary price and note the annual discount in ",{"type":40,"tag":96,"props":1510,"children":1512},{"className":1511},[],[1513],{"type":45,"value":1267},{"type":45,"value":172},{"type":40,"tag":65,"props":1516,"children":1517},{},[1518,1529],{"type":40,"tag":131,"props":1519,"children":1520},{},[1521,1523],{"type":45,"value":1522},"Always include ",{"type":40,"tag":96,"props":1524,"children":1526},{"className":1525},[],[1527],{"type":45,"value":1528},"sources: [...]",{"type":45,"value":1530}," — at minimum the scraped pricing URL.",{"type":40,"tag":54,"props":1532,"children":1534},{"id":1533},"see-also",[1535],{"type":45,"value":1536},"See also",{"type":40,"tag":61,"props":1538,"children":1539},{},[1540,1551,1562],{"type":40,"tag":65,"props":1541,"children":1542},{},[1543,1549],{"type":40,"tag":71,"props":1544,"children":1546},{"href":1545},"..\u002Fcompetitor-analysis\u002FSKILL.md",[1547],{"type":45,"value":1548},"competitor-analysis",{"type":45,"value":1550}," — when pricing is one axis of a broader comparison",{"type":40,"tag":65,"props":1552,"children":1553},{},[1554,1560],{"type":40,"tag":71,"props":1555,"children":1557},{"href":1556},"..\u002Fstructured-extraction\u002FSKILL.md",[1558],{"type":45,"value":1559},"structured-extraction",{"type":45,"value":1561}," — lower-level helper if your schema diverges from the default",{"type":40,"tag":65,"props":1563,"children":1564},{},[1565,1571],{"type":40,"tag":71,"props":1566,"children":1568},{"href":1567},"..\u002Fdeep-research\u002FSKILL.md",[1569],{"type":45,"value":1570},"deep-research",{"type":45,"value":1572}," — for pricing that requires cross-referencing third-party sources",{"type":40,"tag":1574,"props":1575,"children":1576},"style",{},[1577],{"type":45,"value":1578},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1580,"total":508},[1581,1590,1601,1613,1628,1635],{"slug":1548,"name":1548,"fn":1582,"description":1583,"org":1584,"tags":1585,"stars":23,"repoUrl":24,"updatedAt":1589},"analyze competitors across features and pricing","Compare two or more companies, products, or platforms across pricing, features, positioning, and docs. Use this skill whenever the user says \"compare X vs Y\", \"how does X stack up against Y\", \"alternatives to X\", \"competitive landscape of …\", \"X vs Y vs Z\", or asks for a competitor matrix. Uses search to discover competitors when the user only names a category, then scrape for each competitor's homepage, pricing page, and features\u002Fdocs. Returns a normalized comparison matrix as JSON.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1586,1587,1588],{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},"2026-04-17T05:00:44.623049",{"slug":1570,"name":1570,"fn":1591,"description":1592,"org":1593,"tags":1594,"stars":23,"repoUrl":24,"updatedAt":1600},"conduct multi-source deep research","Multi-source research with source triangulation and fact-checking. Use for any research task requiring 3+ sources.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1595,1596,1599],{"name":9,"slug":8,"type":15},{"name":1597,"slug":1598,"type":15},"Knowledge Management","knowledge-management",{"name":13,"slug":14,"type":15},"2026-04-17T05:00:45.852512",{"slug":114,"name":114,"fn":1602,"description":1603,"org":1604,"tags":1605,"stars":23,"repoUrl":24,"updatedAt":1612},"extract product data from e-commerce sites","Navigate e-commerce sites to extract products, pricing, categories, and inventory. Handles pagination, variants, and JS-heavy storefronts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1606,1608,1609],{"name":1607,"slug":114,"type":15},"E-commerce",{"name":9,"slug":8,"type":15},{"name":1610,"slug":1611,"type":15},"Web Scraping","web-scraping","2026-05-15T06:15:30.880268",{"slug":1614,"name":1614,"fn":1615,"description":1616,"org":1617,"tags":1618,"stars":23,"repoUrl":24,"updatedAt":1627},"financial-research","pull financial data for public companies","Pull company financials, SEC filings, and analyst consensus for a public company. Use this skill whenever the user says \"10-K\", \"10-Q\", \"earnings\", \"revenue of\", \"financials for\", \"analyst rating for\", \"price target for\", or provides a stock ticker. Combines SEC EDGAR for official filings with Yahoo Finance \u002F TipRanks for analyst data. Search + scrape only; no interact needed.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1619,1622,1623,1624],{"name":1620,"slug":1621,"type":15},"Finance","finance",{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"name":1625,"slug":1626,"type":15},"SEC Filings","sec-filings","2026-05-15T06:15:33.293957",{"slug":4,"name":4,"fn":5,"description":6,"org":1629,"tags":1630,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1631,1632,1633,1634],{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"slug":1559,"name":1559,"fn":1636,"description":1637,"org":1638,"tags":1639,"stars":23,"repoUrl":24,"updatedAt":1645},"extract structured data from websites","Extract structured data matching a JSON schema from websites. Handles complex nested schemas, arrays, pagination, and validation. Always outputs via formatOutput.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1640,1643,1644],{"name":1641,"slug":1642,"type":15},"Data Engineering","data-engineering",{"name":9,"slug":8,"type":15},{"name":1610,"slug":1611,"type":15},"2026-05-15T06:15:32.092034",{"items":1647,"total":1769},[1648,1654,1660,1666,1673,1680,1686,1701,1713,1730,1745,1757],{"slug":1548,"name":1548,"fn":1582,"description":1583,"org":1649,"tags":1650,"stars":23,"repoUrl":24,"updatedAt":1589},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1651,1652,1653],{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"slug":1570,"name":1570,"fn":1591,"description":1592,"org":1655,"tags":1656,"stars":23,"repoUrl":24,"updatedAt":1600},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1657,1658,1659],{"name":9,"slug":8,"type":15},{"name":1597,"slug":1598,"type":15},{"name":13,"slug":14,"type":15},{"slug":114,"name":114,"fn":1602,"description":1603,"org":1661,"tags":1662,"stars":23,"repoUrl":24,"updatedAt":1612},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1663,1664,1665],{"name":1607,"slug":114,"type":15},{"name":9,"slug":8,"type":15},{"name":1610,"slug":1611,"type":15},{"slug":1614,"name":1614,"fn":1615,"description":1616,"org":1667,"tags":1668,"stars":23,"repoUrl":24,"updatedAt":1627},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1669,1670,1671,1672],{"name":1620,"slug":1621,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"name":1625,"slug":1626,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":1674,"tags":1675,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1676,1677,1678,1679],{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"slug":1559,"name":1559,"fn":1636,"description":1637,"org":1681,"tags":1682,"stars":23,"repoUrl":24,"updatedAt":1645},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1683,1684,1685],{"name":1641,"slug":1642,"type":15},{"name":9,"slug":8,"type":15},{"name":1610,"slug":1611,"type":15},{"slug":1687,"name":1687,"fn":1688,"description":1689,"org":1690,"tags":1691,"stars":1698,"repoUrl":1699,"updatedAt":1700},"firecrawl-company-directories","extract company directories with Firecrawl","Extract structured company lists from directories with Firecrawl. Use for scraping YC, Crunchbase, Product Hunt, G2, startup directories, category directories, or custom company databases into JSON, CSV, CRM-ready lists, or research tables.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1692,1695,1696,1697],{"name":1693,"slug":1694,"type":15},"Automation","automation",{"name":1641,"slug":1642,"type":15},{"name":9,"slug":8,"type":15},{"name":1610,"slug":1611,"type":15},99,"https:\u002F\u002Fgithub.com\u002Ffirecrawl\u002Ffirecrawl-workflows","2026-06-30T07:02:21.468",{"slug":1702,"name":1702,"fn":1703,"description":1704,"org":1705,"tags":1706,"stars":1698,"repoUrl":1699,"updatedAt":1700},"firecrawl-competitive-intel","monitor competitor product changes with Firecrawl","Monitor competitor pricing, features, changelogs, dashboards, and product changes with Firecrawl. Use for recurring competitive intelligence, pricing tier extraction, feature change tracking, or structured competitor alerts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1707,1708,1709,1712],{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":1710,"slug":1711,"type":15},"Marketing","marketing",{"name":1610,"slug":1611,"type":15},{"slug":1714,"name":1714,"fn":1715,"description":1716,"org":1717,"tags":1718,"stars":1698,"repoUrl":1699,"updatedAt":1700},"firecrawl-dashboard-reporting","pull metrics from analytics dashboards","Pull metrics from analytics dashboards and internal web tools with Firecrawl browser. Use when the user needs dashboard reporting, cross-platform metric summaries, authenticated analytics extraction, date-range reports, or structured metrics from web dashboards.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1719,1722,1725,1726,1729],{"name":1720,"slug":1721,"type":15},"Analytics","analytics",{"name":1723,"slug":1724,"type":15},"Dashboards","dashboards",{"name":9,"slug":8,"type":15},{"name":1727,"slug":1728,"type":15},"Reporting","reporting",{"name":1610,"slug":1611,"type":15},{"slug":1731,"name":1731,"fn":1732,"description":1733,"org":1734,"tags":1735,"stars":1698,"repoUrl":1699,"updatedAt":1700},"firecrawl-deep-research","conduct deep research with Firecrawl","Produce an intensive, cited analytical report: executive summary, multi-angle\nfindings, contrarian views, open questions, and full sources. Use only when the\nuser needs rigorous synthesis of a complex topic (scientific, technical, policy,\nor market-analytical) that cannot be answered with a short search, and wants\na formal written report, not a recommendation list.\n\nDo not use for product picks, top-N lists, quick lookups, or routine \"find out\nabout X\" tasks. If the request does not clearly need this kind of report, do\nnot use this skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1736,1737,1740,1741,1744],{"name":9,"slug":8,"type":15},{"name":1738,"slug":1739,"type":15},"Firecrawl Research","firecrawl-research",{"name":13,"slug":14,"type":15},{"name":1742,"slug":1743,"type":15},"Summarization","summarization",{"name":1610,"slug":1611,"type":15},{"slug":1746,"name":1746,"fn":1747,"description":1748,"org":1749,"tags":1750,"stars":1698,"repoUrl":1699,"updatedAt":1700},"firecrawl-demo-walkthrough","generate product walkthroughs with Firecrawl","Walk through a product's key flows with Firecrawl browser and produce a structured UX\u002Fproduct walkthrough. Use for signup, onboarding, pricing, docs, dashboard, product demo prep, UX teardown, and first-run experience analysis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1751,1752,1753,1756],{"name":1693,"slug":1694,"type":15},{"name":9,"slug":8,"type":15},{"name":1754,"slug":1755,"type":15},"UX Design","ux-design",{"name":1610,"slug":1611,"type":15},{"slug":1758,"name":1758,"fn":1759,"description":1760,"org":1761,"tags":1762,"stars":1698,"repoUrl":1699,"updatedAt":1700},"firecrawl-knowledge-base","build knowledge bases from web content","Build a knowledge base from web content with Firecrawl. Use for local reference docs, RAG-ready chunks, fine-tuning datasets, documentation mirrors, topic corpora, or LLM-ready markdown organized from web sources.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1763,1764,1765,1766],{"name":1641,"slug":1642,"type":15},{"name":9,"slug":8,"type":15},{"name":1597,"slug":1598,"type":15},{"name":1767,"slug":1768,"type":15},"Search","search",36]