You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The parser is !convert, not !currency. Same file though (Parsers/Currency Converter.js).
The API it's calling (api.exchangeratesapi.io) is dead. It wants an access key now, and even with one the free tier only lets you use EUR as the base. That's why nothing works.
Noting overlap with #501, which also switches to Frankfurter.
This PR additionally fixes two things in the same file: the fallback message
prints ${fromCurrency} literally (double quotes instead of interpolation),
and currency codes aren't uppercased, so !convert 10 usd to eur fails the
rate lookup regardless of which API is used.
Happy either way, if you'd rather merge #501, I can close this, or reopen
the two remaining fixes as a separate PR on top of it.
Activity
prakhar2000 commentedon Sep 15, 2026
The parser is !convert, not !currency. Same file though (Parsers/Currency Converter.js).
The API it's calling (api.exchangeratesapi.io) is dead. It wants an access key now, and even with one the free tier only lets you use EUR as the base. That's why nothing works.
Frankfurter looks like a drop-in: no key, free, and it returns the same { base, rates } shape the script already uses. I tried https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR and it checks out.
Two other small things in that file while I'm in there:
Saw #501 is already up. Is Frankfurter ok with you, or do you want to go with that one?
prakhar2000 commentedon Sep 15, 2026
Noting overlap with #501, which also switches to Frankfurter.
This PR additionally fixes two things in the same file: the fallback message
prints
${fromCurrency}literally (double quotes instead of interpolation),and currency codes aren't uppercased, so
!convert 10 usd to eurfails therate lookup regardless of which API is used.
Happy either way, if you'd rather merge #501, I can close this, or reopen
the two remaining fixes as a separate PR on top of it.