apyhub
DEVELOPER TOOLS · SEO

Validate HTML API

What it does

HTML Validator checks raw HTML for structured data and returns a parsed view of what it finds. Send the html field in the request body, and get back validation results you can inspect programmatically.

The response includes the source url when available, extracted json_ld, microdata, and metadata objects such as meta_tags, open_graph, and twitter_card. It also returns a summary object with warnings, critical_errors, overall_score, total_entities, types_found, and rich_results_eligible so you can quickly see whether a page is ready for search features that depend on structured data.

Use HTML Validator when you need to audit a page template, check a CMS output, or verify that product pages, articles, or organization pages expose the markup search engines expect. It is useful for QA pipelines, SEO checks, and content workflows where structured data issues need to be caught before deployment.

If your pages rely on schema markup, this service gives you the inspection data you need without parsing HTML yourself.

POST
Validate HTML
https://api.eu.apyverse.com/chisleroff/validate-html

QUICKSTART

GUIDE

Quickstart

Send raw HTML to validate for structured data.

curl -X POST "https://api.eu.apyverse.com/chisleroff/validate-html" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"html":"<!doctype html><html><head><title>Example</title></head><body><h1>Hello</h1></body></html>"}'

What you'll get back

Returns a JSON object with these top-level fields when present: url and source_url are strings, json_ld and microdata are arrays of objects, summary is an object, and meta_tags, open_graph, and twitter_card are objects.

summary may include warnings and critical_errors as integers, types_found and rich_results_eligible as arrays of strings, overall_score as a number, and total_entities as an integer.

{
  "url": "https://example.com/page",
  "summary": {
    "warnings": 0,
    "types_found": ["WebPage"],
    "overall_score": 1,
    "total_entities": 1,
    "critical_errors": 0,
    "rich_results_eligible": ["WebPage"]
  }
}
TRY ITLIVE · 50 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
Raw HTML content to validate for structured data (max 5,000,000 characters).

About this endpoint

What it does

Validates the HTML you submit in the request body for structured data-related content and returns a JSON object describing what was found. The response includes the source URL, detected JSON-LD, microdata, metadata-related objects, and a summary of validation results.

Request Body

ParameterTypeMandatoryDescription
htmlStringYesRaw HTML content to validate for structured data. Maximum length: 5,000,000 characters.

Response

Returns a JSON object with url and source_url string fields, json_ld and microdata object arrays, summary as an object, and meta_tags, open_graph, and twitter_card as objects. The summary object contains warnings, overall_score, total_entities, and critical_errors numeric fields, plus types_found and rich_results_eligible string arrays.

AttributeTypeMandatoryDescription
urlStringNoThe URL associated with the validated HTML.
json_ldObject ArrayNoJSON-LD items found in the HTML. Each array item is an object that may contain additional properties.
summaryObjectNoValidation summary object. Contains warnings (integer), types_found (string array), overall_score (number), total_entities (integer), critical_errors (integer), and rich_results_eligible (string array).
meta_tagsObjectNoMeta tag data extracted from the HTML. Additional properties are allowed.
microdataObject ArrayNoMicrodata items found in the HTML. Each array item is an object that may contain additional properties.
open_graphObjectNoOpen Graph data extracted from the HTML. Additional properties are allowed.
source_urlStringNoThe source URL associated with the HTML, if available.
twitter_cardObjectNoTwitter card data extracted from the HTML. Additional properties are allowed.

Body

Name
Type
Description
bodyREQUIRED
object
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.