Landfall developer guide

Website intelligence for AI agents. Send a URL, get structured JSON back in about a second. Pay per call in USDC with x402: no account, no API key, never charged if a call fails.

What you can call

EndpointMCP toolPriceReturns
GET /v1/audit?url=audit_landing_page$0.05Ad-readiness score and verdict, tags with IDs, conversion paths, top 5 fixes
GET /v1/business?url=get_business_details$0.02Name, phones, emails, address, hours, socials, company and VAT numbers
GET /v1/tracking?url=check_tracking$0.01Ad pixels and analytics with IDs, tag managers, consent, site platform
GET /v1/preview?url=preview_landing_pageFreeAudit verdict and score only (10/hour)
GET /v1/samplesample_auditFreeA complete example audit

Prices are in USDC on Base mainnet. Base URL: https://landfall-production-74ad.up.railway.app

Use it from Claude, Cursor or any MCP client

Add this server URL. The free tools work straight away; paid tools work in clients that support x402 payments.

https://landfall-production-74ad.up.railway.app/mcp
{
  "mcpServers": {
    "landfall": {
      "url": "https://landfall-production-74ad.up.railway.app/mcp"
    }
  }
}

Pay per call from TypeScript

npm install @x402/fetch @x402/evm viem
import { x402Client, wrapFetchWithPayment } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
client.setSpendControls({ maxAmountPerPayment: "$0.10" });
client.register("eip155:*", new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)));
const pay = wrapFetchWithPayment(fetch, client);

const res = await pay("https://landfall-production-74ad.up.railway.app/v1/business?url=" + encodeURIComponent("https://example.co.uk"));
console.log(await res.json());

Pay per call from Python

pip install "x402[httpx]" eth-account

Use the x402 Python client the same way: wrap your HTTP client with an x402 signer, then call any endpoint above. A request without payment returns 402 with a PAYMENT-REQUIRED header describing the price; the client signs it and retries automatically.

How payment works

  1. Call any paid endpoint. Without payment you get 402 and a base64 PAYMENT-REQUIRED header.
  2. Your x402 client signs a USDC transfer for exactly that amount and retries with a PAYMENT-SIGNATURE header.
  3. Landfall verifies the payment, does the work, and settles only if the work succeeded. The 200 response carries a PAYMENT-RESPONSE receipt.

Errors

Errors are JSON: {"error": {"code", "message", "charged"}}. Failed calls (site unreachable, error page, not HTML, timeout, bot protection) are never charged.

Limits

Public websites only, static HTML (JavaScript is not run), first 1.5 MB per page, 12 second timeout.

Service description (JSON) · OpenAPI · llms.txt · Study