I write scripts for a commercial GIS package (ArcGIS) using Python and the GIS package software API (Arcpy). I had been thinking about putting the scripts that I create on GitHub under an MIT licence but I am not sure if the API of the software makes my scripts open source or not. I guess my question is, how do you know if your work is open source if you use someone else API?

  • Are you asking whether using an API requires your plugins/scripts to be open source? Or whether it prohibits it because ArcGIS is proprietary? Or something else? Commented Jul 16, 2015 at 6:42
  • @curiousdannii: whether the use of their API prohibits it being open source because ArcGIS is proprietary
    – TsvGis
    Commented Jul 16, 2015 at 7:02
  • I vote to close this as "unclear" what you're asking. Without seeing the actual API and how it is used, I don't think it can be answered. Commented Aug 8, 2015 at 8:01

2 Answers 2


You need to look at what the license of your API will be.

Looking at the ArcGIS Copyright Information page...

...No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording, or by any information storage or retrieval system, except as expressly permitted in writing by ESRI...

Therefore, using the api and allowing open source freedoms, such as reproduction and distribution is asking for trouble.

I misunderstood. It seems like the library in question is actually ArcPy, and not ArcGIS.

Therefore, to answer your question, you need to look at the nature of your "referenced libraries". You need to look at their copyright/licensing terms, analyze them, and determine how they will impact the goals of your project. For example, can I still fork, share it and the like. You can have specific terms and conditions, such as copyleft (also known as ShareAlike), or make it as permissive as possible (Such as this license). In the end, you will know your work is Open Source, if it meets their definition:

  1. Free Redistribution
  2. Source Code
  3. Derived Works
  4. Integrity of The Author's Source Code
  5. No Discrimination Against Persons or Groups
  6. No Discrimination Against Fields of Endeavour
  7. Distribution of License
  8. License Must Not Be Specific to a Product
  9. License Must Not Restrict Other Software
  10. License Must Be Technology-Neutral
  • 4
    How is using an API transmitting the work?!? Commented Jul 16, 2015 at 6:43
  • @curiousdannii You're right... I'm not even understanding what I wrote - None of it makes sense!
    – Zizouz212
    Commented Jul 16, 2015 at 13:56
  • 1
    "I misunderstood. It seems like the library in question is actually ArcPy, and not ArcGIS." - ArgGIS is a software package, not an API. ArcPy is seemingly the Python-API to access ArcGIS. For details: en.wikipedia.org/wiki/ArcGIS
    – Mnementh
    Commented Jul 16, 2015 at 14:32
  • @Mnementh Exactly. ArcPy is the api, while ArcGIS is the actual software program.
    – Zizouz212
    Commented Jul 16, 2015 at 14:58

First of all, you have to consider the license of the API you're using. Such a license might restrict the ways you release programs based on that API (maybe only for internal use or fees for releasing a program or something like that). If you look at this question, it seems that you cannot license a plugin based on ArcGIS as open source, as this license restricts the way the program can be used. But I don't know if it is the same API you're using. You might want to clarify that. The question I gave doesn't apply, as ArcPy is a Python library. Still I'm unable to find the licenses/terms that apply to the usage of this library, so be wary.

If the license of the API of the commercial App permits the creation of open source software, you still need to check if the open source license in question is compatible. You will have no problem with permissive licenses, so MIT is OK. If you choose a copyleft license (like GPL) on the other hand, you have another problem. The GPL demands, that every linked software is distributed under the same terms, the GPL in that case. As the API links your software and the commercial app it is obviously impossible. Still, you can do that, as long as you the only contributor (or all other contributors also gave their consent). But you would be barred to incorporate any GPL-code from different projects. An prominent example was the KDE-project. At first Qt was released under a non-free license. Still, the release of KDE was legal, but the risks I described lead to massive protest and eventually to the start of the Gnome-project. Also the Debian-project was at some point denying KDE the inclusion in the distribution. In the end Trolltech released Qt under the GPL, thus solving these problems.

Also, you cannot bundle your code with the commercial program. The users of your plugin still have to purchase a license of that program to use your plugin.

  • I don't think your first link applies to this situation. Lots of web services have limitations, such as rate limits for example. Those limitations do not have any impact on whether some program which accesses the web service can be free/open or not. Commented Jul 16, 2015 at 10:32
  • Furthermore, what counts as a "link", and therefore what the GPL applies to, is contested. Commented Jul 16, 2015 at 10:33
  • @curiousdannii: In the answer at the first link it is said, that the program using the API can only be used for a set of use-cases, that is incompatible with open source. And you're right that the linking is difficult, I think I already said it in an answer to another question, but I think it leads to far here. Fact is, as long as we don't know for sure if the linking is holding in court, we have to assume it might and err on the safe side.
    – Mnementh
    Commented Jul 16, 2015 at 11:51
  • I disagree that the API owners have any say over the licensing of any product that uses it, for the simple fact that the client could be changed to use a different web service. The web service is not open, but that doesn't mean the plugins can't be. Commented Jul 16, 2015 at 12:17
  • 1
    I think we need a general canonical question about linking libraries. Commented Jul 16, 2015 at 20:41

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.