Lead Engineer Raj Chohan dives into what it means to copyright an API.
Back in 2010 Oracle sued Google for its use of 37 Java API packages developed by Google for Android’s Dalvik virtual machine, and in particular a routine called rangeCheck that consisted of 9 lines of code to check array bounds and eight decompiled security files.
Oracle also sued over two patents, but that was thrown out. The naming scheme to the signatures from the packages were identical to simplify the lives of the developers who were used to certain package structure, sequence, and organization. The Federal courts came away with the decision that APIs are copyrightable (overturning multiple previous decisions that they are not) but Google came within fair use of the copyright (deadlock by the jury on fair use) .
An Application Programming Interface (API) provides an abstraction to an underlying service through clearly defined routines or procedures. An API provides methods to interact with an operating system (system calls) or to a web service (REST calls). Programs or libraries provide an API so that other applications can then interact with it without knowing the implementation details. The APIs we’ll discuss are the ones that are publicly released so that developers can interact with a public, pay-for, service.
Copyright protection is granted by the government to provide the creator exclusive rights to how the works are used or distributed. Unlike a patent which can last up to 20 years, a copyright can last up to 70 years after the death of the author, or 95 to 120 years for large entities such as corporations. Copyright applies to fixed original work which has some level of creativity involved, where the amount of creativity is subjective. Copyright does not apply to facts or to recipes, even if the facts were unknown previously or the recipe did not exist previous to publication. Software copyright protection does not apply to “ideas, program logic, algorithms, systems, methods, concepts, or layouts” .
On November 7th, 2014, a group of well known computer scientists wrote a petition to the federal court in the defense of making APIs uncopyrightable.
From the “Amicus Brief of Computer Scientists in Support of Petition of Writ of Certiorari” :
In the petition it gave examples of where progress would have been hampered given people and corporations would have had to get written permission to reimplement an API. These examples included:
"Today, open, uncopyrightable APIs continue to spur the creation and adoption of new technologies. When programmers can freely reimplement or reverse engineer an API without obtaining a costly license or risking a lawsuit, they can create compatible software that the interface’s original creator might never have envisioned or had the resources to develop. Moreover, compatible APIs help enable people to switch platforms and services freely, and to find software that meets their needs regardless of what browser or operating system they use. Without the compatibility enabled by the open nature of APIs, consumers could be forced to leave their data and programs behind when they switch to a new service. ... By ruling that interoperability is relevant only to fair use, and not to protectability, Judge O’Malley would require every developer to perform a fair use analysis before developing an interoperable product."
- Modern personal computers
- BSD Sockets
- The C library
- UNIX APIs
- Super computers
Courts must find a balance between protecting novel methods and creations but make sure frivolous copyrights and patents are not enforced. It has been in America’s DNA to protect the creations of its citizens to allow them to profit, unlike other nations where it is culturally acceptable to copy someone else’s work without credit or payment. Yet patents for software are handed out, only to find that it was given for trivial solution (an obvious solution for a problem). When dealing with new technologies, everything may seem novel at the time but as time passes it becomes absurd to enforce the patent. One of my favorite examples of this is the patent for hyperlinks. Essentially every website infringes on this patent and strict enforcement of it would have hampered the growth of the internet and devices tremendously .
As of now the copyright and fair use of APIs is very murky and until it is straightened out one must be careful of what license we are dealing with. Perhaps we should only engender APIs which are licensed with very permissive licenses or make sure the person or corporation who owns the copyright makes it very clear on their stance of the reimplementation of an API. The developer community has great powers as to which APIs proliferate. As we started the AppScale project we made sure that our reimplementation did not put us in legal trouble. The Google App Engine APIs are under the Apache 2.0 license and Google’s initial funding along with a top tier partnership solidified our belief of Google’s devotion to the open source community. It’s an API that is easy to understand and extremely scalable with the correct implementation.