FX Rates.
Daily reference exchange rates from the European Central Bank, agent-payable, no signup. 31 currencies, 90 days history. EUR-pivot cross-rates computed for any pair. $0.001 per call.
- Endpoints
GET /v1/fx/:base/:quotesingle rateGET /v1/fx/:basefull quote map- Optional
?date=YYYY-MM-DDfor historical (~90 days back)- Price
- 0.001 USDC per successful call
- Source
- European Central Bank daily reference rates (public domain)
- Refresh
- Daily at 16:30 UTC, after ECB publication
- Coverage
- 31 currencies, 90 days history
- Auth
- None. x402 payment is the auth.
Try the sandbox → Same response shape, test USDC on Base Sepolia. Get a test wallet drip.
What you get
JSON. Same shape on every call.
{
"status": "success",
"base": "USD",
"quote": "EUR",
"rate": 0.9234,
"date": "2026-04-30",
"meta": {
"source": "European Central Bank (ECB) daily reference rates",
"source_license": "public-domain",
"asof_utc": "2026-04-30T14:00:00Z",
"last_updated": "2026-04-30T16:30:00Z"
}
}
Why pay
Public sources exist. Hosting them is the work.
ECB publishes XML once a day. You don't want to host the pipeline.
Parse the XML, handle TARGET2 holidays, compute cross-rates (ECB only quotes EUR-base), cache it, refresh on a cron, serve a stable API. We do all of that. You hit one URL.
Free alternatives have signup, keys, and rate limits.
exchangerate-api, openexchangerates, fixer all want an account, an API key, and cap the free tier. ApiToll has none of those. The wallet is the auth.
Sub-millisecond response.
Self-hosted SQLite. No upstream API call at request time. No third-party outage gets in your way.
Use cases
What agents do with this.
Pricing localization.
Convert a USD product price to EUR before showing it to a Swiss customer. Daily reference rates are the right granularity for display, not real-time market data.
Settlement reconciliation.
Match a supplier invoice in JPY against your home-currency books. Lock the rate to the invoice date.
Cost normalization.
Compare 5 supplier quotes denominated in 4 different currencies. Decide which is cheapest in your reporting currency.
Reporting and bookkeeping.
Daily fair-value close at the ECB rate. Standardized, auditable, sourced from a tier-1 publisher.
Honest framing
What it is not.
Good for: pricing display, expense reconciliation, daily reporting, anything where "the ECB rate at the close of business" is the right answer.
Not good for:
- Real-time market data (this is a daily fix, not a tick)
- Bid/ask spreads (single mid-market rate only)
- Trading decisions in fast markets
- FX hedging exposure (use a broker)
If you need any of those, we are not your service. Use a broker API or Polygon/Refinitiv/Bloomberg.
Try it
Right now.
One line to see the 402 challenge (no wallet needed):
curl -i https://apitoll.io/v1/fx/USD/EUR
When you're ready to actually pay, send a signed X-PAYMENT header (most agent SDKs do this for you). See the agent primer for full setup. Or hit the sandbox first.
Discovery
- Tool manifest: /.well-known/mcp.json
- Agent card: /.well-known/agent.json
- LLM-readable index: /llms.txt
Pricing rationale
$0.001 per call — cheapest service in our catalog, deliberately. FX is high-frequency: agents check rates many times per session. Comparable services start at $20/month with rate limits or $0.01+ per call. We hide the infrastructure work and undercut both.