Does the GPL or AGPL restrict programs from talking to other programs with other licenses via API? (i.e. transferring data.)

Example scenario:

  • Person 1 has Software A which has a GPL license.
  • Person 2 has Software B which has an MIT License (Expat Version)
  • Person 3 has Software C which has a proprietary license.

Use cases:

  • Someone creates a program that can interact with other programs, but the other programs are installed and used by end-users or other developers.

Can the MIT licensed work and the proprietary licensed work communicate with a GPL licensed work via API?

  • None of the software is integrated together (other than the API).
  • Each person has their own web hosting account(s).
  • The data is provided by the users and the software only processes and presents it.
  • Each person may or may not have modified their versions of the software.
  • Each person may or may not be conveying their versions of their software.

What if all three programs are run by the same person, but each software is separated and possibly even hosted separately? Does that change anything?

Example use cases:

  • Someone creates multiple programs under multiple licenses and wants them to talk to one another. A user chooses which software they want, and installs each separately. Each software package can operate independently and is not dependent on the others.

Basically, is GPL software restricted to only being used with GPL software, or can it interact with other software as well?

Or does the mere act of using an API force a user to license their work under the GPL?

  • Does this help answer your question: opensource.stackexchange.com/questions/12091/… That is for a Rest API. I suppose that's what you're alluding to here.
    – Brandin
    Jun 21, 2022 at 11:43
  • So basically, if I want my program to remain under the MIT license, I cannot even use a REST API of a GPL program. I guess I will just have to reinvent the wheel to keep my software free. Jun 22, 2022 at 9:54
  • Can you give a concrete example of a GPL program that you want to use (its Rest API) and simplify your situation? E.g. "I want to have a closed source program that makes REST API calls to GPL project Foo." Maybe then it would be easier for someone to answer this. In my impression, programs that supply a REST API are meant to remain separate programs from the programs that consume those APIs.
    – Brandin
    Jun 22, 2022 at 13:26
  • 1
    There is not generally a problem with "talking with" a GPL program, and not a problem with "transferring data", or even necessarily an API. The Linux kernel is a well-known GPL-2 licensed program that provides an API of system calls, which allow programs to transfer data to and from the kernel. If you write a program that uses Linux system calls, that doesn't mean your program has to be GPL, though, and it doesn't mean you have to supply source code to your program.
    – Brandin
    Jun 22, 2022 at 13:29


Your Answer

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

Browse other questions tagged or ask your own question.