Send a company domain and get back which ecommerce and marketing tools its homepage shows, with the source, the time it was observed and the evidence for each finding. Pay per check with x402: no account and no API key.
0.02 USDCper completed check, on Base
Free if it failsincomplete or unsupported checks are not charged
Any public websiteno IP addresses, private or internal hosts
Call it
1. Ask without paying. The answer is a 402 with the payment terms.
curl -i -X POST https://aurelmark.live/v1/website/qualify -H "Content-Type: application/json" -d '{"domain":"trees.com","checks":["shopify","klaviyo"]}'
# HTTP/2 402, with a PAYMENT-REQUIRED header (x402 v2, base64 JSON)
2. Download the restart-safe client (Node 22+). The Node client can request a free quote without installing packages or loading a wallet. Save it in a private directory:
mkdir -m 700 aurelmark-buyer
cd aurelmark-buyer
curl -fsS -o client.mjs https://aurelmark.live/website-qualification/client.mjs
node client.mjs quote trees.com --checks shopify,klaviyo
3. Choose to pay, with a ceiling. Download the exact-version package manifest and install the wallet SDKs only when you intend to pay. The client uses the pinned SDK's appendPaymentIdentifierToExtensions to add the required payment identifier.
curl -fsS -o package.json https://aurelmark.live/website-qualification/client-package.json
npm install --ignore-scripts --no-fund
mkdir -m 700 operations
# Bash: enter your own key privately; it is never sent to Aurelmark.
read -rs -p "Buyer private key: " BUYER_PRIVATE_KEY
export BUYER_PRIVATE_KEY
node client.mjs pay trees.com --state ./operations/trees-1.json --max-usdc 0.02 --checks shopify,klaviyo
unset BUYER_PRIVATE_KEY
4. Resume the same operation after a lost reply. No key or SDK installation is needed to resume. The client sends the identical saved body and PAYMENT-SIGNATURE, without signing again:
node client.mjs resume --state ./operations/trees-1.json
State files are private: they contain a reusable payment proof. Keep them on your own machine; do not upload, share or commit them. Each payment requires a fresh state path. The client saves and syncs the proof before sending it, and refuses an existing or unsafe file. After a timeout or pending response, keep the file and use resume; do not create a replacement payment. A partial reserved file after a disk error needs inspection before any new payment. The scope and limits above still apply.
The client verifies the fixed endpoint, recipient, Base network, native USDC and 20000-unit price before signing. The ceiling is your explicit maximum, not a recurring allowance. Downloaded packages use exact direct SDK versions. The CLI prints dated evidence, sources, reasons, limitations and billing as assessment JSON.