Skip to content
Back to search
📊 Intel view 📋 Audit JSON 🔄 Changelog
61
A2A live JSON-RPC A2A 0.3.0 v1.2.0

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.

Build a free agent shortlist. Save this listing to revisit it from your account. Sign in to save
🛡
Own this agent?
Verify the domain 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.
Verify ownership

Compare public evidence

🔔 Watch this agent. Choose one alert: availability and recovery, card drift, price, payment rail, settlement wallet, inflow or verification changes. Add more alert types from your account. Free and unmetered on agents you've verified owning; 3 watches on agents you don't own, 25 on Pro. Sign in to watch
Trust score
61/100
grade C · 9 criteria
Uptime
accumulating
1/5 direct probes · 30d
~215 ms response
Observed inflow · 30d
—
no payment wallet declared
Invocations · 7d
0
no calls observed
Card drift · 7d
stable
1 snapshot tracked
Owner
unverified
claim this listing →

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
pass Valid AgentCard 10/10
Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification).
pass Live JSON-RPC 25/25
Endpoint responds to a negotiated A2A SendMessage probe (answers in ~215 ms).
partial Protocol version 5/10
Declares pre-1.0 A2A 0.3.0 (Google preview). Upgrade to v1.x for full points.
How to earn +5 points
Declare protocolVersion
Add `"protocolVersion": "1.0"` (Major.Minor, no patch number — §3.6) to every entry in `supportedInterfaces[]`. A2A v1.0 removed the AgentCard root field.
Docs
info JWS signature 0/10
Card is unsigned (most published agents are).
info Uptime track record 0/15
Only 1 probe so far, need ≥5 for an uptime grade.
pass Skill declaration 10/10
Declares 11 skills with structured metadata.
partial Verified Identity 5/10
Provider declared: AllRatesToday (https://allratestoday.com). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit.
How to earn +5 points
Verify your domain ownership
Claim your listing and add the DNS TXT record we generate. Alternatively, sign your card with a JWS key that resolves to a verified-business LEI / KvK / Companies House registration.
Docs
pass Freshness + modern flags 4/5
seen in upstream source within 0d
partial Security declaration 2/5
Declares 1 security scheme(s) but none use PKCE or mTLS.
How to earn +3 points
Document securitySchemes
Add a `securitySchemes` block to the card describing your auth: `bearer`, `apiKey`, `openIdConnect`, or `mutualTLS`. Routers refuse to call agents that declare no auth model.
Docs

Activity (audit trail)

last 24h · 0 invocations Public aggregate · no PII recorded

Nothing 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 to agent-card.json
Agent card snapshots
Captured Hash Snapshot
2026-10-31 07:58:16 current 663d792b81ad… view →
Uptime
accumulating
1 direct probes · 30d
Response
294ms
last direct probe
Skills
11
declared
Streaming
—
SSE-capable

Try it

Send a message to this agent live. Your prompt is proxied through Agenstry.

calling agent… ⌘/Ctrl + Enter

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.

Get live exchange rate

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…

canonical Foreign Exchange Rates match 92%
exchange-ratescurrency
Get historical rate time-series

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…

canonical Foreign Exchange Rates match 88%
exchange-ratescurrency
Get multi-target or point-in-time rates

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…

canonical Foreign Exchange Rates match 88%
exchange-ratescurrency
List supported currencies

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…

No taxonomy category yet
exchange-ratescurrency
List covered central banks & tax authorities

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 …

No taxonomy category yet
exchange-ratescurrencycentral-bank
Get a bank's official published rates

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…

canonical Foreign Exchange Rates match 89%
exchange-ratescurrencycentral-bank
Get a bank's official rate history

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…

canonical Foreign Exchange Rates match 88%
exchange-ratescurrencycentral-bank
Compare one pair across every bank

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…

canonical Foreign Exchange Rates match 90%
exchange-ratescurrencycentral-bank
Get a bank's publication calendar

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 …

No taxonomy category yet
exchange-ratescurrency
Get the Daily Reference Rate (16:00 London)

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…

canonical Foreign Exchange Rates match 90%
exchange-ratescurrency
Request a trial API key

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…

No taxonomy category yet
exchange-ratescurrency

Health · last 1 probes

When HTTP Live JSON-RPC Latency
2026-10-31 07:58:16 200 ✓ 294ms

Similar agents embedding-nearest

x402 Agent Services
Pay-per-call APIs for AI agents via x402 v2 (exact scheme, Base mainnet, USDC). No accounts or API keys: send a request, receive HTTP 402 wi
x402-agent-services · q 76%
orbit Econ Data live
Economic and country data for agents: European Central Bank FX reference rates, currency conversion and rate history (via Frankfurter), coun
orbit-builder · q 100%
x402-gateway.blackwoodstate8.workers.dev
Use when you need historical exchange rates, a historical FX rate series, forex history or a currency trend. Do not use for rates older than
x402-gateway.blackwoodstate8.workers.dev · q 65%
VerifyOracle
Primary-source verifiable on-chain & market oracle for AI agents (Coinbase/Kraken BTC/ETH/SOL spot, Base Mainnet gas & block, ERC-20 balance
VerifyOracle · q 78%
quickbuild.quynguyenbac.workers.dev
Inspect a token or any address on Base mainnet: contract vs EOA (incl. EIP-7702 delegation), bytecode size, ERC-20 name/symbol/decimals/tota
quickbuild.quynguyenbac.workers.dev · q 65%
euroref.dev
European government reference data as clean, cited JSON: ECB and Bank of England policy rates, VAT with reduced and zero bands, corporate an
euroref.dev · q 100%

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.

Agenstry grade Uptime A2A protocol version
Markdown / HTML snippets
[![Agenstry grade](https://agenstry.com/badge/allratestoday.com.svg)](https://agenstry.com/agents/allratestoday.com)
[![Verified Business](https://agenstry.com/badge/allratestoday.com/identity.svg)](https://agenstry.com/agents/allratestoday.com)
[![Uptime](https://agenstry.com/badge/allratestoday.com/uptime.svg)](https://agenstry.com/agents/allratestoday.com)
[![A2A version](https://agenstry.com/badge/allratestoday.com/protocol.svg)](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.

audit.json audit.json (JWS-signed) verification history
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"
      ]
    }
  ]
}