settling on base mainnet

APIs that AI agents
pay to call. Per request.

AgentGate sells four data endpoints over the x402 protocol. An agent sends a request, receives payment terms in the response, pays $0.002–$0.005 in USDC on Base, and gets its JSON — one HTTP round-trip. No sign-up, no API keys, no subscription on either side.

Read the machine catalog
x402 v2USDC · eip155:8453GET /api — free index49,208 airports
$ curl agentgate…/api/airport?code=DXB
‹ 402 payment-required · $0.002
› X-PAYMENT eip3009 usdc.base
‹ 200 {
  "iata": "DXB", "icao": "OMDB",
  "name": "Dubai International",
  "lat": 25.2528, "lon": 55.3644
} 

Endpoints

Self-contained data — no upstream keys anywhere, so nothing expires. Unpaid calls answer 402 with x402 terms in the payment-required header.

GET /api/extract?url=

Any public web page as clean readable text — title, meta description, OpenGraph, headings, links, word count. HTML noise stripped.

$0.005
GET /api/airport?code=DXB

Airport lookup by IATA or ICAO code — name, coordinates, elevation, country, region, city, size, scheduled service.

$0.002
GET /api/route?from=JFK&to=LHR

Great-circle distance in km, nautical miles and statute miles, plus an estimated block flight time.

$0.002
GET /api/dns?domain=

A / AAAA / CNAME / MX / NS / TXT records with TTLs, and a summary: resolves, mail configured, SPF policy, verification tokens.

$0.002

How agents pay

Any x402-capable client works. With the official JavaScript SDK, payment is one wrapper around fetch — the agent's wallet signs a USDC transfer authorization, the PayAI facilitator verifies and settles it on Base, and the response comes back in the same round-trip.

Settlement lands at 0xe9f8…ea47 with no account state kept on either side. The full contract — schemas, prices, payment terms — is machine-readable at /openapi.json and /api.

import { wrapFetchWithPayment } from "@x402/fetch";

const payFetch = wrapFetchWithPayment(fetch, wallet);
const res = await payFetch(
  "https://agentgate-x402.netlify.app/api/route?from=JFK&to=LHR"
);
const data = await res.json(); // paid $0.002, settled
AgentGate · x402-native since 2026 airport data: OurAirports (public domain) · contact: streamofwork@gmail.com