FLINTTECH x402

Live Minneapolis construction permit leads, contractor permit history and website audits as clean JSON for AI agents. Pay per call in USDC on Base via x402: no API key, no signup, from $0.10.

Each paid route returns HTTP 402 with an x402 v2 payment requirement; your agent pays in USDC on Base mainnet (eip155:8453) and retries. Bulk/batch routes are the volume tier: lower cost per record. Listed in the Coinbase CDP x402 Bazaar.

EndpointPrice (USDC)InputWhat you get
GET /report$0.05noneAgentic Commerce Report: current practical notes on x402 agent payments (USDC on Base) and pricing guidance for paid agent APIs. Returns JSON.
POST /analyze$0.25JSON {"query": string (required), "context": object (optional)}Custom Analysis: ask a question about agent commerce, x402 monetization, API pricing or lead-gen; returns a JSON recommendation.
GET /leads$0.25query: city=minneapolis, type (Res|Commercial|Plumbing|Mechanical|Wrecking|Site), since=YYYY-MM-DD, status, minValue, q (scope keyword), limit<=100Metro Permit Leads: live Minneapolis construction permits (City open data) with job value, scope, address and the contractor who pulled it. Great for contractor/supplier sales prospecting.
GET /contractor$0.15query: name (required, partial match), since=YYYY-MM-DDContractor Permit History: a Minneapolis contractor's live permit count, total job value by trade, last permit and 10 most recent jobs (City open data). Vet or size a contractor.
GET /audit$0.10query: url (required)Website & Local Presence Audit: fetches a business site live and returns a 0-100 score, issue list and checks (HTTPS, speed, title/meta, mobile, LocalBusiness schema, tap-to-call, Google Maps/Business Profile link, sitemap, security headers).
GET /leads/bulk$1.00same query as /leads, limit<=500 (default 500, since defaults to 30 days ago)Bulk tier: up to 500 live Minneapolis permit leads in one call (about $0.002/lead vs $0.0025 at /leads).
POST /contractor/batch$1.00JSON {"names": string[1-10], "since"?: "YYYY-MM-DD"}Batch tier: permit history for up to 10 contractors in one call ($0.10/name vs $0.15).
POST /audit/batch$0.75JSON {"urls": string[1-10]}Batch tier: website & local presence audits for up to 10 sites in one call ($0.075/site vs $0.10).
GET /premium$0.01noneCheapest paid call: a tiny JSON payload. Use it to test your x402 client end to end on Base mainnet for one cent.

Try it

curl -i https://flinttech-x402.onrender.com/premium          # 402 + payment requirements
curl -i 'https://flinttech-x402.onrender.com/leads?type=Res&q=roof&limit=10'
curl -i 'https://flinttech-x402.onrender.com/contractor?name=Lucky%20Construction'
curl -i 'https://flinttech-x402.onrender.com/audit?url=example.com'
curl -i 'https://flinttech-x402.onrender.com/leads/bulk?type=Res&limit=500'
curl -i -X POST https://flinttech-x402.onrender.com/audit/batch -H 'content-type: application/json' -d '{"urls":["example.com","example.org"]}'
curl -i -X POST https://flinttech-x402.onrender.com/analyze -H 'content-type: application/json' -d '{"query":"How should I price a paid agent API?"}'

Pay with @x402/fetch

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

const account = privateKeyToAccount(process.env.EVM_PRIVATE_KEY);
const client = new x402Client().register("eip155:8453", new ExactEvmScheme(account));
const fetchWithPay = wrapFetchWithPayment(fetch, client);

const res = await fetchWithPay("https://flinttech-x402.onrender.com/analyze", {
  method: "POST", headers: { "content-type": "application/json" },
  body: JSON.stringify({ query: "Best price point for an x402 endpoint?" }),
});
console.log(await res.json());

Machine-readable

Legal

Terms | Privacy | Refunds

Refunds: Calls are final once paid; a call that fails due to our error is refunded to the paying wallet if you email the tx hash to f1intt3ch@gmail.com within 7 days.

Payments settle to 0x328c4Dbb5B9E0811835E7d8c58295857b4F7f7E5.