AllRatesToday
allratestoday.com
· AllRatesToday
Exchange-rate agent: live mid-market rates for 160+ currencies and official rates published by central banks and tax authorities. Send plain text ("convert 250 EUR to USD", "ECB EUR USD 2026-10-01", "list central banks") or a data part { skill, ...arguments } naming a skill id.
allratestoday.com via a single DNS TXT record to add the
verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Dispute or improve this rating
C
Conformance score: 61/100
C-grade: usable but has clear conformance issues, review the breakdown below.
click to expand breakdown
click to collapse breakdown
Activity (audit trail)
last 24h · 0 invocations Public aggregate · no PII recordedNothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.
Card history
1 snapshot Every change toagent-card.json
| Captured | Hash | Snapshot |
|---|---|---|
| 2026-10-31 07:58:16 current | 663d792b81ad… |
view → |
Try it
Send a message to this agent live. Your prompt is proxied through Agenstry.
Endpoints
| Agent card | https://allratestoday.com/.well-known/agent-card.json |
| Provider | https://allratestoday.com |
| Docs | https://allratestoday.com/docs/ |
Skills · 11 declared by this agent
These skills are declared by the agent. A taxonomy link appears only when we can classify a skill confidently.
Use this when the user asks 'what is X in Y?', 'convert X to Y', 'current rate of EUR/USD', or any single fiat-to-fiat exchange rate question. Returns { rate, s…
Fixed-window time series ending now: 'how has EUR/USD moved this week', 'last month of GBP/JPY', '1-year AUD/USD'. Returns { source, target, period, data: [{ da…
One source against several targets in a single call ('USD vs EUR, GBP, JPY'), or the rate at a specific past datetime, optionally bucketed by hour/day/week/mont…
Call this when unsure whether a currency code is supported, or for 'what currencies do you support?' / 'what is the symbol for X?'. Returns { currencies: [{ cod…
Call this FIRST when you need a bank code, or for 'which central banks do you cover?' / 'do you have rates from X?'. Returns every covered source — 123 central …
OFFICIAL rates a named institution published — 'what is the ECB rate for USD?', 'Bank of Japan rate on 2026-03-14', 'HMRC rate for invoicing'. These are the fix…
Date-by-date series of one bank's OFFICIAL rates — 'ECB USD rate for every day of 2025', 'how did the CBSL rate move last quarter'. Returns { series: [{ date, r…
One currency pair across ALL institutions at once — 'what does each central bank say USD/EUR is?', 'spread between official USD/LKR rates'. Returns every covere…
Which dates a bank actually published a rate table — 'did the ECB publish on 2026-01-01?', 'how often does the US Treasury publish?'. Dates only, no values, so …
AllRatesToday's once-a-day, never-revised mid-market rate: the per-currency median of five samples in a five-minute window centred on 16:00 London, published ea…
Self-issue an AllRatesToday API key with 100 lifetime calls, valid 7 days, with no account and no email. Use it when another tool answered "needs an API key" an…
Health · last 1 probes
Similar agents embedding-nearest
Embed your Agenstry badge
Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.
Markdown / HTML snippets
[](https://agenstry.com/agents/allratestoday.com) [](https://agenstry.com/agents/allratestoday.com) [](https://agenstry.com/agents/allratestoday.com) [](https://agenstry.com/agents/allratestoday.com)
Audit-grade evidence bundle
JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against
our JWKS. See the methodology.
Raw agent card JSON
{
"protocolVersion": "0.3.0",
"name": "AllRatesToday",
"description": "Exchange-rate agent: live mid-market rates for 160+ currencies and official rates published by central banks and tax authorities. Send plain text (\"convert 250 EUR to USD\", \"ECB EUR USD 2026-10-01\", \"list central banks\") or a data part { skill, ...arguments } naming a skill id.",
"version": "1.2.0",
"url": "https://allratestoday.com/api/a2a",
"preferredTransport": "JSONRPC",
"supportedInterfaces": [
{
"url": "https://allratestoday.com/api/a2a",
"protocolBinding": "JSONRPC",
"protocolVersion": "0.3.0"
}
],
"provider": {
"organization": "AllRatesToday",
"url": "https://allratestoday.com"
},
"documentationUrl": "https://allratestoday.com/docs/",
"iconUrl": "https://allratestoday.com/favicon.svg",
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": false
},
"securitySchemes": {
"bearer": {
"type": "http",
"scheme": "bearer",
"description": "Optional. Keyless calls get official rates and the ECB table; an art_live_ key adds real-time rates. Skill request_trial_key issues one."
}
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"application/json",
"text/plain"
],
"skills": [
{
"id": "get_exchange_rate",
"name": "Get live exchange rate",
"description": "Use this when the user asks 'what is X in Y?', 'convert X to Y', 'current rate of EUR/USD', or any single fiat-to-fiat exchange rate question. Returns { rate, source } meaning 1 source = rate target. Without an API key it answers from the official ECB daily reference table (~30 majors) and says so in `note` \u2014 relay the `rate_date`. With a key it is the real-time mid-market rate for 160+ currencies. For several targets at once use get_rates_authenticated; for a time series use get_historical_rates; for a specific institution's official rate use get_official_rates.",
"tags": [
"exchange-rates",
"currency"
],
"examples": [
"convert 250 EUR to USD",
"GBP to JPY"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "get_historical_rates",
"name": "Get historical rate time-series",
"description": "Fixed-window time series ending now: 'how has EUR/USD moved this week', 'last month of GBP/JPY', '1-year AUD/USD'. Returns { source, target, period, data: [{ date, rate, timestamp }] }. Sampling: 1d=hourly, 7d/30d=daily, 1y=weekly. Requires an API key on a paid plan; free and trial keys get a 403. For a specific past datetime use get_rates_authenticated with `time`.",
"tags": [
"exchange-rates",
"currency"
],
"examples": [
"history EUR USD 30d"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "get_rates_authenticated",
"name": "Get multi-target or point-in-time rates",
"description": "One source against several targets in a single call ('USD vs EUR, GBP, JPY'), or the rate at a specific past datetime, optionally bucketed by hour/day/week/month. Returns { rates: [{ rate, source, target, time }] }. Requires an API key (free tier for latest rates; a past datetime needs a paid plan).",
"tags": [
"exchange-rates",
"currency"
],
"examples": [
"rates USD to EUR,GBP,JPY"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "list_currencies",
"name": "List supported currencies",
"description": "Call this when unsure whether a currency code is supported, or for 'what currencies do you support?' / 'what is the symbol for X?'. Returns { currencies: [{ code, name, symbol }], count } for 150+ ISO 4217 fiat currencies. No API key needed; cheap to call.",
"tags": [
"exchange-rates",
"currency"
],
"examples": [
"list currencies"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "list_central_banks",
"name": "List covered central banks & tax authorities",
"description": "Call this FIRST when you need a bank code, or for 'which central banks do you cover?' / 'do you have rates from X?'. Returns every covered source \u2014 123 central banks plus 4 tax authorities (HMRC, US Treasury, Swiss BAZG, India's CBIC) \u2014 with `code` (what every other official-rates tool takes as `bank`), name, latest publication date and whether it is behind schedule. No API key needed.",
"tags": [
"exchange-rates",
"currency",
"central-bank"
],
"examples": [
"list central banks"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "get_official_rates",
"name": "Get a bank's official published rates",
"description": "OFFICIAL rates a named institution published \u2014 'what is the ECB rate for USD?', 'Bank of Japan rate on 2026-03-14', 'HMRC rate for invoicing'. These are the fixed, citable rates for compliance, tax, customs and accounting \u2014 NOT live market rates. Omit `date` for the newest published table (no API key needed); give `date` (API key, paid plan) for the table in force that day \u2014 weekends/holidays roll back to the last published date and the response's `rate_date` says which. Omit source/target for the full table; give both for one pair \u2014 cross-computed inside the bank's own table when not directly published, flagged `derived`. Always cite the returned `rate_date`.",
"tags": [
"exchange-rates",
"currency",
"central-bank"
],
"examples": [
"ECB EUR USD",
"RBI USD INR 2026-10-01"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "get_official_rate_history",
"name": "Get a bank's official rate history",
"description": "Date-by-date series of one bank's OFFICIAL rates \u2014 'ECB USD rate for every day of 2025', 'how did the CBSL rate move last quarter'. Returns { series: [{ date, rate, rate_type, derived, method }] }. Give either `symbol` (vs the bank's home currency) or a source+target pair; from/to default to the last year. API key with a paid plan, BILLED BY VOLUME: one call per month of history covered \u2014 keep ranges narrow. For publication dates without values use get_publication_calendar.",
"tags": [
"exchange-rates",
"currency",
"central-bank"
],
"examples": [
"ECB history EUR USD from 2026-01-01 to 2026-03-31"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "compare_official_rates",
"name": "Compare one pair across every bank",
"description": "One currency pair across ALL institutions at once \u2014 'what does each central bank say USD/EUR is?', 'spread between official USD/LKR rates'. Returns every covered bank's latest official rate for the pair plus { min, max, median, spread_bps } over fresh sources. Banks are never mixed: derived rates are cross-computed within each bank's own table. API key required (free tier). Methodology: https://allratestoday.com/official-rates-methodology/",
"tags": [
"exchange-rates",
"currency",
"central-bank"
],
"examples": [
"compare USD EUR across central banks"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "get_publication_calendar",
"name": "Get a bank's publication calendar",
"description": "Which dates a bank actually published a rate table \u2014 'did the ECB publish on 2026-01-01?', 'how often does the US Treasury publish?'. Dates only, no values, so it is on every plan (API key required, free tier). Give `year` or a from/to range; large ranges are capped and flagged `truncated`.",
"tags": [
"exchange-rates",
"currency"
],
"examples": [
"ECB calendar 2026"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "get_reference_rate",
"name": "Get the Daily Reference Rate (16:00 London)",
"description": "AllRatesToday's once-a-day, never-revised mid-market rate: the per-currency median of five samples in a five-minute window centred on 16:00 London, published each business day. Use it when the user needs ONE reproducible rate per day \u2014 index levels, return series, research datasets, month-end reports \u2014 rather than a live quote (get_exchange_rate) or an institution's official rate (get_official_rates). Keyless: returns the latest table, or one pair with source/target (cross via USD, flagged derived). With a key, `date` returns the table for a past business day. Not the WM/Refinitiv fix and not a registered benchmark \u2014 relay the disclaimer and the rate_date.",
"tags": [
"exchange-rates",
"currency"
],
"examples": [
"reference rate EUR USD"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "request_trial_key",
"name": "Request a trial API key",
"description": "Self-issue an AllRatesToday API key with 100 lifetime calls, valid 7 days, with no account and no email. Use it when another tool answered \"needs an API key\" and the user wants real-time rates, history, dated central-bank tables or cross-bank comparison right now. The key is returned once \u2014 store it, then reconnect to https://allratestoday.com/api/mcp?api_key=<key> (or send `Authorization: Bearer <key>`); this stateless server cannot adopt the key mid-session. Capped at 3 keys per IP per day. For a lasting key, register at https://allratestoday.com/register (free) or see https://allratestoday.com/pricing.",
"tags": [
"exchange-rates",
"currency"
],
"examples": [
"request a trial key"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
}
]
}