apyhub
MARKETING · SEO

Evaluate SEO Health API

What it does

SEO Health Checker evaluates a webpage URL and returns a structured audit of its search-engine signals. Send it an http or https URL, and you get a score, a grade, and a breakdown of the page’s SEO-related metadata and structured data.

Use it when you need a quick technical read on a landing page, blog post, or product page before publishing. The response includes counts for warnings, critical errors, JSON-LD items, microdata items, and rich results, plus booleans for Open Graph, Twitter Card, and structured data presence. That makes it useful for spotting missing metadata and comparing pages in a crawl or content QA workflow.

You also get a top_fixes array with the main issues to address, along with the audited url and source_url. If you are building an internal SEO review tool or automating pre-publish checks, this gives you a compact machine-readable summary without parsing the page yourself.

POST
Evaluate SEO Health
http://localhost:8080/chisleroff/evaluate-seo-health
QUICKSTARTGUIDE

Quickstart

Check the SEO health of a webpage by sending its URL.

curl -X POST "http://localhost:8080/chisleroff/evaluate-seo-health" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://apyhub.com"}'

What you'll get back

Returns a JSON object with these top-level fields: url (string), grade (string), score (integer), breakdown (object), top_fixes (array of strings), and source_url (string). The breakdown object can include warnings, json_ld_count, has_open_graph, critical_errors, microdata_count, has_twitter_card, rich_results_total, rich_results_eligible, and structured_data_present.

{
  "url": "https://apyhub.com",
  "score": 89,
  "grade": "B",
  "breakdown": {
    "structured_data_present": true,
    "json_ld_count": 22,
    "microdata_count": 0,
    "has_open_graph": true,
    "has_twitter_card": true,
    "rich_results_eligible": 5,
    "rich_results_total": 5,
    "critical_errors": 0,
    "warnings": 5
  },
  "top_fixes": [
    "\"logo\": \"https://example.com/logo.png\"",
    "\"contactPoint\": { \"@type\": \"ContactPoint\", \"telephone\": \"+1-555-123-4567\", \"contactType\": \"customer service\" }",
    "\"founder\": { \"@type\": \"Person\", \"name\": \"Founder Name\" }",
    "\"numberOfEmployees\": \"50\"",
    "\"aggregateRating\": { \"@type\": \"AggregateRating\", \"ratingValue\": \"4.5\", \"bestRating\": \"5\", \"ratingCount\": \"120\" }"
  ],
  "source_url": "https://apyhub.com"
}
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*
URL of the webpage to extract, audit, or validate content from (http/https only).

About this endpoint

What it does

Evaluates the SEO health of a webpage given its url and returns an SEO report for that page, including a score, grade, breakdown metrics, top fixes, and related URLs.

Request Body

ParameterTypeMandatoryDescription
urlStringYesURL of the webpage to evaluate. Must be a valid URI using http/https only.

Response

Returns a JSON object with url, grade, score, breakdown, top_fixes, and source_url fields. breakdown is a nested object with SEO metric counts and booleans, and top_fixes is an array of strings.

ParameterTypeMandatoryDescription
urlStringNoThe evaluated webpage URL.
gradeStringNoThe SEO grade assigned to the webpage.
scoreIntegerNoThe SEO score assigned to the webpage.
breakdownObjectNoSEO metric summary object containing warnings, json_ld_count, has_open_graph, critical_errors, microdata_count, has_twitter_card, rich_results_total, rich_results_eligible, and structured_data_present.
top_fixesString ArrayNoArray of suggested fixes.
source_urlStringNoSource URL for the report. Must be a valid URI.

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.