Documentation [email protected]Log in

SEO audit API: no-JS vs rendered, diffed

An SEO audit API shows how a page looks to crawlers — programmatically. One call fetches any URL twice, as a pure HTTP bot and fully rendered, then returns both views with the diff: JS-only content, changed titles, canonicals that vanish without JavaScript. $0.0012 per URL, $1 free every month.

$1 free every month · No card required · Works on any public URL

POST /v1/seo-audit
$ curl https://api.quanticdata.io/v1/seo-audit \
    -d '{ "url": "https://example.com/pricing" }'
{ "noJs":     { "title": "Example", "h1": null,
                "words": 42,  "canonical": null },
  "rendered": { "title": "Pricing — Example",
                "h1": "Pricing", "words": 1180 },
  "diff":     { "jsOnlyContent": true,
                "titleChanged": true,
                "canonicalMissingNoJs": true },
  "meta":     { "robots": "index,follow",
                "jsonLd": ["Organization"] } }
# this page is invisible to non-rendering bots
2 fetchespure HTTP bot + full render
1 diffJS-only content, meta drift, lost canonicals
Any URLyours or competitors' — no verification
$0.0012per audit — $1.20 per 1K URLs

Pricing

Per URL. No seat license.

Real unit prices billed only on success. One audit covers both fetches and the diff; compose with map and batch for site-wide sweeps.

$0.0012per audited URLboth views + diff · $1.20 per 1K
$0.0005per map callevery URL of the site first
$0.0002per batch URLsummary sweeps: title, meta, status
$1 freeevery month, forever≈ 830 audits · no card

Pay as you go

$0/mo
  • $1 free credit / month
  • 60 requests / min
  • List unit prices

Starter

$19/mo
  • $10 free credit / month
  • 300 requests / min
  • 10% off unit prices

Scale

$299/mo
  • $250 free credit / month
  • 1,200 requests / min
  • 30% off unit prices
Title · description · canonical · h1 · word countRobots & Open Graph as bots see themJSON-LD types detectedCheaper no-render optionCountry-pinned exitsFailed audits never billed

What is an SEO audit API?

An SEO audit API checks how a page presents itself to search engines and returns the findings as structured JSON — no desktop crawler, no browser extension, no screenshots. This one is built around the question that decides indexing for modern sites: does the page exist before JavaScript runs?

Google crawls raw HTML first and renders JavaScript in a second wave that can lag behind — and many bots, AI crawlers included, never render at all. Each audit fetches your URL twice through the same pipeline as our scraping API: once as a pure HTTP bot, once in a real browser. What differs between those two views is exactly what a non-rendering crawler will never see.

What each audit returns

The no-JS view

Title, description, canonical, h1 and word count from the raw server response — what a pure HTTP bot sees. This is the view most crawlers, link-preview scrapers and AI agents operate on.

The rendered view

The same fields after a real browser executes the page — what users and rendering crawlers eventually get. On healthy server-rendered pages the two views match.

The diff

Content that only exists after JavaScript, titles and descriptions that change between views, canonicals missing without JS — each gap a field your code can branch on.

Bot-facing meta

Robots directives, Open Graph tags and the JSON-LD types present in the no-JS pass — the metadata that actually reaches non-rendering consumers of your page.

CSR detection

A thin no-JS view against a rich rendered one is the signature of client-side rendering. One call answers "is this site invisible to bots?" for any URL — including competitors'.

A cheaper half

Set no_render to skip the browser pass and get the bot view only — the right economy when you sweep hundreds of URLs and only diff the suspicious ones.

Audit a whole site for a few cents

Compose the primitives: map lists every URL of the site for $0.0005, a batch job in summary mode sweeps title, description, canonical and status across the list at $0.0002 per URL, and full audits go only to the pages that look wrong. A 500-page site costs about $0.10 to sweep and $0.0012 per page you inspect deeply.

Because it is one REST call, the audit drops into CI: fail the deploy when the no-JS view loses its canonical, its h1 or its content. Rendering regressions get caught before Google's second wave ever sees them.

Integration

One POST, both views

curl https://api.quanticdata.io/v1/seo-audit \
  -H "Authorization: Bearer $QD_API_KEY" \
  -d '{ "url": "https://example.com/pricing" }'

# bot view only — cheaper, no rendered pass
curl https://api.quanticdata.io/v1/seo-audit \
  -H "Authorization: Bearer $QD_API_KEY" \
  -d '{ "url": "https://example.com/pricing", "no_render": true }'

Audits your agent can run

The QuanticData MCP server exposes seo_audit as a native tool, so Claude, Cursor or any MCP-capable agent can audit a page and reason over the JSON — "check why this page dropped, then fix the template" becomes one conversation. The same tool sits next to map, crawl and search, so the whole diagnostic loop runs in one place. REST works everywhere else with a single JSON envelope.

QuanticData vs a typical desktop SEO crawler

QuanticDataTypical desktop crawler
Form factorone REST call, JSON outdesktop app + export files
Pricing$0.0012 per URL, pay-as-you-goannual seat license
JS rendering checkboth views + diff, built inmanual before/after comparison
Runs in CI / cronyes — it's an APIneeds a machine and a human
Any URLyes, no site verificationyes, but licensed per seat
AI agent accessnative MCP seo_audit toolnone

FAQ

The short answers on rendering, diffs and billing.

Something else? Ask us →

What is an SEO audit API?

An SEO audit API checks how a page presents itself to search engines and returns the findings as structured JSON instead of a desktop report. This one fetches the URL twice — once as a pure HTTP bot with no JavaScript, once fully rendered in a browser — and returns both views plus the diff, so the gap between them is a field your code can read, not a screenshot you eyeball.

Does Google see JavaScript-rendered content?

Eventually, usually. Google crawls the raw HTML first and renders JavaScript in a second wave that can lag behind. Content that exists only after JS runs is invisible in that first pass, and other bots — many AI crawlers included — never render at all. That is why comparing the no-JS view against the rendered view is the core of a JavaScript SEO audit.

What is the difference between raw HTML and rendered HTML?

Raw HTML is what the server sends before any JavaScript executes — what a plain HTTP fetch sees. Rendered HTML is the DOM after scripts have run, which is what users see. On server-rendered pages the two match; on client-side apps the raw view can be nearly empty. The audit quantifies that gap per URL: titles, descriptions, canonicals, h1s and word counts for both views, plus what only exists after rendering.

How do I check what Googlebot sees on my page?

Search Console's URL Inspection shows Google's own render, but only for sites you have verified and one URL at a time. The audit API approximates both crawler passes on any URL: the no-JS fetch is what a non-rendering bot sees, the rendered fetch is what a rendering crawler sees eventually, and the diff highlights everything that depends on JavaScript.

Can I audit pages I don't own, like competitors?

Yes. The audit works on any public URL — there is no site verification step, because it fetches the page like a bot rather than reading a search engine's private index. Auditing how a competitor's pages render for crawlers is a normal part of technical SEO research.

What exactly is in the diff?

The diff flags content that only exists after JavaScript runs, titles and descriptions that change between the two views, and canonicals missing from the no-JS pass. Alongside it you get both full views — title, description, canonical, h1, word count each — and the bot-facing metadata: robots directives, Open Graph tags and the JSON-LD types found on the page.

How much does the SEO audit API cost?

$0.0012 per audited URL — $1.20 per thousand — covering both fetches and the diff. There is no subscription, no seat license and no monthly minimum. A cheaper no-render option returns the no-JS view only. Every account gets $1 of free usage per month, about 830 full audits, with no card required.

Can I audit a whole site, not just one URL?

Yes — compose it: map lists every URL of the site for $0.0005, then a batch job in summary mode sweeps titles, descriptions, canonicals and status codes at $0.0002 per URL, and you run full audits on the pages that look suspicious. That is a site-wide rendering audit for a few cents, driven from code or CI.

Does it validate structured data and Open Graph tags?

The audit reports the JSON-LD types present and the Open Graph tags as bots receive them, from the no-JS pass — which is the view most crawlers and link-preview scrapers actually use. If your FAQPage schema or og:image only appears after JavaScript runs, that is precisely the kind of gap the report surfaces.

How do I detect if a site is client-side rendered?

Compare the word counts and h1 between the two views in one audit call. A server-rendered page shows near-identical numbers; a client-side app shows a thin or empty no-JS view against a full rendered one, and the diff lists the JS-only content. It is the fastest programmatic CSR check we know of — one call, one boolean-ish answer.

Can I run audits from CI or from an AI agent?

Both. It is one REST call, so a CI step can fail a deploy when the no-JS view loses its canonical or its content. And the QuanticData MCP server exposes seo_audit as a native tool, so Claude, Cursor or any MCP-capable agent can audit pages and reason over the JSON directly.

Is there a free tier?

Yes. Every account gets $1 of free usage each month with no card required — around 830 audits at list price. The allowance renews monthly and is shared across all QuanticData Data APIs, so the same credit also covers map calls and batch sweeps in a site-wide audit.

Does the API return an SEO score?

No, and that is deliberate. Most audit APIs compress a page into a single number from a fixed checklist — easy to chart, hard to act on, and the weighting is someone else's opinion. This API returns evidence instead: the two fetches, the fields that differ between them, and the bot-facing metadata as it actually is. If you want a score, compute one from the fields with your own weights — your priorities are not ours. What you get here is the raw finding, not a verdict.

Does it cover AI crawlers and LLM readability?

Partly, and the honest boundary matters. The no-JS pass is exactly what most AI crawlers get, because the majority do not execute JavaScript — so the diff already tells you how much of your content is invisible to them. The response also reports the bot-facing metadata: robots directives, canonical, Open Graph and the JSON-LD types present. What it does not do is grade your writing for an LLM or score you against an AEO checklist; those are opinions, and this endpoint returns facts.

See what crawlers see — in one call

$1 free every month, no card. Audit any URL, yours or theirs, before Google's second wave decides for you.

Get my free API key
Get my free API key