Menu
Docs/Site Audit

Site Audit

The Site Audit endpoint loads any URL in a real Chromium browser and extracts:

  • Color palette — grouped by background, text, primary, and accent (up to 20 unique colors)
  • Fonts — every font family with weights and usage context (body, heading, code)
  • Headings — all h1–h6 with font size, weight, color, and text content
  • Tech stack — framework detection with confidence scores (Tailwind, Bootstrap, Next.js, React, Vue, WordPress, and more)
  • Page metadata — title, description, OG image, favicon, language

Site Audit requires a Starter+ plan. Try it free at snapsharp.dev/tools/site-audit — 3 requests/day, no sign-up.

Endpoint

POST /v1/site-audit

Parameters

ParameterTypeDefaultDescription
urlstringrequiredTarget URL to audit
formatjson | png | pdfjsonOutput format
include_screenshotbooleantrueInclude base64 screenshot in JSON response
widthinteger1280Viewport width (320–3840)
sectionsstring[]allSections to include: colors, fonts, headings, stack, accessibility

Response — JSON

curl -X POST https://api.snapsharp.dev/v1/site-audit \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url": "https://linear.app", "format": "json"}'
{
  "url": "https://linear.app",
  "screenshot_url": "data:image/png;base64,...",
  "extracted_at": "2026-03-27T12:00:00Z",

  "colors": {
    "primary": ["#5E6AD2", "#4B50C8"],
    "background": ["#000000", "#111111"],
    "text": ["#FFFFFF", "#B4B4B4"],
    "accent": ["#EB5757"],
    "all_unique": ["#000000", "#5E6AD2", "#FFFFFF", "..."]
  },

  "fonts": {
    "families": [
      { "name": "Inter", "usage": "body", "count": 147, "weights": [400, 500, 600, 700] },
      { "name": "JetBrains Mono", "usage": "code", "count": 23, "weights": [400] }
    ],
    "total_unique": 2
  },

  "headings": [
    {
      "tag": "h1",
      "text": "Linear is a better way to build products",
      "font_size": "56px",
      "font_weight": "700",
      "color": "#FFFFFF",
      "font_family": "Inter"
    }
  ],

  "typography": {
    "body_font_size": "16px",
    "body_line_height": "1.6",
    "heading_scale": [56, 40, 24, 20]
  },

  "stack": {
    "css_framework": "Tailwind CSS",
    "js_framework": "Next.js",
    "ui_library": null,
    "detection_confidence": 0.95,
    "signals": [
      { "tech": "Next.js", "signal": "__NEXT_DATA__ script tag found", "confidence": 0.95 },
      { "tech": "Tailwind CSS", "signal": "Utility class patterns detected", "confidence": 0.9 },
      { "tech": "Vercel", "signal": "x-vercel-id header detected", "confidence": 0.85 }
    ]
  },

  "meta": {
    "title": "Linear – A better way to build products",
    "description": "Linear streamlines issues, sprints, and product roadmaps...",
    "favicon_url": "https://linear.app/favicon.ico",
    "og_image": "https://linear.app/og-image.png",
    "language": "en",
    "viewport": "width=device-width, initial-scale=1"
  }
}

Response — PNG (Site-Book)

Returns a pixel-perfect visual card (1200px wide) with all design tokens rendered beautifully.

curl -X POST https://api.snapsharp.dev/v1/site-audit \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url": "https://linear.app", "format": "png"}' \
  --output site-book.png

The PNG includes:

  • A screenshot of the page (top fold)
  • Color swatches with hex codes
  • Font families with weights
  • Heading hierarchy with sizes
  • Technology stack badges
  • SnapSharp watermark at the bottom

Response — PDF

Same content as PNG but rendered as A4 landscape PDF — perfect for client reports.

curl -X POST https://api.snapsharp.dev/v1/site-audit \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"url": "https://linear.app", "format": "pdf"}' \
  --output site-audit-linear.app.pdf

SDK Examples

// Node.js
import { SnapSharp } from '@snapsharp/sdk';

const snap = new SnapSharp('sk_live_...');
const audit = await snap.post('/v1/site-audit', {
  url: 'https://linear.app',
  format: 'json',
});

console.log(audit.stack.js_framework); // "Next.js"
console.log(audit.colors.primary);     // ["#5E6AD2", ...]
# Python
import requests

res = requests.post(
    "https://api.snapsharp.dev/v1/site-audit",
    headers={"Authorization": "Bearer sk_live_..."},
    json={"url": "https://linear.app", "format": "json"},
)
audit = res.json()
print(audit["stack"]["css_framework"])  # "Tailwind CSS"

Stack Detection

The following technologies are detected automatically:

TechnologySignal
Tailwind CSSUtility class patterns (flex, px-, bg-)
BootstrapClass patterns (container, col-, btn-)
Material UIMui* class prefixes
Chakra UIchakra- class prefixes
Next.js__NEXT_DATA__ script tag
Nuxt__NUXT__ global variable
Reactdata-reactroot, #__next, #root
Vue.jsdata-v-* scoped attributes
Angularapp-root, ng-version attribute
WordPressmeta[generator], wp-content paths
WebflowGenerator meta tag
FramerGenerator meta tag, framer-* classes
Vercelx-vercel-id response header
Netlifyx-powered-by: netlify header

Errors

CodeErrorDescription
400invalid_urlInvalid URL or parameters (private, blocked, or SSRF-protected)
401unauthorizedMissing or invalid API key
403plan_requiredStarter+ plan required
429rate_limitedRate limit exceeded
500Internal server error
502screenshot_failedPage unreachable or browser error
504timeoutAudit timed out after 30 seconds

Pricing

PlanSite Audit
Free
Starter✅ JSON + PNG + PDF
Growth
Business
Enterprise