> ## Documentation Index
> Fetch the complete documentation index at: https://snowseo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Website Audit

> Run a full SEO audit on any website and get a detailed health report.

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.

### Key fields explained

These fields live under the `seoAudit` object in the response (alongside `url` and `screenshot`).

| Field                        | What It Tells You                                                                                                                                                          |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `overallScore`               | Your website's SEO health score out of 100                                                                                                                                 |
| `totalTests` / `passedTests` | How many checks were run and how many your site passed                                                                                                                     |
| `categoryScores`             | Scores broken down by area — `commonSeoIssues`, `serverAndSecurity`, `mobileUsability`, `advancedSeo`, `content`, `socialTags`, `localization`, `performance`, and `links` |
| `timestamp`                  | When the audit was run                                                                                                                                                     |
| `results`                    | Detailed findings for each check, including whether it passed and specific data (e.g., missing image alt tags, meta title length)                                          |

<Note>
  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.
</Note>

<Tip>
  Run audits regularly (e.g., weekly) to catch new issues early — especially after deploying changes to your website.
</Tip>


## OpenAPI

````yaml POST /v3/website-audit/
openapi: 3.0.0
info:
  title: SnowSEO API
  description: API documentation for SnowSEO
  version: 1.0.0
servers:
  - url: https://api.snowseo.com
    description: Production server
security: []
tags:
  - name: Keywords
    description: Keyword research and suggestion end-points
  - name: Onboarding
    description: Brand onboarding and strategy end-points
  - name: Brands
    description: Brand management end-points
  - name: Organizations
    description: Organization and member end-points
  - name: Integrations
    description: Google Search Console and other integrations
  - name: Utilities
    description: Common utility end-points like screenshots and uploads
externalDocs:
  url: https://snowseo.com/docs
  description: Find more info here
paths:
  /v3/website-audit/:
    post:
      tags:
        - website-audit
      summary: Perform a comprehensive SEO audit on a website
      description: >-
        Crawls a URL with Firecrawl (Crawl4AI fallback), performs a
        multi-category SEO audit (Common SEO Issues, Server & Security, Mobile
        Usability, Advanced SEO), and returns structured results with scores per
        category. In `multiple` mode (deep crawl) with `async=true`, the route
        returns 200 immediately and saves results to the database in the
        background. The route accepts both GET (params in querystring) and POST
        (params in JSON body).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              properties:
                url:
                  type: string
                  description: URL to audit (https:// prefixed automatically)
                teamId:
                  type: string
                  description: Team ID (required for async multiple mode)
                auditType:
                  type: string
                  enum:
                    - single
                    - multiple
                  default: single
                  description: 'Audit mode: single page or deep multi-page crawl'
                async:
                  type: string
                  enum:
                    - 'true'
                    - 'false'
                  default: 'true'
                  description: Enable async background processing (multiple mode only)
                includeTags:
                  anyOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                  description: HTML tags to include during crawl
                excludeTags:
                  anyOf:
                    - type: string
                    - type: array
                      items:
                        type: string
                  description: HTML tags to exclude during crawl
                urls:
                  type: array
                  items:
                    type: string
                  minItems: 1
                  description: >-
                    Batch of URLs to audit (alternative to url for Audit
                    Selected). Requires teamId.
      responses:
        '200':
          description: >-
            Union of single-page, preview, async multiple, and sync multiple
            shapes. additionalProperties is required so fast-json-stringify does
            not strip nested audit fields.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                description: >-
                  Union of single-page, preview, async multiple, and sync
                  multiple shapes. additionalProperties is required so
                  fast-json-stringify does not strip nested audit fields.
                properties:
                  url:
                    type: string
                  title:
                    type: string
                  suggestedBrand:
                    type: string
                  seoAudit:
                    type: object
                    additionalProperties: true
                  screenshot:
                    type: string
                    nullable: true
                  success:
                    type: boolean
                  message:
                    type: string
                  totalPages:
                    type: number
                  results:
                    type: array
                    nullable: true
                    items:
                      type: object
                      additionalProperties: true
                      properties:
                        url:
                          type: string
                        score:
                          type: number
                        data:
                          type: object
                          additionalProperties: true
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string

````