SpendPreflight
All tools / x402 Lint + Action

x402 Lint + Action

Inspect an unpaid public x402 challenge and heuristic listing score in the browser, API or GitHub CI. Reuse seven-day report snapshots in README badges.

Run free x402 LintAction source and setup →

Who it’s for

Developers building and maintaining x402 endpoints.

Price

Free, subject to public-check quotas, robots rules and host pacing.

Paid calls use x402 with USDC on Base. Read the quote before authorizing payment; examples below do not pay automatically.

Know the limits

No target payment or paid-delivery proof. An inconclusive result is not an endpoint failure. Reports expire after seven days. The Action makes one sequential free check per endpoint, at most five, with no automatic retry or payment.

A 30-second integration

Examples use placeholders. Plain requests to paid tools return a payment challenge, not a paid result. Free Lint can perform an unpaid public probe. Inspect the response status and evidence scope before using any result.

curl

curl -i https://api.spendpreflight.com/v1/lint \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://api.example.com/data"}'

MCP

Connect to https://api.spendpreflight.com/mcp. Call the existing tool:

{
  "name": "lint_endpoint",
  "arguments": {
    "url": "https://api.example.com/data"
  }
}

SDK / JavaScript

Use standard fetch alongside the SpendPreflight SDK; the example does not invent a dedicated exported method.

// Node.js SDK integration: use your explicitly budgeted fetch.
// Plain fetch below never signs or pays. There is no dedicated
// spendpreflight SDK helper for this operation.
const response = await fetch('https://api.spendpreflight.com/v1/lint', {
  method: 'POST', headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({"url":"https://api.example.com/data"})
});
console.log(response.status, await response.text());

GitHub Action

- uses: spendpreflight/x402-lint-action@v1
  with:
    urls: https://api.example.com/data

Frequently asked questions

Can I run this in GitHub Actions?

Yes. Use spendpreflight/x402-lint-action@v1. See the linked source for inputs and exit codes. Public workflow inputs can be visible.

What does a passing badge mean?

A fresh complete report with zero heuristic risk and no errors or warnings. Missing, expired or inconclusive evidence is unknown; passing is not a safety guarantee.

Related tools

Payee Screening · Listing Guard · Seller Monitoring

Authoritative OpenAPI schemas · What this service stores · Practical guides