Web Data

JavaScript SEO rendering check API

Find out what crawlers that skip JavaScript miss. One request fetches the page as raw HTML and as a rendered page, compares the SEO signals of both and lists every difference with its impact.

Category Web Data
Endpoints 1
Key Features 4
Frequently asked questions 4

Used by people at these companies

InstantOutseerMongoDBRespondentSage Expense ManagementInstantlyD.R. HortonWhatConvertsAdobeLLM Pulse

Trust signals before you integrate

Transparent docs, authenticated requests, and visible reliability details make it easier to evaluate DomScan before you ship.

Live Service status

Check live service health and documented failure responses before you integrate.

OpenAPI API artifacts

OpenAPI, Swagger, Postman, CLI, SDK, and MCP links are one click away.

API keys Protected access

Authenticated endpoints use API keys with clear credit costs before you call them.

10,000 Free allowance

Start with 10,000 monthly credits and upgrade only when usage grows.

What this API helps you ship

Use this page as a production brief: endpoints, examples, response shape, and the workflow pieces needed to plug DomScan into your own product.

Product workflows

Embed domain checks, DNS intelligence, risk signals, or enrichment into onboarding, search, and internal tools.

Analyst automation

Replace repeated manual lookups with scheduled jobs, alerting, and reproducible investigation steps.

Clean JSON data

Use predictable fields, documented status codes, and credit costs instead of scraping provider pages.

AI and ops tooling

Feed agents, dashboards, SOAR playbooks, and CRMs through OpenAPI, SDK, Postman, or MCP.

Integration workflow

A simple path from first request to repeatable production usage.

1
Authenticate once

Send your API key with the documented header and keep requests consistent across services.

2
Query with examples

Start from the curl and HTTP samples, then map the parameters into your application code.

3
Operate and monitor

Use status codes, credit costs, and response fields to build retries, logs, and alerts.

Developer kit

Jump from this page into machine-readable docs, request collections, SDKs, or agent tooling.

Parameters and response map

Scan the inputs, output fields, and status codes before wiring the endpoint into your client.

Request parameters

Parameter

url
Response fields

Example response

statusjs_dependencerendered_word_sharedifferencesissues
Status coverage

HTTP status codes

200400401402429

Endpoints

GET /v1/onpage/render-diff
Credits: 7Authentication: Authentication required

Trust signals before you integrate

Transparent docs, authenticated requests, and visible reliability details make it easier to evaluate DomScan before you ship.

Service status API artifacts

OpenAPI, Swagger, Postman, CLI, SDK, and MCP links are one click away.

API keys Protected access

Authenticated endpoints use API keys with clear credit costs before you call them.

Free allowance Sign up for free

Start with 10,000 monthly credits and upgrade only when usage grows.

Active Example request

Start from the curl and HTTP samples, then map the parameters into your application code.

Key Features

Side by side signals

Title, meta description, canonical, robots, H1, word count, internal and external links, structured data, hreflang and language, extracted the same way from both versions.

Impact for every difference

Each difference is labelled added, removed or changed by JavaScript, with a high, medium or low impact, so you can fix the ones that matter first.

One dependence level

A single none, low, medium or high JavaScript dependence level and the share of words that only exist after rendering make pages easy to compare.

Risky changes flagged

Robots directives or canonicals rewritten by scripts, titles and H1s that need JavaScript and content or links that only appear after rendering are listed as issues.

Example request

GET /v1/onpage/render-diff?url=example.com/shoes/trail-runner bash
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/onpage/render-diff?url=example.com/shoes/trail-runner"

Example response

200 OK json
{
  "status": "ok",
  "js_dependence": "high",
  "rendered_word_share": 1,
  "differences": [
    { "field": "robots", "change": "changed_by_js", "impact": "high", "raw": "noindex", "rendered": "index, follow" },
    { "field": "h1", "change": "added_by_js", "impact": "high", "raw": [], "rendered": ["Trail Running Shoes"] },
    { "field": "word_count", "change": "added_by_js", "impact": "high", "raw": 0, "rendered": 122 }
  ],
  "issues": ["robots_changed_by_js", "h1_requires_js", "content_requires_js"]
}

Frequently asked questions

Why does this matter for SEO and AI search?

Search engines may render JavaScript later or with limits, and many AI crawlers read only the raw HTML. Anything that exists only after rendering can be missed or indexed late.

What counts as a difference for word and link counts?

Counts must change by at least 20 percent, and word counts by at least 25 words, so small dynamic widgets do not create noise.

What happens if one of the two fetches fails?

The comparison needs both versions. If either one cannot be read, the result is unknown with a reason and the request is refunded.

How many credits does it cost?

Seven credits per check, because every request reads the page twice, once raw and once rendered.

Related tools and resources

HTTP status codes

These are the HTTP status codes to handle, so you can tell apart successful responses, auth issues, credits, rate limits, missing data, and upstream failures.

OK 200

Request successful

Bad Request 400

Invalid parameters

Unauthorized 401

Missing or invalid API key/session.

Payment Required 402

Not enough credits to run this request.

Too Many Requests 429

Rate limit exceeded