{"id":519941,"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.","card_url":"https://allratestoday.com/.well-known/agent-card.json","endpoint":"https://allratestoday.com/api/a2a","protocol_version":"0.3.0","first_seen":"2026-10-31T21:38:01.501684+00:00","last_verified":"2026-10-31T21:38:01.501684+00:00","card":{"url":"https://allratestoday.com/api/a2a","name":"AllRatesToday","skills":[{"id":"get_exchange_rate","name":"Get live exchange rate","tags":["exchange-rates","currency"],"examples":["convert 250 EUR to USD","GBP to JPY"],"inputModes":["text/plain","application/json"],"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` — 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.","outputModes":["application/json","text/plain"]},{"id":"get_historical_rates","name":"Get historical rate time-series","tags":["exchange-rates","currency"],"examples":["history EUR USD 30d"],"inputModes":["text/plain","application/json"],"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`.","outputModes":["application/json","text/plain"]},{"id":"get_rates_authenticated","name":"Get multi-target or point-in-time rates","tags":["exchange-rates","currency"],"examples":["rates USD to EUR,GBP,JPY"],"inputModes":["text/plain","application/json"],"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).","outputModes":["application/json","text/plain"]},{"id":"list_currencies","name":"List supported currencies","tags":["exchange-rates","currency"],"examples":["list currencies"],"inputModes":["text/plain","application/json"],"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.","outputModes":["application/json","text/plain"]},{"id":"list_central_banks","name":"List covered central banks & tax authorities","tags":["exchange-rates","currency","central-bank"],"examples":["list central banks"],"inputModes":["text/plain","application/json"],"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 — 123 central banks plus 4 tax authorities (HMRC, US Treasury, Swiss BAZG, India's CBIC) — 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.","outputModes":["application/json","text/plain"]},{"id":"get_official_rates","name":"Get a bank's official published rates","tags":["exchange-rates","currency","central-bank"],"examples":["ECB EUR USD","RBI USD INR 2026-10-01"],"inputModes":["text/plain","application/json"],"description":"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 fixed, citable rates for compliance, tax, customs and accounting — 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 — 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 — cross-computed inside the bank's own table when not directly published, flagged `derived`. Always cite the returned `rate_date`.","outputModes":["application/json","text/plain"]},{"id":"get_official_rate_history","name":"Get a bank's official rate history","tags":["exchange-rates","currency","central-bank"],"examples":["ECB history EUR USD from 2026-01-01 to 2026-03-31"],"inputModes":["text/plain","application/json"],"description":"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, 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 — keep ranges narrow. For publication dates without values use get_publication_calendar.","outputModes":["application/json","text/plain"]},{"id":"compare_official_rates","name":"Compare one pair across every bank","tags":["exchange-rates","currency","central-bank"],"examples":["compare USD EUR across central banks"],"inputModes":["text/plain","application/json"],"description":"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 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/","outputModes":["application/json","text/plain"]},{"id":"get_publication_calendar","name":"Get a bank's publication calendar","tags":["exchange-rates","currency"],"examples":["ECB calendar 2026"],"inputModes":["text/plain","application/json"],"description":"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 it is on every plan (API key required, free tier). Give `year` or a from/to range; large ranges are capped and flagged `truncated`.","outputModes":["application/json","text/plain"]},{"id":"get_reference_rate","name":"Get the Daily Reference Rate (16:00 London)","tags":["exchange-rates","currency"],"examples":["reference rate EUR USD"],"inputModes":["text/plain","application/json"],"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 — index levels, return series, research datasets, month-end reports — 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 — relay the disclaimer and the rate_date.","outputModes":["application/json","text/plain"]},{"id":"request_trial_key","name":"Request a trial API key","tags":["exchange-rates","currency"],"examples":["request a trial key"],"inputModes":["text/plain","application/json"],"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 — 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.","outputModes":["application/json","text/plain"]}],"iconUrl":"https://allratestoday.com/favicon.svg","version":"1.2.0","provider":{"url":"https://allratestoday.com","organization":"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.","capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"protocolVersion":"0.3.0","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."}},"documentationUrl":"https://allratestoday.com/docs/","defaultInputModes":["text/plain","application/json"],"defaultOutputModes":["application/json","text/plain"],"preferredTransport":"JSONRPC","supportedInterfaces":[{"url":"https://allratestoday.com/api/a2a","protocolBinding":"JSONRPC","protocolVersion":"0.3.0"}]},"status":"verified","publisher_domain":"allratestoday.com","signature_status":"unsigned","signature_detail":"No card signature supplied","signature_key_url":null,"signature_checked_at":"2026-10-31T21:38:01.501684+00:00","domain_claimed_at":null,"domain_proof_checked_at":null,"source_name":"Publisher Agent Card","source_url":"https://allratestoday.com/.well-known/agent-card.json","last_check":{"checked_at":"2026-10-31T21:38:01.501684+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"also_published_at":[],"history_urls":["https://allratestoday.com/.well-known/agent-card.json"],"skills":[{"skill_id":"compare_official_rates","name":"Compare one pair across every bank","description":"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 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"],"quality_warning":false},{"skill_id":"get_official_rates","name":"Get a bank's official published rates","description":"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 fixed, citable rates for compliance, tax, customs and accounting — 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 — 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 — 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"],"quality_warning":false},{"skill_id":"get_official_rate_history","name":"Get a bank's official rate history","description":"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, 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 — keep ranges narrow. For publication dates without values use get_publication_calendar.","tags":["exchange-rates","currency","central-bank"],"quality_warning":false},{"skill_id":"get_publication_calendar","name":"Get a bank's publication calendar","description":"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 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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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` — 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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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 — index levels, return series, research datasets, month-end reports — 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 — relay the disclaimer and the rate_date.","tags":["exchange-rates","currency"],"quality_warning":false},{"skill_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 — 123 central banks plus 4 tax authorities (HMRC, US Treasury, Swiss BAZG, India's CBIC) — 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"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_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 — 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"],"quality_warning":false}],"quality_flags":[],"check_history":{"checks":1,"passed":1},"recent_checks":[{"card_url":"https://allratestoday.com/.well-known/agent-card.json","checked_at":"2026-10-31T21:38:01.501684+00:00","success":true,"http_status":200,"detail":"Agent Card validated"}],"endpoint_tls_check":{"checked_at":"2026-10-31T21:38:01.501684+00:00","success":true,"detail":"Valid TLS connection to advertised endpoint host; no A2A request sent"},"protocol_check":{"checked_at":"2026-10-31T21:38:01.501684+00:00","endpoint":"https://allratestoday.com/api/a2a","protocol_binding":"JSONRPC","protocol_version":"0.3.0","state":"a2a_response","http_status":200,"detail":"A2A task-not-found response to a read-only task lookup","request_diagnostics":{"requests":[{"path":"/api/a2a","allow":[],"method":"POST","status":200,"version_header":"0.3","protocol_method":"tasks/get","redirect_followed":false}],"capture_version":1}},"declared_primary_endpoint":"https://allratestoday.com/api/a2a","selected_connection_interface":{"url":"https://allratestoday.com/api/a2a","protocolBinding":"JSONRPC","protocolVersion":"0.3.0"},"protocol_interface_checks":[{"endpoint":"https://allratestoday.com/api/a2a","protocol_binding":"JSONRPC","protocol_version":"0.3.0","selected":true,"state":"a2a_response","checked_at":"2026-10-31T21:38:01.501684+00:00","http_status":200,"detail":"A2A task-not-found response to a read-only task lookup","binding_recorded":true}],"connection_selection_note":"The selected connection uses an address advertised in the publisher card. Read-only observations do not establish task quality or safety.","x402_price_check":null,"events":[],"relationships":[],"verification":{"agent_card_url":"https://allratestoday.com/.well-known/agent-card.json","last_successful_card_check":"2026-10-31T21:38:01.501684+00:00","latest_card_check":{"checked_at":"2026-10-31T21:38:01.501684+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"signature_status":"unsigned","signature_checked_at":"2026-10-31T21:38:01.501684+00:00","task_endpoint_tested":true,"task_execution_tested":false,"endpoint_tls_checked_at":"2026-10-31T21:38:01.501684+00:00","endpoint_tls_reachable":true,"protocol_check_state":"a2a_response","protocol_checked_at":"2026-10-31T21:38:01.501684+00:00","provider_identity_verified":false,"domain_claimed_at":null,"domain_proof_checked_at":null},"synthetic_capability_tests":{"agent_id":519941,"status":"not_tested","reason_code":"not_yet_tested","consent_status":"not_confirmed","latest_observation_status":null,"last_checked_at":null,"fixture_version":"1","reference_demonstration":false,"scope":"A publisher-authorized synthetic test of a dedicated free test endpoint. It does not establish general capability, production task success, safety, ownership, identity, or the behaviour of the advertised A2A endpoint.","methodology_url":"https://localmark.ai/capability-tests","history":[]},"repair_links":{"agent_repair_url":"https://localmark.ai/agents/519941/repair","publisher_report_url":"https://localmark.ai/publishers/allratestoday.com/repair","diagnostics_json_url":"https://localmark.ai/publishers/allratestoday.com/repair/diagnostics.json","diagnostics_csv_url":"https://localmark.ai/publishers/allratestoday.com/repair/diagnostics.csv"},"_localmark":{"contribution":{"optional":true,"directory_access":"free","operator_authorization_required":true,"affects_rankings":false,"message":"LocalMark is free. Optional contributions help fund ongoing checks.","support_url":"https://localmark.ai/support","metadata_url":"https://localmark.ai/api/v1/support/contributions"}}}