API
One endpoint. Any URL. Instant intelligence.
POST a URL, get a weave back. Structured JSON, percentile benchmarks, ranked fixes.
curl -X POST \ https://api.weavn.app/v1/scan \ -H "Authorization: Bearer wdoc_live_••••" \ -H "Content-Type: application/json" \ -d '{"url": "https://your-site.com"}'
No official SDK — curl, Node, and Python above are complete. Any HTTP client that supports Bearer auth and JSON POST works identically.
Try live at /playground — no client setup needed. · Response size scales with finding_limit (1–20) and finding_depth. Use fields to omit unneeded top-level blocks.
HOW THE ENGINE WORKS
Three steps. One structured response.
One POST request. 307 checks fire in sequence across 27 categories. Structured JSON returns.
curl -X POST \ https://api.weavn.app/v1/scan \ -H "Authorization: Bearer wdoc_live_••••" \ -H "Content-Type: application/json" \ -d '{"url": "https://your-site.com"}'
Build against this schema once. Every URL returns identical structure.
REQUEST PARAMETERS · POST /api/v1/scan
RESPONSE SCHEMA
One response object. Every time.
Every finding in every scan returns this exact shape.
CHECK CATEGORIES · 27 GROUPS · 307 CHECKS
Category prefix visible in strengths[*].check_id — e.g. HERO_001, TRUST_013, CTA_016.
ERROR CONTRACT
All errors return the same envelope so your handler never needs to branch on response shape — only on error.code.
Retry 5xx. Do not retry 400/401/422 — the error is structural, not transient.
WEBHOOK PAYLOAD
Every async and batch scan delivers a POST to your registered endpoint when complete. Three delivery attempts: immediate, +5 min, +30 min. Verify with the X-WebDoc-Signature header (HMAC-SHA256 of body, keyed with your webhook secret).
BUILT FOR AGENTS AND AUTOMATION
Deterministic output. Every call.
An agent can only act on output it can parse identically every time. The same URL always returns the same schema — scores, findings, severity, and copy rewrites — whether it runs at 3am in a batch or inline in a user flow.
AGENT LOOP PATTERN
POST /api/v1/scan/batch
Up to 10 URLs in a single request. All scan in parallel. Returns immediately with a batch_id.
status: pending
The engine runs 307 checks per URL. Parallel execution — a 10-URL batch completes in roughly the same wall time as one.
event: scan.completed
Single structured payload delivered to your endpoint. Three delivery attempts with exponential backoff.
WHAT YOU CAN BUILD
Five integrations. One endpoint.
CMS / site builder score badge
Embed a live conversion score for any page in Webflow, Framer, or a custom CMS. Re-scan on publish; surface the delta.
POST /api/v1/scan on deploy hook
CRM lead audit on creation
When a lead record is created, auto-scan their website. Attach the score and top findings to the deal before the first call.
triggered from CRM webhook
Agency white-label reporting
Batch-scan client sites on a schedule. Feed findings into your own branded report template. Deliver to clients without exposing the underlying engine.
POST /api/v1/scan/batch
AI agent decision loop
Feed scores and structured findings directly into an LLM agent. The JSON schema is stable — the agent parses it the same way every run.
structured JSON → agent context
Prospect list bulk audit
Upload a CSV of target domains. Batch-scan in parallel. Filter by score threshold to prioritise outreach on sites with the highest lift potential.
POST /api/v1/scan/batch → filter by score
API PLANS · RATE DECREASES WITH VOLUME
PLAYGROUND
25 free
then $0.25/scan
Developers evaluating the API before building. No commitment required.
GET API KEY →DEV
$29
/mo · 300 scans
Solo developers integrating conversion intelligence into their first product.
START DEV →BUILDER
$99
/mo · 1,000 scans
Teams building audit pipelines or integrating webdoc into client workflows.
START BUILDER →SCALE
$249
/mo · 3,000 scans · best value
High-volume integrations and teams that need dedicated infrastructure and rate limits.
START SCALE →ENTERPRISE
Custom
from $0.11/scan · SLA
Organizations requiring custom volume, SLA guarantees, and dedicated support.
TALK TO US →INCLUDED ON ALL PLANS
CACHE POLICY
Cache policy
Identical URL rescanned within 24h returns cached result at zero cost.
Scan the same URL multiple times in your pipeline for free.
cache_hit: true · cost_usd: 0.00
ASYNC MODE
Async mode
POST with async: true. Result delivered to your endpoint when ready.
Don't block your process waiting 90 seconds — fire and forget.
async: true · webhook_url: your-endpoint
BATCH ENDPOINT
Batch endpoint
POST /api/v1/scan/batch — parallel execution, single webhook response.
Audit a full site's key pages in one request.
POST /api/v1/scan/batch · up to 10 URLs
RESPONSE TIME
Response time
p50: 87s · p95: 142s · measured across 30-day rolling window.
p95 is 142s — plan timeouts accordingly.
p50: 87s · p95: 142s
TECHNICAL QUESTIONS
How does authentication work?
Every request requires a Bearer token in the Authorization header. Keys start with wdoc_live_ and are scoped to your account and plan. Get your key from the developer portal. Do not expose keys in client-side code — requests must originate server-side.
Authorization: Bearer wdoc_live_••••
Sync or async — which should I use?
Sync holds the connection and returns the full response when the scan completes (~90s). Use it for single scans where you can wait. Async returns immediately with a scan_id and POSTs the result to your webhook_url when ready — use it for batch processing or to avoid timeouts.
async: false (sync) · async: true + webhook_url
How does caching work?
Identical URLs rescanned within 24 hours return the cached result at zero cost. Cache is invalidated when page content changes significantly — detected via fingerprint comparison. Force a fresh scan with force_refresh: true.
cache_hit: true · cost_usd: 0.00
What's in the batch endpoint?
POST up to 10 URLs in one request to /api/v1/scan/batch. All URLs scan in parallel. Results are delivered to your webhook_url as a single structured payload when all scans complete. Each URL in the batch consumes one scan credit.
POST /api/v1/scan/batch · max 10 URLs
What if a site blocks the scanner?
webdoc uses Browserless Pro with stealth mode and a real Chrome user agent. Most sites scan cleanly. Cloudflare Enterprise with aggressive bot detection occasionally blocks — the API returns a structured error with block_reason: "automated_access_blocked".
error: automated_access_blocked
Is there an uptime SLA?
Enterprise plans include a formal SLA. All other plans target 99.5% uptime. Status and incident history available at status.webdocai.com. Planned maintenance is announced 48 hours in advance via dashboard notification.
target_uptime: 99.5% · SLA: enterprise_only
Want to understand what fires under the hood? See the engine →
Need results without code?
The dashboard surface gives non-technical users the same scan data in a visual report.
Go to dashboard →Ready to build?
25 free scans. No subscription. Start in minutes.
Same engine on every plan. Build against the schema once.
GET API KEY →