SEO analysis and audits
Map site structure, extract on-page signals and track competitor pages over an API. Results come back as JSON you can load into your own database.
Why SEO teams need an API
Desktop crawlers work for one-off audits. They are hard to schedule, trigger from a CI job or pipe into a database, so each audit is a manual run and the data ends up in a CSV file.
Tracking fifty competitor pages a week for content or markup changes does not fit a desktop tool. The result is stale snapshots, or HTML-diff alerts that fire on nav changes and cookie banners.
How SuperScraper fits
Map, crawl and extract on-page SEO fields from code. Re-run the same extraction on your schedule to catch fields that changed.
- A URL inventory in one call
- /v1/map reads the site’s sitemap and its child sitemaps, and falls back to the homepage’s links when there is no sitemap. Use it to audit site structure or list URLs before a migration.
- On-page fields across many pages
- /v1/extract with a schema pulls title tags, meta descriptions, H1s, canonical URLs and structured data from a page. Send a urls array to run one schema across many pages.
- Completeness on schema-free extraction
- Call /v1/extract without a schema and the free cascade returns data._completeness, a 0 to 1 score for how complete the structured data is, and data._extraction_method. With a schema, check the fields you need for null before trusting a row.
- Track competitors on your schedule
- Re-run /v1/extract on competitor pages from your own scheduler to track title and description changes, new structured-data markup and content refreshes. Hosted scheduled monitoring is not available.
Endpoints
- POST
/v1/mapEvery URL on a domain, from its sitemap or homepage links. - POST
/v1/extractStructured SEO fields against your schema. - POST
/v1/batchMany URLs as markdown in one request, up to your plan’s cap. - POST
/v1/crawlA whole site as an async job, for large domains.
A site audit in two calls
Map the domain, then extract SEO fields from the URLs it returns.
Example responses use fictional data.
curl -X POST https://api.superscraper.dev/v1/map \
-H "Authorization: Bearer $SS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://example.com" }'
# Example response
{
"url": "https://example.com",
"links": [
"https://example.com/",
"https://example.com/about",
"https://example.com/pricing"
],
"total": 3,
"source": "sitemap"
}Questions
How do I crawl a full site and extract SEO signals?
Call /v1/map with the domain to get its URLs. Then call /v1/extract with those URLs as a urls array and a schema for the SEO fields you want, such as title, description, h1 and canonical. For large sites, /v1/crawl fetches the whole domain as an async job.
Can I extract JSON-LD structured data from pages?
Yes. Without a schema, /v1/extract reads JSON-LD first. If a page has schema.org markup, the response returns it in data, with data._extraction_method set to "json-ld" and a data._completeness score. /v1/scrape with the rawHtml format returns the page source, markup included.
How is this different from a desktop crawler?
/v1/map is an API call that returns a URL list. You can pipe it into a batch extraction or store it in a database with no CSV export step. A desktop crawler gives you a visual audit interface. The two fit different workflows.
Can I audit a JavaScript-rendered site?
Yes. The fetch cascade moves to a real browser when a page needs JavaScript to render. Send "forcePlaywright": true to start with the browser. This covers single-page apps, lazy-loaded content and meta tags set on the client.
Run your first programmatic SEO audit
Run any endpoint in the playground, or get a free key. 1,000 credits a month, no card.