Most people don't know SME prices live one click off the homepage
A dental practice homepage sells trust: the team photo, the NHS badge, the parking note. The fee list is not there. It sits under Prices or Fees, in a table, with lines like “Existing patient exam” and “From £53.”
Most people building a local rate card never treat that page as the product. They treat the homepage as the source, bounce when they do not see a number, and move on.
The brochure is not the tariff
If you are a competitive analyst at a dental SaaS, or an agency packing a “what do clinics charge” slide, you already know the workaround. Open forty practice sites. Hunt the nav. Copy the filling band into a sheet. Argue later about whether “from” is a price.
Salons do the same thing with colour and cut. Trades do it with call-out fees. Professional services hide retainers behind a Fees link that a crawler pointed at the homepage will never see if you only scrape the first HTML blob.
I used to think the problem was that small sites do not publish prices. They do. They publish them one click off the homepage, in HTML that was never designed as an API. “From £X” is a price type, not a missing field. A range is a range. Contact-for-quote is a row with no number, not a failure of the site.
That is the fact most people miss: the homepage is a brochure. The priced line items live on a fees page the business already linked for humans.
Find the fees page, then read the lines
Paste a homepage — or the /prices URL if you already have it. Resolve the public pricing page when the start URL is only the brochure. Read every priced line into a row: name, category, the text as shown, a number when one exists, currency when it is detectable, and whether the line is fixed, from, a range, or contact.
That is the Website Price Extractor API. Run it on Apify.
You get one dataset row per good or service, not a screenshot of a table. Empty output means the public list was not readable HTML. I do not invent a number to fill the cell.
Who this is for
If you monitor local service menus for a marketplace, a franchise audit, or a sales pack into clinics, this is the job. If you enrich leads with published fee ranges instead of “call us,” this is the job. If you write “from £X” into landing copy and you are tired of typing it from a PDF you found in 2024, this is the job.
If you need Amazon, a headless checkout, or a member-only tariff, this is not that API. Public SME fees pages only.
JavaScript-heavy apps and PDF-only lists will not give you a clean extract in this version. Login walls are out of scope on purpose. Input, pricing, and the rest of the caveats live on the Apify Store README for Website Price Extractor.
Same product, many countries is a different job. That sits with comparing a pricing URL across markets. Both live with the other posts on rainminer.
Copy-paste goes stale before the quarter ends
The cost of the old way is not the afternoon you spent on ten clinics. It is the sheet that still has last spring’s exam fee when you quote a prospect in August.
The prices were on the site. They were one click off the homepage. Paste the URL and take the rows.
