RankParse

Page SEO

Real-time full SEO audit for any URL — meta tags, Open Graph, JSON-LD, hreflang, headings, images, and more.

GET /v1/page-seo

Fetches the target URL in real time and returns a complete SEO audit. Costs 3 credits.

Parameters

ParameterTypeRequiredDescription
urlstringYesThe full URL to analyze

Request

curl "https://api.rankparse.com/v1/page-seo?url=https://example.com/about" \
  -H "X-API-Key: rp_your_key"

Response

{
  "data": {
    "url": "https://example.com/about",
    "final_url": "https://example.com/about",
    "status_code": 200,
    "response_time_ms": 312,
    "title": { "text": "About Us - Example", "length": 18, "optimal": true },
    "description": { "text": "Learn about Example Inc.", "length": 24, "optimal": false },
    "canonical": { "url": "https://example.com/about", "self_referential": true },
    "robots": { "index": true, "follow": true, "raw": "index,follow" },
    "viewport": "width=device-width, initial-scale=1",
    "language": { "primary": "en", "tag": "en-US", "source": "html_lang" },
    "hreflang": [
      { "lang": "en", "url": "https://example.com/about" },
      { "lang": "fr", "url": "https://fr.example.com/about" }
    ],
    "headings": {
      "h1": ["About Us"],
      "h2": ["Our Story", "Our Team"],
      "h3_count": 4
    },
    "og": {
      "title": "About Us - Example",
      "description": "Learn about Example Inc.",
      "image": "https://example.com/og-image.jpg",
      "type": "website",
      "url": "https://example.com/about"
    },
    "twitter": {
      "card": "summary_large_image",
      "title": "About Us - Example"
    },
    "json_ld": [{ "@type": "Organization", "name": "Example Inc." }],
    "images": { "total": 8, "missing_alt": 2 },
    "links": { "internal": 24, "external": 3 },
    "word_count": 412,
    "favicon": "https://example.com/favicon.ico"
  },
  "credits_used": 3
}

Notes

  • title.optimal is true when length is 30–60 characters
  • description.optimal is true when length is 120–160 characters
  • Returns 503 with code: fetch_failed if the target URL is unreachable
  • Returns 400 with code: private_ip if the URL resolves to a private or reserved address

On this page