Exchange Rate API and Non-Free Network Services

Hello, I am a developer of a unit converter.

It’s marked with Non-Free Network Services anti-feature, because it uses fawazahmed0 / currency-api to get exchange rates.

Endpoint example:

Other unit converters use other services to get exchange rates, but are NOT marked with Non-Free Network Services anti-feature:

  1. Unit Converter Ultimate and Converter NOW: Unit Converter use European Central Bank
  2. yetCalc uses ExhchangeRates.Host


  1. What’s so different between these services that some of them don’t make your app receive anti-feature flag?
  2. fawazahmed0 / currency-api (the service I use) has it’s code publicly available - it’s a script that gets that from somewhere else. Does it mean that Anti-Feature is not needed?

Usually the “need” for the service sets the tone.

Eg. If the user needs to toggle that ON and it’s NOT ON by default, say the device does not unknowingly to the user connect to some external service, it will not need this AF.

Now, that does not mean apps metadata is perfect so if some of those need that AF, we can add it.

@linsui @Izzy how was that story with the “European Central Bank”? It’s freeish so…etc

ECB seems to have a free (libre) license; though it’s none officially “blessed” by OSI/FSF it seems to cover the basic “4 freedoms”. And to add to your line of thought: The toggle wouldn’t help avoiding NonFreeNet if the app won’t work with it toggled off (“entirely depends”) :wink:

But I thought the problem is that the European Central Bank is not a FOSS service.

Maybe we need a NonFreeData anti-feature…

But what if I allow users to set their own instance of currency-api?

It’s basically a parser script and users can technically run it on their own machines (even host it on GitHub).

Here is an example of how I would implement it. By default there will API URL that I provide, but users can change it.

Sure? Who has the precise definition for that when it comes to data? As pointed out: to me it looks like the “4 freedoms” are granted, which makes it libre. Others might come to different conclusions (see my notes on their 4th term that for commercial use one must not put data into frames – but that does not forbid commercial use, does it?). IMHO we should not demand the color of the dot on the “i” here.

I’d say then the users are free to choose and to set up their own “free API” – as long that’s not just a “nice theory” as there’s no way to feed it, it should be fine.

1 Like

The AntiFeature text says that’s the solution even :slight_smile:

This antifeature would not apply, if there is a simple configuration option that allows pointing the app to a running instance of an alternative, publicly available, self-hostable, free software server solution.