FETCH402
← Protocol index

Resource / 119

healthy

Otto AI.

Live weather for any city or lat/lon worldwide. Returns current conditions — temperature, feels-like, humidity, wind and sky — plus a 5-day forecast with daily highs/lows and precipitation probability. City names auto-geocode (no coordinates needed). Refreshed hourly with transparent freshness metadata. Keyless, pay-per-call, agent-ready JSON.

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[] 1 options
State Network Scheme Atomic amount Asset payTo / untrusted
active eip155:8453 exact 1000 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 0x0E84dDEdAaE6A779c462C22a59F301EC31B6b808

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 · 112ms · accepts 1 · base 1 ok
Request
GET https://x402.ottoai.services/weather
Robots
error
Note
robots_error:{:robots_http_status, 404};http_402;accepts=1;base=1
Accepts fingerprint
dc21f15406421d757df52393eae4b368ad9472ec8d103c5f367e869d3b7ed923

Accepts snapshot

[
  {
    "amount": "1000",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "assetTransferMethod": null,
    "extra": {
      "name": "USD Coin",
      "version": "2"
    },
    "maxTimeoutSeconds": 300,
    "network": "eip155:8453",
    "payTo": "0x0E84dDEdAaE6A779c462C22a59F301EC31B6b808",
    "paymentFlow": null,
    "raw": {
      "amount": "1000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 300,
      "max_timeout_seconds": 300,
      "network": "eip155:8453",
      "payTo": "0x0E84dDEdAaE6A779c462C22a59F301EC31B6b808",
      "pay_to": "0x0E84dDEdAaE6A779c462C22a59F301EC31B6b808",
      "scheme": "exact"
    },
    "scheme": "exact"
  }
]

PaymentRequired raw

{
  "accepts": [
    {
      "amount": "1000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 300,
      "network": "eip155:8453",
      "payTo": "0x0E84dDEdAaE6A779c462C22a59F301EC31B6b808",
      "scheme": "exact"
    }
  ],
  "error": "Payment required",
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "method": "GET",
          "queryParams": {
            "location": "London"
          },
          "type": "http"
        },
        "output": {
          "example": {
            "data": {
              "country": "United Kingdom",
              "current": {
                "conditions": "Partly cloudy",
                "feelsLikeC": 17.6,
                "humidityPct": 63,
                "observedAt": "2026-06-24T15:00",
                "tempC": 18.2,
                "windKph": 14
              },
              "daily": [
                {
                  "conditions": "Partly cloudy",
                  "date": "2026-06-24",
                  "maxC": 21.4,
                  "minC": 12.1,
                  "precipProbPct": 10
                },
                {
                  "conditions": "Clear sky",
                  "date": "2026-06-25",
                  "maxC": 23,
                  "minC": 13.5,
                  "precipProbPct": 5
                }
              ],
              "generatedAt": "2026-06-24T15:05:00.000Z",
              "lat": 51.50853,
              "location": "london",
              "lon": -0.12574,
              "resolvedName": "London"
            },
            "meta": {
              "degraded": false,
              "generatedAt": "",
              "stalenessSec": 0,
              "validUntil": ""
            },
            "status": "success"
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "queryParams": {
                "properties": {
                  "location": {
                    "description": "City name (e.g. \"Tokyo\", \"São Paulo\") or a \"lat,lon\" pair (e.g. \"51.5,-0.12\")",
                    "type": "string"
                  }
                },
                "required": [
                  "location"
                ],
                "type": "object"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "properties": {
                  "data": {
                    "description": "Endpoint payload (see meta.generatedAt for freshness)"
                  },
                  "meta": {
                    "type": "object"
                  },
                  "status": {
                    "enum": [
                      "success"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "status",
                  "data",
                  "meta"
                ],
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    },
    "builder-code": {
      "info": {
        "a": "bc_hc2dhq09"
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {
          "a": {
            "description": "App builder code",
            "pattern": "^[a-z0-9_]{1,32}$",
            "type": "string"
          },
          "s": {
            "description": "Service builder codes",
            "items": {
              "pattern": "^[a-z0-9_]{1,32}$",
              "type": "string"
            },
            "type": "array"
          },
          "w": {
            "description": "Wallet builder code",
            "pattern": "^[a-z0-9_]{1,32}$",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "offer-receipt": {
      "info": {
        "offers": [
          {
            "acceptIndex": 0,
            "format": "eip712",
            "payload": {
              "amount": "1000",
              "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "network": "eip155:8453",
              "payTo": "0x0E84dDEdAaE6A779c462C22a59F301EC31B6b808",
              "resourceUrl": "https://x402.ottoai.services/weather",
              "scheme": "exact",
              "validUntil": 1786570502,
              "version": 1
            },
            "signature": "0x5fe2d3b93bccc51e3afef4398b17c91a8b1f8bbf8c76f12d68ee2cee729949fc783c10504fa6efd4144caf337cda92d40b7e26522c6244eb03b9f5cef3c27c441c"
          }
        ]
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "offers": {
            "items": {
              "properties": {
                "acceptIndex": {
                  "type": "integer"
                },
                "format": {
                  "type": "string"
                },
                "payload": {
                  "properties": {
                    "amount": {
                      "type": "string"
                    },
                    "asset": {
                      "type": "string"
                    },
                    "network": {
                      "type": "string"
                    },
                    "payTo": {
                      "type": "string"
                    },
                    "resourceUrl": {
                      "type": "string"
                    },
                    "scheme": {
                      "type": "string"
                    },
                    "validUntil": {
                      "type": "integer"
                    },
                    "version": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "version",
                    "resourceUrl",
                    "scheme",
                    "network",
                    "asset",
                    "payTo",
                    "amount"
                  ],
                  "type": "object"
                },
                "signature": {
                  "type": "string"
                }
              },
              "required": [
                "format",
                "signature"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "offers"
        ],
        "type": "object"
      }
    },
    "otto-content-receipt": {}
  },
  "resource": {
    "description": "Live weather for any city or lat/lon worldwide. Returns current conditions — temperature, feels-like, humidity, wind and sky — plus a 5-day forecast with daily highs/lows and precipitation probability. City names auto-geocode (no coordinates needed). Refreshed hourly with transparent freshness metadata. Keyless, pay-per-call, agent-ready JSON.",
    "iconUrl": "https://x402.ottoai.services/assets/otto-icon.png",
    "mimeType": "application/json",
    "serviceName": "Otto AI",
    "tags": [
      "weather",
      "weather forecast",
      "weather api",
      "meteorology",
      "current weather"
    ],
    "url": "https://x402.ottoai.services/weather"
  },
  "x402Version": 2
}

Response headers

{
  "access-control-allow-origin": "*",
  "access-control-expose-headers": "PAYMENT-RESPONSE,PAYMENT-REQUIRED,PAYMENT-SIGNATURE,X-Payment-Response,WWW-Authenticate,X-Payment,X-Payment-Receipt",
  "connection": "keep-alive",
  "content-type": "application/json; charset=utf-8",
  "date": "Wed, 12 Aug 2026 21:30:02 GMT",
  "etag": "W/\"28a-/e7oObZ9sKUN6EPInfgWZpAQtWY\"",
  "payment-required": "eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQYXltZW50IHJlcXVpcmVkIiwicmVzb3VyY2UiOnsidXJsIjoiaHR0cHM6Ly94NDAyLm90dG9haS5zZXJ2aWNlcy93ZWF0aGVyIiwiZGVzY3JpcHRpb24iOiJMaXZlIHdlYXRoZXIgZm9yIGFueSBjaXR5IG9yIGxhdC9sb24gd29ybGR3aWRlLiBSZXR1cm5zIGN1cnJlbnQgY29uZGl0aW9ucyDigJQgdGVtcGVyYXR1cmUsIGZlZWxzLWxpa2UsIGh1bWlkaXR5LCB3aW5kIGFuZCBza3kg4oCUIHBsdXMgYSA1LWRheSBmb3JlY2FzdCB3aXRoIGRhaWx5IGhpZ2hzL2xvd3MgYW5kIHByZWNpcGl0YXRpb24gcHJvYmFiaWxpdHkuIENpdHkgbmFtZXMgYXV0by1nZW9jb2RlIChubyBjb29yZGluYXRlcyBuZWVkZWQpLiBSZWZyZXNoZWQgaG91cmx5IHdpdGggdHJhbnNwYXJlbnQgZnJlc2huZXNzIG1ldGFkYXRhLiBLZXlsZXNzLCBwYXktcGVyLWNhbGwsIGFnZW50LXJlYWR5IEpTT04uIiwibWltZVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwic2VydmljZU5hbWUiOiJPdHRvIEFJIiwidGFncyI6WyJ3ZWF0aGVyIiwid2VhdGhlciBmb3JlY2FzdCIsIndlYXRoZXIgYXBpIiwibWV0ZW9yb2xvZ3kiLCJjdXJyZW50IHdlYXRoZXIiXSwiaWNvblVybCI6Imh0dHBzOi8veDQwMi5vdHRvYWkuc2VydmljZXMvYXNzZXRzL290dG8taWNvbi5wbmcifSwiYWNjZXB0cyI6W3sic2NoZW1lIjoiZXhhY3QiLCJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMiLCJhbW91bnQiOiIxMDAwIiwiYXNzZXQiOiIweDgzMzU4OWZDRDZlRGI2RTA4ZjRjN0MzMkQ0ZjcxYjU0YmRBMDI5MTMiLCJwYXlUbyI6IjB4MEU4NGRERWRBYUU2QTc3OWM0NjJDMjJhNTlGMzAxRUMzMUI2YjgwOCIsIm1heFRpbWVvdXRTZWNvbmRzIjozMDAsImV4dHJhIjp7Im5hbWUiOiJVU0QgQ29pbiIsInZlcnNpb24iOiIyIn19XSwiZXh0ZW5zaW9ucyI6eyJvZmZlci1yZWNlaXB0Ijp7ImluZm8iOnsib2ZmZXJzIjpbeyJmb3JtYXQiOiJlaXA3MTIiLCJhY2NlcHRJbmRleCI6MCwicGF5bG9hZCI6eyJ2ZXJzaW9uIjoxLCJyZXNvdXJjZVVybCI6Imh0dHBzOi8veDQwMi5vdHRvYWkuc2VydmljZXMvd2VhdGhlciIsInNjaGVtZSI6ImV4YWN0IiwibmV0d29yayI6ImVpcDE1NTo4NDUzIiwiYXNzZXQiOiIweDgzMzU4OWZDRDZlRGI2RTA4ZjRjN0MzMkQ0ZjcxYjU0YmRBMDI5MTMiLCJwYXlUbyI6IjB4MEU4NGRERWRBYUU2QTc3OWM0NjJDMjJhNTlGMzAxRUMzMUI2YjgwOCIsImFtb3VudCI6IjEwMDAiLCJ2YWxpZFVudGlsIjoxNzg2NTcwNTAyfSwic2lnbmF0dXJlIjoiMHg1ZmUyZDNiOTNiY2NjNTFlM2FmZWY0Mzk4YjE3YzkxYThiMWY4YmJmOGM3NmYxMmQ2OGVlMmNlZTcyOTk0OWZjNzgzYzEwNTA0ZmE2ZWZkNDE0NGNhZjMzN2NkYTkyZDQwYjdlMjY1MjJjNjI0NGViMDNiOWY1Y2VmM2MyN2M0NDFjIn1dfSwic2NoZW1hIjp7IiRzY2hlbWEiOiJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYSIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7Im9mZmVycyI6eyJ0eXBlIjoiYXJyYXkiLCJpdGVtcyI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJmb3JtYXQiOnsidHlwZSI6InN0cmluZyJ9LCJhY2NlcHRJbmRleCI6eyJ0eXBlIjoiaW50ZWdlciJ9LCJwYXlsb2FkIjp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7InZlcnNpb24iOnsidHlwZSI6ImludGVnZXIifSwicmVzb3VyY2VVcmwiOnsidHlwZSI6InN0cmluZyJ9LCJzY2hlbWUiOnsidHlwZSI6InN0cmluZyJ9LCJuZXR3b3JrIjp7InR5cGUiOiJzdHJpbmcifSwiYXNzZXQiOnsidHlwZSI6InN0cmluZyJ9LCJwYXlUbyI6eyJ0eXBlIjoic3RyaW5nIn0sImFtb3VudCI6eyJ0eXBlIjoic3RyaW5nIn0sInZhbGlkVW50aWwiOnsidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInZlcnNpb24iLCJyZXNvdXJjZVVybCIsInNjaGVtZSIsIm5ldHdvcmsiLCJhc3NldCIsInBheVRvIiwiYW1vdW50Il19LCJzaWduYXR1cmUiOnsidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiZm9ybWF0Iiwic2lnbmF0dXJlIl19fX0sInJlcXVpcmVkIjpbIm9mZmVycyJdfX0sIm90dG8tY29udGVudC1yZWNlaXB0Ijp7fSwiYnVpbGRlci1jb2RlIjp7ImluZm8iOnsiYSI6ImJjX2hjMmRocTA5In0sInNjaGVtYSI6eyIkc2NoZW1hIjoiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWEiLCJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJhIjp7InR5cGUiOiJzdHJpbmciLCJwYXR0ZXJuIjoiXlthLXowLTlfXXsxLDMyfSQiLCJkZXNjcmlwdGlvbiI6IkFwcCBidWlsZGVyIGNvZGUifSwidyI6eyJ0eXBlIjoic3RyaW5nIiwicGF0dGVybiI6Il5bYS16MC05X117MSwzMn0kIiwiZGVzY3JpcHRpb24iOiJXYWxsZXQgYnVpbGRlciBjb2RlIn0sInMiOnsidHlwZSI6ImFycmF5IiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyIsInBhdHRlcm4iOiJeW2EtejAtOV9dezEsMzJ9JCJ9LCJkZXNjcmlwdGlvbiI6IlNlcnZpY2UgYnVpbGRlciBjb2RlcyJ9fSwiYWRkaXRpb25hbFByb3BlcnRpZXMiOmZhbHNlfX0sImJhemFhciI6eyJpbmZvIjp7ImlucHV0Ijp7InR5cGUiOiJodHRwIiwicXVlcnlQYXJhbXMiOnsibG9jYXRpb24iOiJMb25kb24ifSwibWV0aG9kIjoiR0VUIn0sIm91dHB1dCI6eyJ0eXBlIjoianNvbiIsImV4YW1wbGUiOnsic3RhdHVzIjoic3VjY2VzcyIsImRhdGEiOnsibG9jYXRpb24iOiJsb25kb24iLCJyZXNvbHZlZE5hbWUiOiJMb25kb24iLCJjb3VudHJ5IjoiVW5pdGVkIEtpbmdkb20iLCJsYXQiOjUxLjUwODUzLCJsb24iOi0wLjEyNTc0LCJjdXJyZW50Ijp7InRlbXBDIjoxOC4yLCJmZWVsc0xpa2VDIjoxNy42LCJodW1pZGl0eVBjdCI6NjMsIndpbmRLcGgiOjE0LCJjb25kaXRpb25zIjoiUGFydGx5IGNsb3VkeSIsIm9ic2VydmVkQXQiOiIyMDI2LTA2LTI0VDE1OjAwIn0sImRhaWx5IjpbeyJkYXRlIjoiMjAyNi0wNi0yNCIsIm1heEMiOjIxLjQsIm1pbkMiOjEyLjEsInByZWNpcFByb2JQY3QiOjEwLCJjb25kaXRpb25zIjoiUGFydGx5IGNsb3VkeSJ9LHsiZGF0ZSI6IjIwMjYtMDYtMjUiLCJtYXhDIjoyMywibWluQyI6MTMuNSwicHJlY2lwUHJvYlBjdCI6NSwiY29uZGl0aW9ucyI6IkNsZWFyIHNreSJ9XSwiZ2VuZXJhdGVkQXQiOiIyMDI2LTA2LTI0VDE1OjA1OjAwLjAwMFoifSwibWV0YSI6eyJnZW5lcmF0ZWRBdCI6IiIsInZhbGlkVW50aWwiOiIiLCJzdGFsZW5lc3NTZWMiOjAsImRlZ3JhZGVkIjpmYWxzZX19fX0sInNjaGVtYSI6eyIkc2NoZW1hIjoiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWEiLCJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJpbnB1dCI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJ0eXBlIjp7InR5cGUiOiJzdHJpbmciLCJjb25zdCI6Imh0dHAifSwibWV0aG9kIjp7InR5cGUiOiJzdHJpbmciLCJlbnVtIjpbIkdFVCJdfSwicXVlcnlQYXJhbXMiOnsidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsibG9jYXRpb24iOnsidHlwZSI6InN0cmluZyIsImRlc2NyaXB0aW9uIjoiQ2l0eSBuYW1lIChlLmcuIFwiVG9reW9cIiwgXCJTw6NvIFBhdWxvXCIpIG9yIGEgXCJsYXQsbG9uXCIgcGFpciAoZS5nLiBcIjUxLjUsLTAuMTJcIikifX0sInJlcXVpcmVkIjpbImxvY2F0aW9uIl19fSwicmVxdWlyZWQiOlsidHlwZSIsIm1ldGhvZCJdLCJhZGRpdGlvbmFsUHJvcGVydGllcyI6ZmFsc2V9LCJvdXRwdXQiOnsidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsidHlwZSI6eyJ0eXBlIjoic3RyaW5nIn0sImV4YW1wbGUiOnsidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsic3RhdHVzIjp7InR5cGUiOiJzdHJpbmciLCJlbnVtIjpbInN1Y2Nlc3MiXX0sImRhdGEiOnsiZGVzY3JpcHRpb24iOiJFbmRwb2ludCBwYXlsb2FkIChzZWUgbWV0YS5nZW5lcmF0ZWRBdCBmb3IgZnJlc2huZXNzKSJ9LCJtZXRhIjp7InR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbInN0YXR1cyIsImRhdGEiLCJtZXRhIl19fSwicmVxdWlyZWQiOlsidHlwZSJdfX0sInJlcXVpcmVkIjpbImlucHV0Il19fX19",
  "server": "railway-hikari",
  "transfer-encoding": "chunked",
  "vary": "accept-encoding",
  "x-hikari-trace": "iad1.fp5t,ams1.b55h",
  "x-powered-by": "Express",
  "x-railway-edge": "iad1",
  "x-railway-request-id": "IDq6sKDbSUarhC_aEuroCg, 31pNTEaLSs-9oRnh7fhULg"
}

Response body

{
  "contact": {
    "email": "admin@useotto.xyz",
    "feedback": "POST https://x402.ottoai.services/feedback ($0.001) -- money-back guarantee on Otto-recommended services and Full Auto; feature requests welcome (email/Telegram are free).",
    "telegram": "https://t.me/DeFAI_Capital",
    "twitter": "https://twitter.com/useOttoAI"
  },
  "docs": "https://docs.useotto.xyz/getting-started/agent-quickstart",
  "error": "payment_required",
  "hint": "This is a pay-per-call x402 endpoint. The price and payment options (networks, signed offers) are in the PAYMENT-REQUIRED response header (x402 v2). Pay with an x402 client, then retry to receive the data.",
  "price": "$0.001",
  "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": {
    "location": "London"
  },
  "type": "http"
}
OutputJSON
{
  "example": {
    "data": {
      "country": "United Kingdom",
      "current": {
        "conditions": "Partly cloudy",
        "feelsLikeC": 17.6,
        "humidityPct": 63,
        "observedAt": "2026-06-24T15:00",
        "tempC": 18.2,
        "windKph": 14
      },
      "daily": [
        {
          "conditions": "Partly cloudy",
          "date": "2026-06-24",
          "maxC": 21.4,
          "minC": 12.1,
          "precipProbPct": 10
        },
        {
          "conditions": "Clear sky",
          "date": "2026-06-25",
          "maxC": 23,
          "minC": 13.5,
          "precipProbPct": 5
        }
      ],
      "generatedAt": "2026-06-24T15:05:00.000Z",
      "lat": 51.50853,
      "location": "london",
      "lon": -0.12574,
      "resolvedName": "London"
    },
    "meta": {
      "degraded": false,
      "generatedAt": "",
      "stalenessSec": 0,
      "validUntil": ""
    },
    "status": "success"
  },
  "type": "json"
}