Resource / 134
healthy2s.
Forward geocoding — free-text address or place name → latitude/longitude plus structured address components (houseNumber, road, suburb, city, county, state, postcode, country, countryCode). Query: q (2-500 chars), limit (1-10, default 5), country (optional 2-letter ISO 3166-1 bias). Underlying data is OpenStreetMap (ODbL). Sister: /api/geocode/reverse.
| State | Network | Scheme | Atomic amount | Asset | payTo / untrusted |
|---|---|---|---|---|---|
| active | eip155:8453 | exact | 2500 | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | 0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5 |
| active | solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp | exact | 2500 | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v | TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn |
All advertised payment options are stored. Base (`eip155:8453`) is the operational network for ranking and canaries; non-Base options remain visible for transparency.
healthy 2026-08-12 21:30:02 UTC GET · HTTP 402 · 40ms · accepts 2 · base 1 ok
Accepts snapshot
[
{
"amount": "2500",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"assetTransferMethod": null,
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
"paymentFlow": null,
"raw": {
"amount": "2500",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"max_timeout_seconds": 60,
"network": "eip155:8453",
"payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
"pay_to": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
"scheme": "exact"
},
"scheme": "exact"
},
{
"amount": "2500",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"assetTransferMethod": null,
"extra": {
"feePayer": "BFK9TLC3edb13K6v4YyH3DwPb5DSUpkWvb7XnqCL9b4F",
"name": "USDC",
"version": "1"
},
"maxTimeoutSeconds": 60,
"network": "solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp",
"payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
"paymentFlow": null,
"raw": {
"amount": "2500",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "BFK9TLC3edb13K6v4YyH3DwPb5DSUpkWvb7XnqCL9b4F",
"name": "USDC",
"version": "1"
},
"maxTimeoutSeconds": 60,
"max_timeout_seconds": 60,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
"pay_to": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
"scheme": "exact"
},
"scheme": "exact"
}
]
PaymentRequired raw
{
"accepts": [
{
"amount": "2500",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
"scheme": "exact"
},
{
"amount": "2500",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "BFK9TLC3edb13K6v4YyH3DwPb5DSUpkWvb7XnqCL9b4F",
"name": "USDC",
"version": "1"
},
"maxTimeoutSeconds": 60,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
"scheme": "exact"
}
],
"error": "PAYMENT-SIGNATURE required",
"extensions": {
"bazaar": {
"info": {
"input": {
"method": "GET",
"queryParams": {
"country": "example",
"limit": 5,
"q": "xx"
},
"type": "http"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"properties": {
"method": {
"const": "GET"
},
"queryParams": {
"additionalProperties": false,
"properties": {
"country": {
"type": "string"
},
"limit": {
"default": 5,
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"q": {
"maxLength": 500,
"minLength": 2,
"type": "string"
}
},
"required": [
"q"
],
"type": "object"
},
"type": {
"const": "http"
}
},
"required": [
"type",
"method",
"queryParams"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
},
"resource": {
"description": "Forward geocoding — free-text address or place name → latitude/longitude plus structured address components (houseNumber, road, suburb, city, county, state, postcode, country, countryCode). Query: q (2-500 chars), limit (1-10, default 5), country (optional 2-letter ISO 3166-1 bias). Underlying data is OpenStreetMap (ODbL). Sister: /api/geocode/reverse.",
"iconUrl": "https://2s.io/icon-512.png",
"mimeType": "application/json",
"serviceName": "2s",
"tags": [
"public-records",
"identifiers",
"ai-agents",
"us-gov-data",
"x402",
"upto-billing",
"ai-gateway",
"agent-infrastructure"
],
"url": "https://2s.io/api/geocode/address"
},
"x402Version": 2
}
Response headers
{
"access-control-allow-headers": "Authorization, Content-Type",
"access-control-allow-methods": "GET, POST, OPTIONS",
"access-control-allow-origin": "*",
"access-control-max-age": "86400",
"age": "0",
"cache-control": "public, max-age=0, must-revalidate",
"content-security-policy": "default-src 'none'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'none'; base-uri 'none'",
"content-type": "application/json",
"date": "Wed, 12 Aug 2026 21:30:02 GMT",
"payment-required": "eyJ4NDAyVmVyc2lvbiI6MiwiYWNjZXB0cyI6W3sic2NoZW1lIjoiZXhhY3QiLCJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMiLCJhbW91bnQiOiIyNTAwIiwiYXNzZXQiOiIweDgzMzU4OWZDRDZlRGI2RTA4ZjRjN0MzMkQ0ZjcxYjU0YmRBMDI5MTMiLCJwYXlUbyI6IjB4MmI2RDQ5ODhEYjQ3MjNFNjkwOERiODZBYjJiOGRGQmM1MUZDMzJDNSIsIm1heFRpbWVvdXRTZWNvbmRzIjo2MCwiZXh0cmEiOnsibmFtZSI6IlVTRCBDb2luIiwidmVyc2lvbiI6IjIifX0seyJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJzb2xhbmE6NWV5a3Q0VXNGdjhQOE5KZFRSRXBZMXZ6cUtxWkt2ZHAiLCJhbW91bnQiOiIyNTAwIiwiYXNzZXQiOiJFUGpGV2RkNUF1ZnFTU3FlTTJxTjF4enliYXBDOEc0d0VHR2tad3lURHQxdiIsInBheVRvIjoiVFc2bnRhR3p2ajYzWmdQanN6ZDRGQ0dtVlRHZnp2MU1BWVpialljeVdobiIsIm1heFRpbWVvdXRTZWNvbmRzIjo2MCwiZXh0cmEiOnsibmFtZSI6IlVTREMiLCJ2ZXJzaW9uIjoiMSIsImZlZVBheWVyIjoiQkZLOVRMQzNlZGIxM0s2djRZeUgzRHdQYjVEU1Vwa1d2YjdYbnFDTDliNEYifX1dLCJyZXNvdXJjZSI6eyJ1cmwiOiJodHRwczovLzJzLmlvL2FwaS9nZW9jb2RlL2FkZHJlc3MiLCJkZXNjcmlwdGlvbiI6IkZvcndhcmQgZ2VvY29kaW5nIOKAlCBmcmVlLXRleHQgYWRkcmVzcyBvciBwbGFjZSBuYW1lIOKGkiBsYXRpdHVkZS9sb25naXR1ZGUgcGx1cyBzdHJ1Y3R1cmVkIGFkZHJlc3MgY29tcG9uZW50cyAoaG91c2VOdW1iZXIsIHJvYWQsIHN1YnVyYiwgY2l0eSwgY291bnR5LCBzdGF0ZSwgcG9zdGNvZGUsIGNvdW50cnksIGNvdW50cnlDb2RlKS4gUXVlcnk6IHEgKDItNTAwIGNoYXJzKSwgbGltaXQgKDEtMTAsIGRlZmF1bHQgNSksIGNvdW50cnkgKG9wdGlvbmFsIDItbGV0dGVyIElTTyAzMTY2LTEgYmlhcykuIFVuZGVybHlpbmcgZGF0YSBpcyBPcGVuU3RyZWV0TWFwIChPRGJMKS4gU2lzdGVyOiAvYXBpL2dlb2NvZGUvcmV2ZXJzZS4iLCJtaW1lVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLCJzZXJ2aWNlTmFtZSI6IjJzIiwiaWNvblVybCI6Imh0dHBzOi8vMnMuaW8vaWNvbi01MTIucG5nIiwidGFncyI6WyJwdWJsaWMtcmVjb3JkcyIsImlkZW50aWZpZXJzIiwiYWktYWdlbnRzIiwidXMtZ292LWRhdGEiLCJ4NDAyIiwidXB0by1iaWxsaW5nIiwiYWktZ2F0ZXdheSIsImFnZW50LWluZnJhc3RydWN0dXJlIl19LCJlcnJvciI6IlBBWU1FTlQtU0lHTkFUVVJFIHJlcXVpcmVkIiwiZXh0ZW5zaW9ucyI6eyJiYXphYXIiOnsiaW5mbyI6eyJpbnB1dCI6eyJ0eXBlIjoiaHR0cCIsIm1ldGhvZCI6IkdFVCIsInF1ZXJ5UGFyYW1zIjp7InEiOiJ4eCIsImxpbWl0Ijo1LCJjb3VudHJ5IjoiZXhhbXBsZSJ9fX0sInNjaGVtYSI6eyIkc2NoZW1hIjoiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWEiLCJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJpbnB1dCI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJ0eXBlIjp7ImNvbnN0IjoiaHR0cCJ9LCJtZXRob2QiOnsiY29uc3QiOiJHRVQifSwicXVlcnlQYXJhbXMiOnsidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsicSI6eyJ0eXBlIjoic3RyaW5nIiwibWluTGVuZ3RoIjoyLCJtYXhMZW5ndGgiOjUwMH0sImxpbWl0Ijp7InR5cGUiOiJpbnRlZ2VyIiwibWluaW11bSI6MSwibWF4aW11bSI6MTAsImRlZmF1bHQiOjV9LCJjb3VudHJ5Ijp7InR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInEiXSwiYWRkaXRpb25hbFByb3BlcnRpZXMiOmZhbHNlfX0sInJlcXVpcmVkIjpbInR5cGUiLCJtZXRob2QiLCJxdWVyeVBhcmFtcyJdfX0sInJlcXVpcmVkIjpbImlucHV0Il19fX19",
"permissions-policy": "geolocation=(), camera=(), microphone=()",
"referrer-policy": "no-referrer",
"server": "Vercel",
"strict-transport-security": "max-age=63072000; includeSubDomains; preload",
"transfer-encoding": "chunked",
"x-content-type-options": "nosniff",
"x-frame-options": "DENY",
"x-matched-path": "/api/geocode/address",
"x-payment-requirements": "x402",
"x-vercel-cache": "MISS",
"x-vercel-id": "iad1::iad1::sxr2z-1786570202911-60e9938a9280"
}
Response body
{
"accepts": [
{
"amount": "2500",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
"scheme": "exact"
},
{
"amount": "2500",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "BFK9TLC3edb13K6v4YyH3DwPb5DSUpkWvb7XnqCL9b4F",
"name": "USDC",
"version": "1"
},
"maxTimeoutSeconds": 60,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
"scheme": "exact"
}
],
"error": "PAYMENT-SIGNATURE required",
"extensions": {
"bazaar": {
"info": {
"input": {
"method": "GET",
"queryParams": {
"country": "example",
"limit": 5,
"q": "xx"
},
"type": "http"
},
"output": {
"example": {
"items": [
{}
],
"meta": {
"cacheHit": false,
"query": {
"input": "example",
"kind": "example"
}
},
"ok": true,
"source": {
"license": "example",
"provider": "example",
"url": "example"
},
"total": 1
},
"schema": {
"additionalProperties": false,
"properties": {
"items": {
"items": {
"additionalProperties": {},
"type": "object"
},
"type": "array"
},
"meta": {
"additionalProperties": false,
"properties": {
"cacheHit": {
"type": "boolean"
},
"query": {
"additionalProperties": false,
"properties": {
"input": {
"type": "string"
},
"kind": {
"type": "string"
}
},
"required": [
"kind",
"input"
],
"type": "object"
}
},
"required": [
"query",
"cacheHit"
],
"type": "object"
},
"ok": {
"enum": [
true
],
"type": "boolean"
},
"source": {
"additionalProperties": false,
"properties": {
"license": {
"type": "string"
},
"provider": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"provider",
"url",
"license"
],
"type": "object"
},
"total": {
"description": "Total matching rows upstream; null when unknown.",
"nullable": true,
"type": "integer"
}
},
"required": [
"ok",
"items",
"total",
"source"
],
"type": "object"
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"properties": {
"method": {
"const": "GET"
},
"queryParams": {
"additionalProperties": false,
"properties": {
"country": {
"type": "string"
},
"limit": {
"default": 5,
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"q": {
"maxLength": 500,
"minLength": 2,
"type": "string"
}
},
"required": [
"q"
],
"type": "object"
},
"type": {
"const": "http"
}
},
"required": [
"type",
"method",
"queryParams"
],
"type": "object"
},
"output": {
"additionalProperties": false,
"properties": {
"items": {
"items": {
"additionalProperties": {},
"type": "object"
},
"type": "array"
},
"meta": {
"additionalProperties": false,
"properties": {
"cacheHit": {
"type": "boolean"
},
"query": {
"additionalProperties": false,
"properties": {
"input": {
"type": "string"
},
"kind": {
"type": "string"
}
},
"required": [
"kind",
"input"
],
"type": "object"
}
},
"required": [
"query",
"cacheHit"
],
"type": "object"
},
"ok": {
"enum": [
true
],
"type": "boolean"
},
"source": {
"additionalProperties": false,
"properties": {
"license": {
"type": "string"
},
"provider": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"provider",
"url",
"license"
],
"type": "object"
},
"total": {
"description": "Total matching rows upstream; null when unknown.",
"nullable": true,
"type": "integer"
}
},
"required": [
"ok",
"items",
"total",
"source"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
},
"resource": {
"description": "Forward geocoding — free-text address or place name → latitude/longitude plus structured address components (houseNumber, road, suburb, city, county, state, postcode, country, countryCode). Query: q (2-500 chars), limit (1-10, default 5), country (optional 2-letter ISO 3166-1 bias). Underlying data is OpenStreetMap (ODbL). Sister: /api/geocode/reverse.",
"iconUrl": "https://2s.io/icon-512.png",
"mimeType": "application/json",
"serviceName": "2s",
"tags": [
"public-records",
"identifiers",
"ai-agents",
"us-gov-data",
"x402",
"upto-billing",
"ai-gateway",
"agent-infrastructure"
],
"url": "https://2s.io/api/geocode/address"
},
"x402Version": 2
}
Request headers
{
"accept": "*/*",
"user-agent": "Fetch402Bot/0.1 (+https://fetch402.com/crawler; contact: crawler@fetch402.com)"
}
Machine contract
Schemas.
{
"method": "GET",
"queryParams": {
"country": "example",
"limit": 5,
"q": "xx"
},
"type": "http"
}
{}