Esc

Concepts

Checks

Ask only for the checks you need. Each check costs credits on its own, and a scan runs only what its checks need.

Choose checks

Name the checks you need: ?checks=ai,dns in the query of GET /sites/{domain}, or "checks": ["ai", "dns"] in the body of POST /scans. Leave it out to ask for every check.

A request costs credits for each check it asks for, and never more than every check at once: 3 credits from a stored result, or 15 credits with a new scan. A new scan runs only what its checks need, so fewer checks are also faster.

Available checks

CheckQuestionWhat it answersStoredNew scan
aiWas it built with an AI builder?Traces of Lovable, Bolt, v0 and other builders, each with the exact line.13
readinessIs it ready for AI?A score out of 100 for how well AI tools find, read and use it, with a prompt to fix each gap.14
popularityHow popular is it?A band from public ranked lists, and each list’s rank. Never a visit count.11
techWhat does it run on?Frameworks, site builders, shop systems, analytics and the network, with evidence.13
dnsWhere does it point?Its DNS records (A, MX, TXT, CAA and more), whether DNSSEC validated them, and its network.11
trustHow established does it look?Contact and company details, policies, HTTPS, domain age, and a score out of 100 from them. Never a verdict.26
summaryWhat is it?Its own words, its kind, who is behind it by independent sources, its profiles.25
historyHow old is it?Registration, first certificate and first web archive capture, each dated with its source.12
(none named)EverythingEvery check above, from one scan315

What a result contains

A result has a field for each check you asked for (trust also fills score); the other fields are null. Its checks field lists the checks it contains. The result object describes every field.

Lookup and Scan

One key and one base URL give you two APIs. Use the Lookup API when you need an answer straight away, and the Scan API when you need the site checked now.

Lookup APIScan API
SourceOur stored resultsA live scan of the site
SpeedImmediateFirst results in seconds; slower sources follow
One siteGET /v1/sites/{domain}POST /v1/scans, then GET /v1/scans/{id}
Many sitesPOST /v1/sites/batch, up to 50POST /v1/scans/batch, up to 10
CostEach check’s stored price; nothing when there’s no resultEach check’s scan price; reading a scan is free
  • The Lookup API returns our latest stored result with the checks you asked for, however old it is. Use maxAgeDays to require a more recent one. It never scans: when there’s no stored result, it returns 404 no_result, free. An unknown query parameter returns 400 invalid_parameter.
  • The Scan API returns 202 with the scan while it runs; its Location and Retry-After headers say where and when to read it again. If a result from the last 24 hours has the checks you asked for, it returns that result with 200, at the stored price. Read the scan at its links.self, which includes your checks.
  • The MCP server’s tools choose with their source argument: stored, the default, uses the Lookup API and never scans, and scan uses the Scan API (MCP server). They accept maxAgeDays too.

Check a fix

The readiness check includes a prompt to fix each gap it finds. After you deploy a fix, scan the site again with "again": true in the body of POST /v1/scans. Once the previous answer is 3 minutes old, the check runs again instead of returning the last day’s result. Other checks ignore again.

Note

As with every POST, send an Idempotency-Key with the scan, so a retry returns the same scan (Idempotency). The MCP tool get_ai_readiness called with source: "scan" also checks again, so an agent that applied a fix can verify its own work.