FETCH402
← Protocol index

Resource / 406

healthy

Otto AI.

Live + reference foreign-exchange (forex) rates, base USD. LIVE near-real-time mid quotes for the 12 most-traded currencies (EUR, GBP, JPY, CHF, CAD, AUD, NZD, CNY, HKD, SGD, SEK, KRW), refreshed every minute with an honest market-open/stale flag, PLUS the official ECB daily reference table for ~30 currencies. Derive any cross-rate or pair. For agents pricing cross-border ops, treasury, invoicing and FX conversion. Keyless, pay-per-call.

Eligibility
probeable
Failures
0
Last quote
2026-08-13 00:15:01 UTC
Last probe
2026-08-13 00:15:01 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-13 00:15:01 UTC GET · HTTP 402 · 110ms · accepts 1 · base 1 ok
Request
GET https://x402.ottoai.services/fx-rates
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": {},
          "type": "http"
        },
        "output": {
          "example": {
            "data": {
              "base": "USD",
              "generatedAt": "2026-06-29T12:37:10.000Z",
              "live": {
                "asOf": "2026-06-29T12:37:06.000Z",
                "marketOpen": true,
                "rates": {
                  "AUD": 1.4495,
                  "CAD": 1.4206,
                  "CHF": 0.8088,
                  "CNY": 6.7836,
                  "EUR": 0.8768,
                  "GBP": 0.7559,
                  "HKD": 7.8415,
                  "JPY": 161.89,
                  "KRW": 1543.51,
                  "NZD": 1.7698,
                  "SEK": 9.7314,
                  "SGD": 1.2938
                },
                "source": "Yahoo",
                "stale": false,
                "staleSymbols": []
              },
              "liveAvailable": true,
              "reference": {
                "date": "2026-06-26",
                "rates": {
                  "AUD": 1.4488,
                  "CAD": 1.4182,
                  "CHF": 0.8085,
                  "CNY": 6.7982,
                  "EUR": 0.8771,
                  "GBP": 0.7565,
                  "JPY": 161.65
                },
                "source": "ECB"
              }
            },
            "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": {},
                "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/fx-rates",
              "scheme": "exact",
              "validUntil": 1786580401,
              "version": 1
            },
            "signature": "0xb8df9176d12844d8b1e58bb04e7913b10a800aff048e8fc3f9d997559ac270d65088891289b64b934246ad1d6b2a2ca746873bb177a52f750bb15b4c9111a7961b"
          }
        ]
      },
      "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 + reference foreign-exchange (forex) rates, base USD. LIVE near-real-time mid quotes for the 12 most-traded currencies (EUR, GBP, JPY, CHF, CAD, AUD, NZD, CNY, HKD, SGD, SEK, KRW), refreshed every minute with an honest market-open/stale flag, PLUS the official ECB daily reference table for ~30 currencies. Derive any cross-rate or pair. For agents pricing cross-border ops, treasury, invoicing and FX conversion. Keyless, pay-per-call.",
    "iconUrl": "https://x402.ottoai.services/assets/otto-icon.png",
    "mimeType": "application/json",
    "serviceName": "Otto AI",
    "tags": [
      "forex",
      "fx rates",
      "currency exchange",
      "live fx",
      "currency conversion"
    ],
    "url": "https://x402.ottoai.services/fx-rates"
  },
  "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": "Thu, 13 Aug 2026 00:15:01 GMT",
  "etag": "W/\"28a-/e7oObZ9sKUN6EPInfgWZpAQtWY\"",
  "payment-required": "eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQYXltZW50IHJlcXVpcmVkIiwicmVzb3VyY2UiOnsidXJsIjoiaHR0cHM6Ly94NDAyLm90dG9haS5zZXJ2aWNlcy9meC1yYXRlcyIsImRlc2NyaXB0aW9uIjoiTGl2ZSArIHJlZmVyZW5jZSBmb3JlaWduLWV4Y2hhbmdlIChmb3JleCkgcmF0ZXMsIGJhc2UgVVNELiBMSVZFIG5lYXItcmVhbC10aW1lIG1pZCBxdW90ZXMgZm9yIHRoZSAxMiBtb3N0LXRyYWRlZCBjdXJyZW5jaWVzIChFVVIsIEdCUCwgSlBZLCBDSEYsIENBRCwgQVVELCBOWkQsIENOWSwgSEtELCBTR0QsIFNFSywgS1JXKSwgcmVmcmVzaGVkIGV2ZXJ5IG1pbnV0ZSB3aXRoIGFuIGhvbmVzdCBtYXJrZXQtb3Blbi9zdGFsZSBmbGFnLCBQTFVTIHRoZSBvZmZpY2lhbCBFQ0IgZGFpbHkgcmVmZXJlbmNlIHRhYmxlIGZvciB+MzAgY3VycmVuY2llcy4gRGVyaXZlIGFueSBjcm9zcy1yYXRlIG9yIHBhaXIuIEZvciBhZ2VudHMgcHJpY2luZyBjcm9zcy1ib3JkZXIgb3BzLCB0cmVhc3VyeSwgaW52b2ljaW5nIGFuZCBGWCBjb252ZXJzaW9uLiBLZXlsZXNzLCBwYXktcGVyLWNhbGwuIiwibWltZVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwic2VydmljZU5hbWUiOiJPdHRvIEFJIiwidGFncyI6WyJmb3JleCIsImZ4IHJhdGVzIiwiY3VycmVuY3kgZXhjaGFuZ2UiLCJsaXZlIGZ4IiwiY3VycmVuY3kgY29udmVyc2lvbiJdLCJpY29uVXJsIjoiaHR0cHM6Ly94NDAyLm90dG9haS5zZXJ2aWNlcy9hc3NldHMvb3R0by1pY29uLnBuZyJ9LCJhY2NlcHRzIjpbeyJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJlaXAxNTU6ODQ1MyIsImFtb3VudCI6IjEwMDAiLCJhc3NldCI6IjB4ODMzNTg5ZkNENmVEYjZFMDhmNGM3QzMyRDRmNzFiNTRiZEEwMjkxMyIsInBheVRvIjoiMHgwRTg0ZERFZEFhRTZBNzc5YzQ2MkMyMmE1OUYzMDFFQzMxQjZiODA4IiwibWF4VGltZW91dFNlY29uZHMiOjMwMCwiZXh0cmEiOnsibmFtZSI6IlVTRCBDb2luIiwidmVyc2lvbiI6IjIifX1dLCJleHRlbnNpb25zIjp7Im9mZmVyLXJlY2VpcHQiOnsiaW5mbyI6eyJvZmZlcnMiOlt7ImZvcm1hdCI6ImVpcDcxMiIsImFjY2VwdEluZGV4IjowLCJwYXlsb2FkIjp7InZlcnNpb24iOjEsInJlc291cmNlVXJsIjoiaHR0cHM6Ly94NDAyLm90dG9haS5zZXJ2aWNlcy9meC1yYXRlcyIsInNjaGVtZSI6ImV4YWN0IiwibmV0d29yayI6ImVpcDE1NTo4NDUzIiwiYXNzZXQiOiIweDgzMzU4OWZDRDZlRGI2RTA4ZjRjN0MzMkQ0ZjcxYjU0YmRBMDI5MTMiLCJwYXlUbyI6IjB4MEU4NGRERWRBYUU2QTc3OWM0NjJDMjJhNTlGMzAxRUMzMUI2YjgwOCIsImFtb3VudCI6IjEwMDAiLCJ2YWxpZFVudGlsIjoxNzg2NTgwNDAxfSwic2lnbmF0dXJlIjoiMHhiOGRmOTE3NmQxMjg0NGQ4YjFlNThiYjA0ZTc5MTNiMTBhODAwYWZmMDQ4ZThmYzNmOWQ5OTc1NTlhYzI3MGQ2NTA4ODg5MTI4OWI2NGI5MzQyNDZhZDFkNmIyYTJjYTc0Njg3M2JiMTc3YTUyZjc1MGJiMTViNGM5MTExYTc5NjFiIn1dfSwic2NoZW1hIjp7IiRzY2hlbWEiOiJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYSIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7Im9mZmVycyI6eyJ0eXBlIjoiYXJyYXkiLCJpdGVtcyI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJmb3JtYXQiOnsidHlwZSI6InN0cmluZyJ9LCJhY2NlcHRJbmRleCI6eyJ0eXBlIjoiaW50ZWdlciJ9LCJwYXlsb2FkIjp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7InZlcnNpb24iOnsidHlwZSI6ImludGVnZXIifSwicmVzb3VyY2VVcmwiOnsidHlwZSI6InN0cmluZyJ9LCJzY2hlbWUiOnsidHlwZSI6InN0cmluZyJ9LCJuZXR3b3JrIjp7InR5cGUiOiJzdHJpbmcifSwiYXNzZXQiOnsidHlwZSI6InN0cmluZyJ9LCJwYXlUbyI6eyJ0eXBlIjoic3RyaW5nIn0sImFtb3VudCI6eyJ0eXBlIjoic3RyaW5nIn0sInZhbGlkVW50aWwiOnsidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInZlcnNpb24iLCJyZXNvdXJjZVVybCIsInNjaGVtZSIsIm5ldHdvcmsiLCJhc3NldCIsInBheVRvIiwiYW1vdW50Il19LCJzaWduYXR1cmUiOnsidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiZm9ybWF0Iiwic2lnbmF0dXJlIl19fX0sInJlcXVpcmVkIjpbIm9mZmVycyJdfX0sIm90dG8tY29udGVudC1yZWNlaXB0Ijp7fSwiYnVpbGRlci1jb2RlIjp7ImluZm8iOnsiYSI6ImJjX2hjMmRocTA5In0sInNjaGVtYSI6eyIkc2NoZW1hIjoiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWEiLCJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJhIjp7InR5cGUiOiJzdHJpbmciLCJwYXR0ZXJuIjoiXlthLXowLTlfXXsxLDMyfSQiLCJkZXNjcmlwdGlvbiI6IkFwcCBidWlsZGVyIGNvZGUifSwidyI6eyJ0eXBlIjoic3RyaW5nIiwicGF0dGVybiI6Il5bYS16MC05X117MSwzMn0kIiwiZGVzY3JpcHRpb24iOiJXYWxsZXQgYnVpbGRlciBjb2RlIn0sInMiOnsidHlwZSI6ImFycmF5IiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyIsInBhdHRlcm4iOiJeW2EtejAtOV9dezEsMzJ9JCJ9LCJkZXNjcmlwdGlvbiI6IlNlcnZpY2UgYnVpbGRlciBjb2RlcyJ9fSwiYWRkaXRpb25hbFByb3BlcnRpZXMiOmZhbHNlfX0sImJhemFhciI6eyJpbmZvIjp7ImlucHV0Ijp7InR5cGUiOiJodHRwIiwicXVlcnlQYXJhbXMiOnt9LCJtZXRob2QiOiJHRVQifSwib3V0cHV0Ijp7InR5cGUiOiJqc29uIiwiZXhhbXBsZSI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6eyJiYXNlIjoiVVNEIiwicmVmZXJlbmNlIjp7ImRhdGUiOiIyMDI2LTA2LTI2IiwicmF0ZXMiOnsiRVVSIjowLjg3NzEsIkdCUCI6MC43NTY1LCJKUFkiOjE2MS42NSwiQ05ZIjo2Ljc5ODIsIkNBRCI6MS40MTgyLCJBVUQiOjEuNDQ4OCwiQ0hGIjowLjgwODV9LCJzb3VyY2UiOiJFQ0IifSwibGl2ZSI6eyJhc09mIjoiMjAyNi0wNi0yOVQxMjozNzowNi4wMDBaIiwicmF0ZXMiOnsiRVVSIjowLjg3NjgsIkdCUCI6MC43NTU5LCJKUFkiOjE2MS44OSwiQ0hGIjowLjgwODgsIkNBRCI6MS40MjA2LCJBVUQiOjEuNDQ5NSwiTlpEIjoxLjc2OTgsIkNOWSI6Ni43ODM2LCJIS0QiOjcuODQxNSwiU0dEIjoxLjI5MzgsIlNFSyI6OS43MzE0LCJLUlciOjE1NDMuNTF9LCJzb3VyY2UiOiJZYWhvbyIsIm1hcmtldE9wZW4iOnRydWUsInN0YWxlIjpmYWxzZSwic3RhbGVTeW1ib2xzIjpbXX0sImxpdmVBdmFpbGFibGUiOnRydWUsImdlbmVyYXRlZEF0IjoiMjAyNi0wNi0yOVQxMjozNzoxMC4wMDBaIn0sIm1ldGEiOnsiZ2VuZXJhdGVkQXQiOiIiLCJ2YWxpZFVudGlsIjoiIiwic3RhbGVuZXNzU2VjIjowLCJkZWdyYWRlZCI6ZmFsc2V9fX19LCJzY2hlbWEiOnsiJHNjaGVtYSI6Imh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMjAtMTIvc2NoZW1hIiwidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsiaW5wdXQiOnsidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsidHlwZSI6eyJ0eXBlIjoic3RyaW5nIiwiY29uc3QiOiJodHRwIn0sIm1ldGhvZCI6eyJ0eXBlIjoic3RyaW5nIiwiZW51bSI6WyJHRVQiXX0sInF1ZXJ5UGFyYW1zIjp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7fX19LCJyZXF1aXJlZCI6WyJ0eXBlIiwibWV0aG9kIl0sImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjpmYWxzZX0sIm91dHB1dCI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJ0eXBlIjp7InR5cGUiOiJzdHJpbmcifSwiZXhhbXBsZSI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJzdGF0dXMiOnsidHlwZSI6InN0cmluZyIsImVudW0iOlsic3VjY2VzcyJdfSwiZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVuZHBvaW50IHBheWxvYWQgKHNlZSBtZXRhLmdlbmVyYXRlZEF0IGZvciBmcmVzaG5lc3MpIn0sIm1ldGEiOnsidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3RhdHVzIiwiZGF0YSIsIm1ldGEiXX19LCJyZXF1aXJlZCI6WyJ0eXBlIl19fSwicmVxdWlyZWQiOlsiaW5wdXQiXX19fX0=",
  "server": "railway-hikari",
  "transfer-encoding": "chunked",
  "vary": "accept-encoding",
  "x-hikari-trace": "iad1.dh1s,ams1.cycp",
  "x-powered-by": "Express",
  "x-railway-edge": "iad1",
  "x-railway-request-id": "4zh5qqU5QtyuE5lH5nX1uw, lJckQfPbTceSIddD0-QtfA"
}

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
{}
OutputJSON
{}