FETCH402
← Protocol index

Resource / 134

healthy

2s.

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.

Eligibility
probeable
Failures
0
Last quote
2026-08-12 21:30:02 UTC
Last probe
2026-08-12 21:30:02 UTC
Payment requirements / accepts[] 2 options
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.

Probe evidence 1 recent
healthy 2026-08-12 21:30:02 UTC GET · HTTP 402 · 40ms · accepts 2 · base 1 ok
Request
GET https://2s.io/api/geocode/address
Robots
allow
Note
http_402;accepts=2;base=1
Accepts fingerprint
6fcb2e53e8049ab29748ddd9a2e9ed532a49654f11ec569f4e7b9fb89b260a10

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.

InputJSON
{
  "method": "GET",
  "queryParams": {
    "country": "example",
    "limit": 5,
    "q": "xx"
  },
  "type": "http"
}
OutputJSON
{}