/app.POST /api/v1/validate against a public preview URL.report_url to review findings.Most API endpoints use Bearer auth:
Authorization: Bearer <api_key>
POST /api/v1/validate is the easiest endpoint to automate: it can wait for completion and returns a pass/fail decision plus artifact links.
curl -sS -X POST "https://api.seodiff.io/api/v1/validate" \
-H "Authorization: Bearer $SEODIFF_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"base_url": "https://preview.example.com",
"preset": "fast",
"fail_on": "fetch_errors,non200_status,schema_missing_required,placeholder_hits",
"max_issue_rate": 10,
"wait": true,
"timeout_seconds": 180
}'
pass — final gate decisionreason — short explanation of the decisionreport_url — human-readable HTML reportjson_url — machine-readable JSON artifactsummary_markdown_url — PR-ready Markdown summaryThe HTML report includes jump links/TOC so you can quickly find key sections like template drift, issue deltas, and (when JS rendering is available) JS vs HTML and hydration drift.
Most teams scan preview deployments on every PR. Start with the workflow in CI/CD docs.
Monitoring runs scheduled scans on production and creates incidents when drift/regressions appear. Start in dashboard or API. See Monitoring docs.
base_url.status_url or increase timeout_seconds.SEODiff must be able to fetch the URL directly. For pull requests, preview deployments are recommended so humans and automation review the same URL.