freetier-agent-api.pages.dev
No description published for this endpoint.
The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.
Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.
Live 402 challenge
Captured by the enrichment pass, not read just now. Prices can change — always read the 402 the endpoint answers with.
{
"docs": "https://freetier-agent-api.pages.dev/products/geocode",
"error": "Payment required: $0.0015 USDC on Base. Send PAYMENT-SIGNATURE (x402 v2) or X-PAYMENT (x402 v1). To use your 1 free call, repeat the request with real parameters (example: https://freetier-agent-api.pages.dev/api/geocode?q=Eiffel+Tower%2C+Paris).",
"policy": "Failed calls are never charged: the payment is verified first, the request runs, and the payment is settled only if it succeeded. Errors (4xx/5xx) are not settled, and invalid input is rejected before any payment or free call.",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x165Eb3dC3E98403ecB1141e90400F5e71806554B",
"scheme": "exact",
"network": "base",
"mimeType": "application/json",
"resource": "https://freetier-agent-api.pages.dev/api/geocode",
"description": "Geocoding with OpenStreetMap Nominatim: address or place name -> coordinates (up to 5 matches, optional country filter), or lat+lon -> structured address (reverse). Structured address fields, country code, bounding box, OSM id. Cached; ODbL attribution included.",
"outputSchema": {
"input": {
"type": "http",
"method": "GET",
"queryParams": {
"q": {
"type": "string",
"description": "address or place name (forward geocoding)"
},
"lat": {
"type": "string",
"description": "latitude for reverse geocoding (with lon)"
},
"lon": {
"type": "string",
"description": "longitude for reverse geocoding (with lat)"
},
"lang": {
"type": "string",
"description": "result language, default en"
},
"limit": {
"type": "string",
"description": "1-5 matches, default 1"
},
"country": {
"type": "string",
"description": "ISO 3166-1 alpha-2 filter, e.g. dk or us,ca"
}
},
"discoverable": true
},
"output": {
"mode": "forward",
"count": 1,
"query": {
"q": "Eiffel Tower, Paris",
"limit": 1,
"country": null
},
"results": [
{
"lat": 48.8582599,
"lon": 2.2945006,
"osm": {
"id": 5013364,
"type": "way"
},
"bbox": [
48.8574753,
48.8590453
],
"name": "Eiffel Tower",
"type": "tower",
"address": {
"city": "Paris",
"road": "Avenue Anatole France",
"state": "Ile-de-France",
"county": null,
"country": "France",
"postcode": "75007",
"country_code": "FR",
"house_number": "5"
},
"category": "man_made",
"importance": 0.621,
"display_name": "Eiffel Tower, 5, Avenue Anatole France, Quartier du Gros-Caillou, 7th Arrondissement, Paris, Ile-de-France, Metropolitan France, 75007, France"
}
],
"sources": [
{
"url": "https://nominatim.org/",
"name": "OpenStreetMap Nominatim",
"license": "ODbL 1.0"
}
],
"attribution": "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright"
}
},
"maxAmountRequired": "1500",
"maxTimeoutSeconds": 300
}
],
"free_call": "1 free call per route per caller (lifetime), with real parameters; a bare request without parameters always gets this 402.",
"no_wallet": "No wallet? Buy 1,000 calls by card ($3): https://freetier.gumroad.com/l/gvyfk , then send your Gumroad license key as HTTP header X-License-Key: <key>.",
"price_usd": 0.0015,
"price_unit": "per call",
"pay_by_card": {
"how": "Buy a credit pack by card (1,000 credits $3, 5,000 $12, 20,000 $40; 1 credit = $0.001), then send header X-License-Key: <your key> on any paid route. Failed calls are never charged; credits do not expire.",
"url": "https://freetier.gumroad.com/l/gvyfk"
},
"verified_by": {
"tx": "0x45358a14da592ecdb70e8699448bd32e05b3eee9a616093218dbd99cd0225e02",
"url": "https://payapi.market/api/agent-extraction-api-geocode-reverse-geocode-openstreetmap",
"name": "PayAPI Market",
"what": "Verified = PayAPI Market made one settled test payment (USDC on Base) to the route and received a valid response. One test payment per route; it is not an audit, a review or an uptime guarantee. invoice-json is not verified on PayAPI Market yet.",
"listings": [
{
"tx": "0xac7061becf519224a65e72675e3a70e56d8b7b898cb773007578d958e57a7c18",
"url": "https://payapi.market/api/freetier-agent-api",
"route": "/api/holidays"
},
{
"tx": "0x515564cbeac0710003a3974a52868e5837359b842cb88f3b8640bf4d3185831e",
"url": "https://payapi.market/api/agent-extraction-api-token-risk-erc-20-base-ethereum",
"route": "/api/token-risk"
},
{
"tx": "0x1e6a7906ce26e1b2802c513f5071d5ad2607970af193b736b4424030b25e4735",
"url": "https://payapi.market/api/agent-extraction-api-site-contacts-company-website-to-contact-row",
"route": "/api/site-contacts"
},
{
"tx": "0x6b0dd103e9d33f409e800fde77a7e533c986e2a5e79a6a335bc180634bfa9f63",
"url": "https://payapi.market/api/agent-extraction-api-page-to-rag-web-page-to-markdown-chunks",
"route": "/api/page-rag"
},
{
"tx": "0x2e133da5bd0cb927ed575f9cbc2512d746b891024986d1aef23bd900d157eb9d",
"url": "https://payapi.market/api/agent-extraction-api-tx-explain-payment-check-base-ethereum",
"route": "/api/tx-explain"
},
{
"tx": "0x1d1db3bc3e1d7d7f433e47e2cd21ceea8e8aef72bf57945b19d80026794167b1",
"url": "https://payapi.market/api/agent-extraction-api-wallet-profile-base-ethereum-address",
"route": "/api/wallet-profile"
},
{
"tx": "0x54c1b0a1f53e8436f143c3fe288162daf3bccb2e6b5dd09a5bcb57860c4b20ef",
"url": "https://payapi.market/api/agent-extraction-api-contract-abi-proxy-resolver-base-ethereum",
"route": "/api/contract-abi"
},
{
"tx": "0x60d1af025e8a5cd38964d1053df8264464ba265b9100d5010b44c856e0d05489",
"url": "https://payapi.market/api/agent-extraction-api-token-info-usd-price-erc-20-5-chains",
"route": "/api/token-info"
},
{
"tx": "0x99d1cf63eac473e7370d8806911caaa2d7fdd3cd0fa39fa71458ddca9a585ade",
"url": "https://payapi.market/api/agent-extraction-api-ens-basenames-resolver-forward-reverse",
"route": "/api/ens"
},
{
"tx": "0x14ce0ef6b653ed44b9124e2b2d239c3ada0dc797e3d069c929c1585392b8355b",
"url": "https://payapi.market/api/agent-extraction-api-transaction-status-poller-5-evm-chains",
"route": "/api/tx-status"
},
{
"tx": "0xdd4a100ee7c49af4b8acd711d06a2287db143682f3e2c09fa57ebbc6cf450b8e",
"url": "https://payapi.market/api/agent-extraction-api-dns-spf-dmarc-mail-auth-check",
"route": "/api/dns"
},
{
"tx": "0x3f835455f2f275f22d8b9beb49f02eb050014dac658e5a60f3d38dfa53f46d78",
"url": "https://payapi.market/api/agent-extraction-api-domain-whois-via-rdap-registrar-expiry",
"route": "/api/domain-whois"
},
{
"tx": "0x0cea4319e1b01a3b0b52bc4c7ca563c958f891ea237890a4446d69b01187dd55",
"url": "https://payapi.market/api/agent-extraction-api-ssl-certificate-check-ct-logs-days-left",
"route": "/api/ssl-cert"
},
{
"tx": "0x45358a14da592ecdb70e8699448bd32e05b3eee9a616093218dbd99cd0225e02",
"url": "https://payapi.market/api/agent-extraction-api-geocode-reverse-geocode-openstreetmap",
"route": "/api/geocode"
}
],
"route_verified": true
},
"when_to_use": "Use geocode to turn an address or place into coordinates, or coordinates into an address (OpenStreetMap).",
"x402Version": 1,
"example_output": {
"mode": "forward",
"count": 1,
"query": {
"q": "Eiffel Tower, Paris",
"limit": 1,
"country": null
},
"results": [
{
"lat": 48.8582599,
"lon": 2.2945006,
"osm": {
"id": 5013364,
"type": "way"
},
"bbox": [
48.8574753,
48.8590453
],
"name": "Eiffel Tower",
"type": "tower",
"address": {
"city": "Paris",
"road": "Avenue Anatole France",
"state": "Ile-de-France",
"county": null,
"country": "France",
"postcode": "75007",
"country_code": "FR",
"house_number": "5"
},
"category": "man_made",
"importance": 0.621,
"display_name": "Eiffel Tower, 5, Avenue Anatole France, Quartier du Gros-Caillou, 7th Arrondissement, Paris, Ile-de-France, Metropolitan France, 75007, France"
}
],
"sources": [
{
"url": "https://nominatim.org/",
"name": "OpenStreetMap Nominatim",
"license": "ODbL 1.0"
}
],
"attribution": "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright"
},
"example_request": {
"url": "https://freetier-agent-api.pages.dev/api/geocode?q=Eiffel+Tower%2C+Paris",
"method": "GET"
},
"pay_with_any_token": {
"note": "Each tx hash pays for one call. If the call fails (4xx/5xx) the tx can be reused for a retry of the same route. USDC works this way too.",
"payTo": "0x165Eb3dC3E98403ecB1141e90400F5e71806554B",
"quote": "https://freetier-agent-api.pages.dev/api/pay/quote?route=%2Fapi%2Fgeocode&token=",
"steps": [
"GET https://freetier-agent-api.pages.dev/api/pay/quote?route=/api/geocode&token=<token address> -> amount (atomic units)",
"Send that amount with an ERC-20 transfer() to payTo on Base (you pay gas)",
"Repeat this request with headers X-PAYMENT-TX: <tx hash> and X-PAYMENT-TOKEN: <token address> within 30 minutes"
],
"chains": "Base (default) plus ethereum, arbitrum, optimism, polygon, bsc: add &chain=<name> to the quote and header X-PAYMENT-CHAIN: <name>; token=native pays with the chain coin (ETH/POL/BNB). NFTs are not accepted (no safe free price source).",
"scheme": "freetier-direct-transfer (non-standard, buyer pays gas)",
"tokens": "any ERC-20 on Base with >= $10000 DEX liquidity that passes the GoPlus safety filter (no honeypots, no sell blocks, no pausable/owner-controlled balances, tax <= 10%)",
"network": "eip155:8453"
}
}Accepts
The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.
Pay 0.0015 USDC on Base to 0x165E…6554B. The signed payment is good for 5 minutes.
- Paid to
- 0x165E…6554B
- USD Coin contract
- 0x8335…02913
- Payment window
- 5 minutes
- As published
- 1500 smallest units
- Returns
- application/json
The catalog’s raw entry
[
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x165Eb3dC3E98403ecB1141e90400F5e71806554B",
"scheme": "exact",
"network": "eip155:8453",
"mimeType": "application/json",
"resource": "https://freetier-agent-api.pages.dev/api/geocode",
"description": "",
"maxAmountRequired": "1500",
"maxTimeoutSeconds": 300
}
]Provenance
- Seen in the source catalog
- 2026-10-31 16:53Z
- Last indexed by Roundhouse
- 2026-11-07 05:46Z
- Last enriched (probe, favicon, geo)
- 2026-11-01 10:46Z
- x402 version
- 1
- Max timeout
- 300s
- Liveness probe
- HTTP 402
Hand this page to an agent
Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.
GET api.roundhouseai.io/v0/endpoints
This endpoint's own trailing-30-day call count, as published by the upstream catalog and snapshotted daily. 26 snapshots so far. Verified volume counts only settlements with an on-chain EIP-3009 marker.
Show the promptHide the prompt
Using Roundhouse, look up the x402 service freetier-agent-api.pages.dev and tell me whether it is worth paying: what a call costs, whether the endpoint answered when last probed, and what its payment record actually shows. curl -s 'https://api.roundhouseai.io/v0/endpoints?q=freetier-agent-api.pages.dev' curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>' Then call it: read the price from the live 402 at https://freetier-agent-api.pages.dev/api/geocode, never from a cached figure, and pay with an x402 client. The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except /v0/unified* and /v0/endpoints. Either pay over x402 (mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402), or ask me for an organization key, which I create at https://roundhouseai.io/dashboard/connections. If you have neither, ask before going further. If you do not have Roundhouse tools or skills installed, read https://roundhouseai.io/skill.md first — it is the whole procedure.