My intention

I’d like to write a desktop GUI program using Qt (which is itself is licensed under GPL) that interfaces a REST API and I want to use a strong copyleft license, preferably GPLv3. (I use the GPLv3 for all of my personal projects and they commonly share re-usable parts.)

The API Terms of Usage include this:

You may not require anyone to make payments, take surveys, agree to subscriptions, rate your content, or create accounts in exchange for access to Scryfall data.

My program will download data from said API during run-time and display information obtained using it. It will not ship any data obtained from it as part of the source code and setup bundles (if any).

The problem

The GPL, like any OSI-approved free software license, explicitly allows re-selling the application and commercial use.

Personally, I do not and will not intend to ever sell this piece of software to anyone.

My assumption/interpretation:

The program downloads and displays (parts of) the information obtained via API calls, thus it ”grants access to Scryfall data”.

Selling the program (if done by a third party) violates “You may not require anyone to make payments […] in exchange for access to Scryfall data.”, thus the program can never be sold by anyone. It it were sold, the seller were requiring a payment for granting access to the data provided by the API, therefore violating the ToS. But compliance with the API ToS then violates the GPLv3, which explicitly prevents further restriction, aside from the ones made by the license itself. Thus this clause in the ToS contradicts the GPLv3 (and possibly any other F/L OSS license).

Therefore it is not possible to write free/libre open source software interfacing said API.

The question

Is my interpretation right or wrong? I.e. is it possible to write GPL-licensed software interfacing the non-profit API or not?

1 Answer 1


Selling the program (if done by a third party) violates “You may not require anyone to make payments […] in exchange for access to Scryfall data.”, thus the program can never be sold by anyone.

Your interpretation of the API license is incorrect.

By selling a copy of your application, you are asking money for a piece of software (which happens to be able to access Scryfall data), but you are not asking money for accessing the data itself. It could very well be that the buyer doesn't even want to access Scryfall but wants to modify the program to access some other data source.

What the API license is forbidding is that you add some kind of in-app purchase option for accessing the data.

  • Thanks, the latter is clear. No in-app purchases, as that clearly violates the ToS. What I am struggling with is the “for access” part. I’m interpreting this as “You may not sell applications that grant access to the data.”. The API-interfacing app is an “accessor” granting the possibility to access the data, which therefore can’t be sold. If that’s indeed not how to read it, all is fine :)
    – luziferius
    Nov 24, 2020 at 17:26
  • '@luziferius, what are people paying for when they buy the app? Are they paying for the data or for the code to access the data? The first is not allowed by the API license, but the second is not subject to the API license at all. Nov 25, 2020 at 10:14
  • Alright. Let’s change perspective and re-apply my initial argumentation: If you buy a web-browser (paid Firefox clone or whatever), then you paid for an 'accessor' to that API, thus by the browser being such an 'accessor', any payment for the browser is invalid or you may not access the page using the paid browser at all. (Or any FLOSS web browser because there is the allowance for it being paid). That renders it completely absurd. Without 'access to' in the ToS I immediately get to your explanation without issue. I just completely tripped over those two words.(I’m not a native speaker) Thanks
    – luziferius
    Nov 25, 2020 at 13:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.