SEO Toolkit

The SEO Toolkit provides a full suite of website analysis endpoints. Audit on-page SEO, check for broken links, measure page speed, validate structured data, inspect robots.txt, and compare pages side-by-side — all through a single, consistent API.

Base URL

https://seo.toolkitapi.io/v1/seo/

Endpoints

On-Page Auditing

Method Endpoint Description
GET /v1/seo/audit Full single-URL SEO audit with 0–100 score
POST /v1/seo/bulk-audit Audit up to 10 URLs in one request
POST /v1/seo/compare Side-by-side comparison of 2–5 URLs

Content & Meta Analysis

Method Endpoint Description
GET /v1/seo/keyword-density Word count, readability, and keyword density
GET /v1/seo/extract-meta Extract meta tags, OG, Twitter Card, and JSON-LD
GET /v1/seo/headers HTTP response headers, status, and redirect chain

Technical SEO

Method Endpoint Description
GET /v1/seo/broken-links Find broken outbound links on a page
GET /v1/seo/pagespeed TTFB, response size, compression, HTTP version
GET /v1/seo/mobile-friendly Viewport, font sizes, and media query checks
GET /v1/seo/sitemap-check Parse sitemap.xml — URLs, lastmod, index detection
GET /v1/seo/robots-check Inspect robots.txt rules, blocked paths, sitemaps
GET /v1/seo/schema-validate Extract and validate JSON-LD structured data

Quick Start

curl -G "https://seo.toolkitapi.io/v1/seo/audit" \
  -H "x-api-key: YOUR_KEY" \
  --data-urlencode "url=https://example.com"
import requests

resp = requests.get(
    "https://seo.toolkitapi.io/v1/seo/audit",
    params={"url": "https://example.com"},
    headers={"x-api-key": "YOUR_KEY"},
)
print(resp.json()["score"])
const params = new URLSearchParams({ url: "https://example.com" });
const resp = await fetch(
  `https://seo.toolkitapi.io/v1/seo/audit?${params}`,
  { headers: { "x-api-key": "YOUR_KEY" } }
);
const { score } = await resp.json();
console.log(`SEO Score: ${score}`);

Browse by topic

Common patterns

  • All GET endpoints accept a single URL via the url query parameter.
  • POST endpoints (bulk-audit, compare) accept a JSON body with a urls array.
  • Fetch errors are reported per-row or via the top-level error field — the HTTP response itself stays 200 unless the request is malformed.
  • Every endpoint enforces SSRF protection: internal, loopback, and link-local addresses are rejected.
  • The toolkit reads raw HTTP responses — it does not execute JavaScript. SPAs should serve meta tags in the initial HTML payload.

Common errors

Scenario Status Detail
Missing or invalid API key 401 Unauthorized
Malformed URL or internal host 400 invalid-request
Missing required parameter 422 Validation Error
Target site unreachable 502 DNS, connection, or TLS failure

Python SDK

pip install toolkitapi
from toolkitapi import SEO

with SEO(api_key="tk_...") as seo:
    audit = seo.audit("https://example.com")
    print(audit["score"], audit["meta_title"])

See individual endpoint pages for detailed parameter tables, response field schemas, and multi-language code examples.