---
title: "Scan a URL and email a whitelabeled partial report to a recipient"
method: POST
path: "/lead_scans"
tags: ["Lead Scans"]
---

# Scan a URL and email a whitelabeled partial report to a recipient

`POST /lead_scans`

## Request

- Base URL: `https://sitecurl.com/api/v1`
- URL: `https://sitecurl.com/api/v1/lead_scans`
- Auth: HTTP bearer

Studio plan only. Scans an arbitrary URL (no Site record is created) and emails a whitelabeled "top 5 issues" partial report to recipient_email once the scan completes. Built for a lead-capture form on the account's own site. Any form tool that can send an authenticated POST request can call it. See docs/superpowers/specs/2026-09-29-lead-capture-scan-api-design.md. A duplicate (url, recipient_email) submission within 10 minutes returns the existing LeadScan instead of scanning again. If a scan cannot be completed the visitor is not emailed; the account's users get an email listing the visitor's address instead.

## Request body

- object
  - `url` string, uri, required
  - `recipient_email` string, email, required
  - `recipient_name` string

## Response `202`

Scan queued (or an existing duplicate LeadScan within the dedupe window)

- object
  - `data` object
    - `id` string, uuid
    - `status` 'queued' | 'scanning' | 'sent' | 'failed'
    - `message` string

## Other responses

- `403`: Account is not on a Studio plan (error_code STUDIO_PLAN_REQUIRED)
- `422`: Invalid url (INVALID_URL) or recipient_email (INVALID_RECIPIENT_EMAIL)
- `429`: Rate limit exceeded

---

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