The web scan is free and needs no account.
One operation, the one-page scan, as plain JSON over HTTPS. No key. Machine-readable description: /openapi.json (OpenAPI 3.1).
Fetches the page and up to six of its stylesheets, checks the eight signatures, and builds the fix kit when something is found.
curl -s https://sailop.com/api/scan/url \
-H 'Content-Type: application/json' \
-d '{"url":"example.com"}'{
"url": "https://example.com/",
"bytes": 577,
"stylesheets": 0,
"slopScore": 0,
"grade": "A",
"detected": 0,
"total": 8,
"signatures": [],
"tells": [],
"buckets": {},
"other": [],
"fix": null
}Each entry of tells, when a signature is found:
{
"severity": "high",
"category": "ai-default-font",
"weight": 22,
"message": "Inter or Geist as the page font: ...",
"suggestion": "Pair a distinctive display + body face ...",
"count": 12,
"matched": "--font-geist"
}fix holds the design system seeded from the hostname, the literal swaps, a Tailwind v4 theme, CSS variables, font tags and agentPrompt, a brief to paste into a coding agent. It is null when nothing was found.
400: bad address, page unreachable, HTTP error from the page, or a refused network. The error field is a sentence you can show.429: 6 scans a minute or 60 an hour per client address. See Retry-After.503: the scanner is at capacity (8 scans at once). Retry in a few seconds.The response is not cached and nothing is stored. Browser calls from other origins are not enabled; call it from a server, or use the MCP server.
The same scan, with the evidence and the fix kit as separate tools, is an MCP server at https://sailop.com/api/mcp: MCP docs.
contact@sailop.com. Privacy: privacy policy, legal notice.