Web Data

On-page SEO audit API

Audit one page per request and get every on-page SEO signal in one JSON response: meta tags, canonical and robots directives, heading outline, word count, links, images, Open Graph and structured data, plus 38 weighted checks and a 0-100 score. Add render=true to audit the page after JavaScript runs.

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

urlrender
Response fields

Example response

statusscoremetameta.titlemeta.title_lengthmeta.canonical_self_referencingmeta.indexableheadingsheadings.h1contentcontent.word_countcontent.text_to_html_ratio
Status coverage

HTTP status codes

200400401402429

Endpoints

GET /v1/onpage
Credits: 2-6Authentication: 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

Raw or rendered

Audit the HTML your server sends, or set render=true to audit the page after JavaScript runs in an isolated browser, the way modern crawlers see single-page apps.

38 weighted checks

Each check returns pass, warn, fail or not applicable with a severity, from missing titles and conflicting canonicals to mixed content, images without alt text and skipped heading levels.

Every signal in one call

Title and description lengths, meta robots and X-Robots-Tag, language, viewport, favicon, Open Graph, Twitter cards, link and image counts and structured data types.

Honest unknowns

Blocked, rate-limited or failed fetches return status unknown with a reason and are refunded, so a page you could not read never looks like a clean page.

Example request

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

Example response

200 OK json
{
  "status": "ok",
  "score": 87,
  "meta": {
    "title": "Trail Running Shoes for Rocky Terrain | Example Outdoor",
    "title_length": 55,
    "canonical_self_referencing": true,
    "indexable": true
  },
  "headings": { "h1": ["Trail Running Shoes for Rocky Terrain"] },
  "content": { "word_count": 122, "text_to_html_ratio": 0.221 },
  "checks": [
    { "id": "mixed_content", "status": "fail", "severity": "high", "value": 1 },
    { "id": "images_alt", "status": "warn", "severity": "medium", "value": 1 }
  ],
  "issues": ["mixed_content", "heading_hierarchy", "word_count", "images_alt"]
}

Frequently asked questions

How is the score calculated?

High-severity checks weigh 10 points, medium 5 and low 2. A pass earns the full weight, a warning earns half and a fail earns nothing. Checks that do not apply, such as image alt text on a page without images, are left out.

When should I use render=true?

Use it for pages built with JavaScript frameworks, where titles, content or links only appear after scripts run. Compare both versions with the JavaScript SEO API to see exactly what changes.

Does it crawl the whole site?

No. Each request audits one URL, so you control which pages are checked and what you spend. Combine it with the sitemap audit API to choose the URLs to audit.

How many credits does it cost?

Two credits for a raw HTML audit and six credits with render=true. Results that end in status unknown are refunded.

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