84trust / 100

Fx Rates

by Otto AI in Markets & finance

x402 APIPassing, checked 4 h ago

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.

GET https://x402.ottoai.services/fx-rates

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
96 ms typical, 96 ms slowest 5%
Last check
4 h ago
Next check
any minute now

How to call it

# See the payment challenge (nothing is charged)
curl -i -X GET "https://x402.ottoai.services/fx-rates"
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.03:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fx402.ottoai.services%2Ffx-rates
const res = await pay("https://x402.ottoai.services/fx-rates");
console.log(await res.json());

Example input

{}

Example output

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

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
4 h agoPassed40296 ms$0.001