Skip to main content
POST
/
website-audit
Website Audit
curl --request POST \
  --url https://v3-api-beta.snowseo.com/snowseo/v2/website-audit \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "url": "<string>",
  "teamId": "<string>",
  "auditType": "<string>",
  "async": "<string>",
  "persist": "<string>",
  "crawlOnly": "<string>",
  "saveCrawlHistory": "<string>",
  "includeTags": [
    "<string>"
  ],
  "excludeTags": [
    "<string>"
  ],
  "brandName": "<string>",
  "preview": "<string>"
}
'
Analyze any website for SEO issues, performance problems, and optimization opportunities. The audit checks things like broken links, missing meta tags, page speed, mobile-friendliness, and more. You can also use GET for this endpoint — both methods work the same way.

Request

url
string
required
The full URL of the website you want to audit (e.g., https://example.com).
teamId
string
Your team ID from the SnowSEO dashboard. Required for async multi-page audits and usage tracking.
auditType
string
default:"single"
Audit mode: single (one page) or multiple (deep-crawl up to 501 pages at depth 3).
async
string
default:"true"
For multiple audits — set to "false" to wait synchronously for results.
persist
string
default:"true"
Whether to persist audit results to the database. Defaults to true when teamId is provided.
crawlOnly
string
When "true" with auditType=multiple, only crawl and save URLs — skip per-page audits.
saveCrawlHistory
string
When "true" in single mode, appends the audited URL to your crawl history.
includeTags
string | string[]
HTML tags to include during the crawl (comma-separated or JSON array).
excludeTags
string | string[]
HTML tags to exclude during the crawl (comma-separated or JSON array).
brandName
string
Brand name for meta title/description checks. Auto-derived from page metadata when omitted.
preview
string
When "true", only fetches the page and returns the title + suggested brand (no full audit). Use to confirm brand before running the audit.

Response

The response includes a detailed breakdown of your site’s SEO health. Here are the key fields you’ll get back:
{
  "url": "https://snowseo.com",
  "seoAudit": {
    "overallScore": 89,
    "totalTests": 32,
    "passedTests": 29,
    "categoryScores": {
      "commonSeoIssues": 87,
      "serverAndSecurity": 86,
      "mobileUsability": 100,
      "advancedSeo": 100
    },
    "timestamp": "2026-03-27T10:11:02.487Z",
    "results": {
      "commonSeoIssues": {
        "metaTitle": {
          "passed": true,
          "text": "SnowSEO - Get your brand mentioned in AI Search Results",
          "length": 55
        },
        "imageAlt": {
          "passed": false,
          "totalImages": 109,
          "missingAlt": 6,
          "complianceRate": 89
        }
      }
    }
  }
}

Key fields explained

FieldWhat It Tells You
overallScoreYour website’s SEO health score out of 100
totalTests / passedTestsHow many checks were run and how many your site passed
categoryScoresScores broken down by area — SEO issues, security, mobile, and advanced SEO
timestampWhen the audit was run
resultsDetailed findings for each check, including whether it passed and specific data (e.g., missing image alt tags, meta title length)
The full response includes many more checks inside results (heading tags, social media tags, robots.txt, sitemap, etc.). Each check includes a passed field and specific details about what was found.
Run audits regularly (e.g., weekly) to catch new issues early — especially after deploying changes to your website.