I am using the Telegram API (licensed under GNU GPL) to integrate chat services within my own application. The developer of Telegram asks to -

"Please remember to publish your code too in order to comply with the licences."

So in a nutshell, my question is: Do I need to open-source my entire application or whether I need to open-source only the part wherein I'm using the chat functionality with Telegram?

Link 1 to GitHub page

Link 2 to GitHub

2 Answers 2


If all that was done was to use the API without including any of Telegram's code (not even header files) in the application, traditionally the answer would have been that nothing needs to be published since nothing subject to the GPL would be included in the application. Depending on rulings in the Oracle v. Google case, that answer may change.

If actual code from Telegram is included in the application, then yes the entire application would have to be distributed under the terms of the GPL unless the copied code can be isolated to an external program that's merely used by the application.

There's a slightly grey area when it comes to only having included header files (function and data structure definitions without any implementation code present) in the application. The grey depends on whether those header files are considered simply facts about the API (not eligible for copyright) or a creative work in and of themselves (eligible for copyright). This is usually more relevant when using software libraries, and since that usually means the application would be linked against the library and thus would include it the answer usually ends up being yes the application needs published under the GPL. For a network API such as Telegram's, a simple description of the data format was usually considered more factual than creative and depending on the language used for the client the issue might not even come up if the headers couldn't be used directly. Again, depending on the final rulings in the Oracle v. Google case this area may be subject to change.

  • Note that even if the GPL doesn't require you to license your code as GPL, Telegram might. "Please remember to publish your code too in order to comply with the licences" may be construed as the terms on which you must agree to use the API. Apr 2, 2016 at 2:02
  • I think that'd be a hard sell, seeing as it'd be the users who'd have to accept the terms of service to use the API and they wouldn't hold the copyright on the code.
    – Todd Knarr
    Apr 2, 2016 at 4:00

If you distribute your app then: yes.

And it has to be the same GPL Telegram uses with the implication of publishing your code.

See also this post in Programmers.SE and its answers.

  • 1
    The second part of this is probably not true. If you include GPL'ed code in your application, then while the included GPL'ed code must be redistributed under GPL, the resulting application need only be distributed under a licence that is at least as permissive as the GPL, rather than requiring the GPL itself. See eg this answer for a fuller argument, with references. That said, life is simpler all round if you do pick the GPL for your distribution licence.
    – MadHatter
    Apr 1, 2016 at 8:36

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.