---
title: "Perform a comprehensive SEO audit on a website"
method: GET
path: "/v3/seo-audit"
tags: ["SEO Audit"]
---

# Perform a comprehensive SEO audit on a website

`GET /v3/seo-audit`

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).

## Query parameters

- `url` string, required
- `teamId` string
- `auditType` 'single' | 'multiple'
- `async` 'true' | 'false'
- `includeTags` union
  - string
  - string[]
- `excludeTags` union
  - string
  - string[]

## Response `200`

Preview and multi-page requests return JSON. Single-page audits stream status updates followed by the final result as NDJSON.

- object
  - `url` string
  - `title` string
  - `suggestedBrand` string
  - `seoAudit` object — Final SEO audit result for a single page.
    - `overallScore` number
    - `totalTests` number
    - `passedTests` number
    - `timestamp` string, date-time
    - `brandName` string, nullable
    - `categoryScores` object
      - `commonSeoIssues` number
      - `serverAndSecurity` number
      - `mobileUsability` number
      - `advancedSeo` number
      - `content` number
      - `socialTags` number
      - `localization` number
      - `performance` number
      - `links` number
    - `results` object
      - `commonSeoIssues` object — Audit checks keyed by check name. Individual checks may include additional details.
      - `serverAndSecurity` object — Audit checks keyed by check name. Individual checks may include additional details.
      - `mobileUsability` object — Audit checks keyed by check name. Individual checks may include additional details.
      - `advancedSeo` object — Audit checks keyed by check name. Individual checks may include additional details.
      - `content` object — Audit checks keyed by check name. Individual checks may include additional details.
      - `socialTags` object — Audit checks keyed by check name. Individual checks may include additional details.
      - `localization` object — Audit checks keyed by check name. Individual checks may include additional details.
      - `performance` object — Audit checks keyed by check name. Individual checks may include additional details.
      - `links` object — Audit checks keyed by check name. Individual checks may include additional details.
    - `auditSummary` object
      - `score` number
      - `grade` string
      - `status` string
      - `categories` object
        - `commonSeo` object
          - `score` number
          - `status` string
        - `security` object
          - `score` number
          - `status` string
        - `mobile` object
          - `score` number
          - `status` string
        - `advanced` object
          - `score` number
          - `status` string
        - `content` object
          - `score` number
          - `status` string
        - `socialTags` object
          - `score` number
          - `status` string
        - `localization` object
          - `score` number
          - `status` string
        - `performance` object
          - `score` number
          - `status` string
        - `links` object
          - `score` number
          - `status` string
    - `linkDistribution` object
      - `total` number
      - `external` number
      - `internal` number
      - `nofollow` number
      - `noreferrer` number
      - `dofollow` number
      - `noopener` number
      - `anchor` number
    - `metadata` object
      - `metadataFoundCount` number
      - `chart` object
      - `detectedCms` string, nullable
      - `images` object
        - `totalImages` number
        - `imageTypeDistribution` object
        - `imageIssues` object
          - `brokenImages` number
          - `bigImages` number
          - `slowImages` number
          - `missingAltTags` number
  - `screenshot` string, nullable
  - `success` boolean
  - `message` string
  - `totalPages` number
  - `jobId` string, nullable
  - `results` object[], nullable
    - `url` string
    - `score` number
    - `data` object

## Other responses

- `400` — Default Response
- `500` — Default Response

## Changes

- **2026-09-18** `e0163b1c37cb` — 1 breaking, 1 info
  - api path removed without deprecation
  - endpoint added
- **2026-08-14** `c6b2fabd21be` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/snowseo/apis/snowseo-api/changes/v3/seo-audit/get.md)

---

[API](https://skmtc.dev/snowseo/apis/snowseo-api.md) · [All operations](https://skmtc.dev/snowseo/apis/snowseo-api/llms.txt) · [OpenAPI document](https://skmtc.dev/snowseo/apis/snowseo-api/revisions/623d4784f6e6?raw)
