VX Agents

API directory · Marketing & Analytics

DataForSEO On-Page Site Audit

v1.0.0 · 12 endpoints · 0 connections · shared by vx.ai

Crawl a site and get the technical SEO punch list: queue a DataForSEO On-Page crawl, read the summary of 60+ checks, then drill into non-indexable pages, duplicate titles and descriptions, broken links and redirect chains. One-off checks run live with instant_pages or a Lighthouse audit.

Connect this API to an AI agent Browse all specs

What you can do with DataForSEO On-Page Site Audit via MCP

Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.

MethodPathOperationDescription
POST /v3/on_page/task_post createCrawlTask Start a crawl of a website (billed per crawled page)
GET /v3/on_page/tasks_ready listReadyCrawls List finished crawls whose results you have not collected
GET /v3/on_page/summary/{id} getCrawlSummary Get crawl progress and the count of each on-page issue
POST /v3/on_page/pages listCrawledPages List crawled pages with their checks, filtered by issue
POST /v3/on_page/non_indexable listNonIndexablePages List pages search engines cannot index, and why
POST /v3/on_page/duplicate_tags listDuplicateTags List pages sharing the same title or meta description
POST /v3/on_page/duplicate_content listDuplicateContent List pages with near-duplicate content to a given page
POST /v3/on_page/links listLinks List internal and external links, including broken ones
POST /v3/on_page/redirect_chains listRedirectChains List redirect chains and loops found in the crawl
POST /v3/on_page/resources listResources List images, scripts and stylesheets with their issues
POST /v3/on_page/instant_pages instantPageAudit Audit one URL live without a crawl
POST /v3/on_page/lighthouse/live/json lighthouseAudit Run a Google Lighthouse audit on one URL live

Authentication

basicAuth

HTTP Basic

DataForSEO uses HTTP basic auth with your API login and API password (not your dashboard password).

How to get a credential

  1. Sign up at https://app.dataforseo.com/register (pay-as-you-go; new accounts get trial credit).
  2. Open API Access in the dashboard (https://app.dataforseo.com/api-access).
  3. Copy the API login (your email) and the API password shown there.

Permissions used

DataForSEO has no scopes: every call is billed per task or page from your balance.

Access Operations
Billed crawl / live check createCrawlTask (per crawled page), instantPageAudit, lighthouseAudit
Results of your own tasks listReadyCrawls, getCrawlSummary, listCrawledPages, listNonIndexablePages, listDuplicateTags, listDuplicateContent, listLinks, listRedirectChains, listResources

Common errors

DataForSEO answers HTTP 200 and puts the real result in status_code (20000 = ok) inside the body and each task.

Code Meaning Fix
401 / 40100 Wrong login or API password Copy both again from API Access.
40200 / 40210 Balance too low Top up the account balance.
40203 Daily cost limit reached Raise the limit under API Settings in the dashboard.
40401 / 40501 / 40503 Unknown task id, or invalid field Use ids from createCrawlTask; target is a domain without https:// or www.
40202 Per-minute rate limit exceeded Slow down and retry.

Store the login and API password as a VX Agents basic-auth credential.

Usage guide

Setup

Add your DataForSEO API login and API password (dashboard > API Access) as a basic-auth credential. Crawls and live checks are billed from your balance; set a daily cost limit in the dashboard's API Settings.

Audit a website

  1. Confirm the domain and page budget with the user, then createCrawlTask with a one-item array: [{"target": "example.com", "max_crawl_pages": 200}] (target without https:// or www). Optional: load_resources: true for images/scripts checks, enable_javascript: true for JS sites (costs more). Keep the returned task id.
  2. Poll getCrawlSummary with the id every minute or two: crawl_progress turns finished when done; listReadyCrawls lists finished crawls too. The summary gives the onpage_score, page counts and how many pages fail each check.
  3. Drill into what the summary flags, always as a one-item array with the task id:
    • listNonIndexablePages: pages blocked by robots.txt, noindex or canonicals.
    • listDuplicateTags with type duplicate_title or duplicate_description; listDuplicateContent with a url to compare.
    • listLinks with filters e.g. [["is_broken", "=", true]]; listRedirectChains for chains and loops.
    • listCrawledPages with filters on checks, e.g. [["checks.no_h1_tag", "=", true]], and order_by.
    • listResources for oversized or broken images, scripts and stylesheets.
  4. Report a prioritised punch list (indexing first, then broken links, duplicates, then performance).

Quick checks

  • instantPageAudit with [{"url": "https://example.com/page"}] audits one URL live without a crawl.
  • lighthouseAudit with [{"url": "...", "for_mobile": true}] returns Lighthouse scores and audits. Both are billed per call: confirm first.

Good to know

  • Every body is a JSON array of task objects; results are under tasks[0].result. Check status_code 20000 in the body, not just HTTP 200.
  • Result lists take limit (max 1000) and offset; filters allow up to 8 conditions joined by "and"/"or".
  • Crawl results expire after a month (40403).
  • max_crawl_pages is the main cost driver: start small.

Source: DataForSEO On-Page API reference (https://docs.dataforseo.com/v3/on_page/overview/), checked 2026-10-23.

How to use this spec

  1. Create a free VX Agents account (sandbox tools included).
  2. Open the marketplace and connect “DataForSEO On-Page Site Audit” to an agent.
  3. Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.

Related APIs