We Checked 54 Martech Pricing Pages. Machines Can Read 31.
By Dev Anand, AI Tooling & Automation Safety. Last updated: 2026-08-16
Buyers complain that martech vendors hide their prices. The complaint is half right, and the half that is wrong turns out to be more interesting. Some vendors genuinely refuse to publish a number. Others publish one clearly, and it still never reaches the systems that increasingly answer buying questions on their behalf.
Those two failures look identical from the outside and have completely different fixes.
How many martech vendors actually publish a price?
We started with 56 vendors across the ten categories that make up a typical martech stack: CRM, email and marketing automation, sales engagement, data enrichment, SEO and content, analytics, AI writing, social and LinkedIn tooling, video and webinar, and AI SDR platforms. Two left the count immediately, for reasons worth recording. Shield's pricing URL now redirects to a page titled "wind-down", and Clearbit's redirects to a homepage reading "Clearbit has joined HubSpot". Neither is a live product with a price, so both were excluded rather than scored.
That leaves 54. Fetching each pricing page without executing JavaScript produced this distribution:
| What the served HTML contains | Vendors | Share |
|---|---|---|
| A real non-zero price | 31 | 57.4% |
Only a $0 free tier |
5 | 9.3% |
| A price in markup but not in text | 1 | 1.9% |
| No price, though one renders for humans | 3 | 5.6% |
| No price at all, rendered or served | 11 | 20.4% |
| No pricing page in existence | 3 | 5.6% |
The headline number is 31 of 54. Just under three in five martech vendors put a figure where an automated reader can find it.
We deliberately did not count a page that exposes only $0. Apollo, Amplitude, Mixpanel, Heap and Dreamdata all serve a free-tier marker and nothing else. A free tier is not the price of the product, and treating it as one would have flattered the industry by five vendors.
Which vendors show a price to people but not to crawlers?
This is the group that surprised us. We took every vendor whose served HTML carried no price and loaded the same URL in a Chromium browser, then compared.
| Vendor | In served HTML | After rendering |
|---|---|---|
| HubSpot | none | $0 $10 $26 $59 $100 $1,034 $1,150 $3,700 $4,700 $9,100 |
| ActiveCampaign | none | $20 $66 $107 $196 |
| Lusha | none | $49 $69 $399 |
| Vidyard | none in text, values in x-text attributes |
those same values |
HubSpot is the clearest case. Its marketing pricing page is roughly 73KB of HTML that contains not one currency figure. Ten prices appear the moment a browser executes the page's JavaScript. Nobody at HubSpot decided to conceal pricing. The rendering architecture decided it for them.
Vidyard sits in a middle category. Its prices live in Alpine.js x-text attributes, so they are technically present in the served bytes but absent from the text a simple extractor reads. A determined parser recovers them. A naive one does not, which is exactly why our first pass misclassified Vidyard and the verification pass caught it.
The remaining eleven vendors we render-checked showed no price either way. Braze, MarketMuse, HockeyStack, Qualified, Outreach, Salesloft, ZoomInfo, Cognism, Seamless.ai, Artisan and Relevance AI serve a pricing page that asks you to contact sales. That is a pricing strategy, not a rendering artifact, and it is a legitimate one for enterprise contracts.
Want to put this into practice?
Reachium automates LinkedIn outreach, content publishing, and inbox management in one platform.
Start Free →Why does served HTML matter more than it used to?
For a long time the answer was "it mostly does not". Google has rendered JavaScript for years, and a page whose prices appear only after execution could still rank on those terms.
The calculus changed when answer engines entered the buying process. A growing share of "how much does X cost" questions never reach a vendor's site at all. They get answered inside a chat interface by a system that fetched some pages, extracted what it could, and synthesized a response. Many of those retrieval pipelines do not run a full browser, because rendering every candidate page is expensive at scale.
Google's own documentation is direct that rendering is deferred and resource-dependent rather than guaranteed and instant. Anything downstream of that deferral is a gamble. If a buyer asks an assistant what ActiveCampaign costs and the assistant only ever saw the served HTML, the honest answer it can give is that the price was not stated, which is precisely the impression the vendor was trying to avoid.
There is a structural fix that has nothing to do with rendering. Schema.org's Offer type exists to state a price as data rather than as a visual element, and it sits in the served HTML regardless of what the interface does afterward. A vendor can render its pricing table however it likes and still emit a machine-readable price alongside it. Almost nobody in this corpus does both.
If this sounds like the same problem as getting quoted in an AI answer, it is. We have written separately about how to structure content so AI engines quote it and what actually earns a citation from ChatGPT. Pricing is the highest-stakes version of that problem, because it is the fact buyers most want and the one most often rendered into invisibility.
Which categories are the most opaque?
Data enrichment is the least transparent category in the audit. Of six vendors, ZoomInfo, Cognism, Seamless.ai and Lusha serve no price, and Clearbit no longer exists as a standalone product. Only Clay publishes readable figures.
Sales engagement splits cleanly by market position. Outreach and Salesloft, the two enterprise incumbents, both serve pricing pages with no numbers. Apollo, Lemlist, Instantly and Smartlead all publish. The pattern is not subtle: the further upmarket the vendor, the likelier the price is a conversation.
SEO and content tooling was the most transparent category, with every vendor publishing readable prices. AI SDR platforms were the most erratic, ranging from AiSDR's fully itemized figures to 11x publishing no pricing page at all.
What did the audit count, and how?
Every pricing page was fetched once with curl, following redirects, with a 25 second timeout and an identifying user agent. The served HTML was classified for a non-zero currency figure in visible text. Fifteen vendors whose served HTML carried no price were then loaded in Chromium and re-checked.
One correction is worth publishing because it changes how much you should trust automated audits of this kind. Our first classifier flagged Braze and Artisan as publishing prices, on the strength of $1 and $8 matches. Both were false positives: Next.js serializes its React Server Component payload with $1, $L4 and $undefined markers that a naive currency pattern happily matches. Excluding those markers removed both vendors from the published-price bucket. An audit that skipped verification would have reported a friendlier and wrong number.
The full corpus, fetch log, classifier and per-vendor results are recorded alongside this piece so the count can be rerun and disputed.
Want to put this into practice?
Reachium automates LinkedIn outreach, content publishing, and inbox management in one platform.
Start Free →What are the limits of this finding?
Several, and they bound the claim rather than undermine it.
Each page was captured once, so a vendor that changed its page the following day is recorded as it was on 2026-08-15. The rendered comparison covers 15 of 54 vendors, selected because their served HTML carried no price, so it is not a full rendered census and nothing here claims it is. The five $0-only vendors were not individually render-checked, so this piece states only that their served HTML carries no real price and makes no claim about what their live pages display. Fetches originated from a single location, and some vendors vary their pages by geography.
Most importantly, "no price in served HTML" is a statement about machine readability. It is not an accusation that a vendor hides pricing from its customers. HubSpot publishes its prices plainly to any person who visits. The finding is that a machine reading the same URL does not receive them.
FAQ
How many martech vendors publish a readable price?
31 of 54 live vendors in this audit, or 57.4%, expose at least one non-zero price in the HTML served to a client that does not execute JavaScript. A further 5 expose only a $0 free tier.
Which vendors show prices to humans but not to crawlers?
HubSpot, ActiveCampaign and Lusha serve HTML containing no prices while displaying them after JavaScript runs. Vidyard is a partial case: its figures sit in x-text attributes, present in the served bytes but outside the readable text.
Does this mean those vendors are hiding their pricing?
No, and the distinction matters. Eleven vendors in this audit genuinely publish no price and ask buyers to contact sales, which is a deliberate enterprise pricing strategy. The four above are the opposite case: they publish clearly to people, and a rendering choice keeps that information out of the served HTML.
How can a vendor fix this without redesigning its pricing page?
By emitting the price as structured data. Schema.org's Offer type states a price in the served HTML as data, independent of how the visible table is rendered, so an extractor can read it even when the interface is fully client-side.
Can this audit be reproduced?
Yes. The vendor list, fetch method, user agent, classification rules and per-vendor results are all recorded. Fetching the same 56 URLs without JavaScript execution reproduces the buckets, allowing for pages that changed after 2026-08-15.
Sources
- Google Search Central: JavaScript SEO basics
- Schema.org: Offer
- HubSpot marketing pricing
- ActiveCampaign pricing
- Outreach pricing and packaging
GTMStack publishes original audits of the AI marketing stack. If you want the next one when it lands, the newsletter is the place to get it.
