The Bottom Line
- Based on the decision of the Court of Appeals, software developers and programmers should understand that there is risk in using any copyrighted code, including API packages and code, without first obtaining authorization from the owner of the API or otherwise adhering strictly to the API terms and conditions.
- The safest course for software developers and programmers is to ensure that they have a license or are otherwise authorized to use the code in accordance with the rights owner’s terms and conditions, even if that code is being used in a different device or environment.
A recent decision in the longstanding fight between Oracle and Google could change the way software developers and programmers use Application Programming Interfaces (APIs) when creating mobile and other software applications. The Federal Circuit Court of Appeal’s decision held that, contrary to the jury’s verdict in the trial below, as a matter of law, Google’s use of Oracle’s copyrighted Java APIs was not protected by the copyright defense of Fair Use.
Oracle’s Java Platform
Oracle owns the widely-used Java platform and Java programming language. The Java platform is available for free in certain circumstances under an open source license to be used to write and run programs that use the Java programming language, and it can run those programs across different types of hardware without having to rewrite the program for each different type. Oracle does, however, charge a licensing fee to developers who want to use its APIs in a competing platform or electronic device. By 2008, Java included 166 API packages.
In programming languages like Java, an API is essentially a coding shortcut. It is a “label” that is used to call up the actual code necessary to implement a given function, or “implementation code.” By using these labels, programmers can use existing code to implement a function rather than having to write new code to implement that function for each new platform or system. This allows programmers to write code in a new environment without having to learn an entirely new coding language.
Oracle v. Google
In this case, Google copied 37 Java API packages and wrote its own implementation code underlying those API packages for use by developers on its Android operating system. Google hoped that by allowing Java developers to code using the same API shortcuts with which they were already familiar, it would attract developers to work on Google’s Android system. Google had initially approached the original owner of Java, Sun Microsystems, prior to Oracle acquiring them, to pay a licensing fee for the use of these APIs on its competing Android platform, but those negotiations broke down and Google moved forward with using the APIs without a license.
Oracle filed a lawsuit against Google, claiming that by copying the 37 APIs, Google infringed Oracle’s copyrights in that code. Previously in the action, the Court of Appeals held that the structure, sequencing and organization of Java API packages were entitled to copyright protection. The most recent appeal to the Court of Appeals related to whether Google’s copyright violation was excused by the defense of Fair Use, which operates as a limited exception to copyright infringement and allows the copying of a copyrighted work in limited circumstances.
The Decision of the Court of Appeals
The Court of Appeals held that, as a matter of law, Google’s use of the Java API packages was not Fair Use. The Copyright Act provides four non-exclusive factors to be considered when deciding whether the use of a copyrighted work is Fair Use: (1) the purpose and character of use, including whether the use was commercial in nature and whether the use was transformative; (2) the nature of the copyrighted work; (3) the amount and substantiality of the portion of the copyrighted work used; and (4) the effect of the use on the market for or value of the copyrighted work.
First, the Appellate Court held that Google’s use of the APIs was commercial in nature because it received advertising revenue in connection with the use of the APIs, and it was not transformative because, among other things, the purpose of the API packages remained the same on both the Android and the Java platforms, and Google made no alteration to the expressive content or message of the APIs. Second, the court held that the nature of the API packages could be considered substantially functional. Third, the Appellate Court held that no reasonable juror could find that the amount copied was “qualitatively insignificant, particularly when the material copied was important to the Android platform.” Finally, the Appellate Court held that Google’s use of the copyrighted APIs had a substantial impact on the market and weighed heavily against a finding of Fair Use. Among other things, the court noted that Android competed directly with Java and that Oracle had already lost business because of customers switching to Android.
Based on the foregoing analysis, the Appellate Court held that Google’s use of Oracle’s API packages did not constitute Fair Use, and remanded the case for a trial on damages, which has not yet occurred, but could lead to a damages verdict in the billions.
Some commentators view the Oracle decision as overturning the existing custom and practice of reusing APIs as a means to innovate in the software industry. Among other things, they have noted that the decision may reduce interoperability across platforms and may chill innovation, especially by start-ups and smaller companies, because programmers will need to license each software component they are trying to innovate. However, the Appellate Court cautioned that it was not holding that “a fair use defense could never be sustained in an action involving the copying of computer code.” Accordingly, just how far-reaching of an impact the Oracle decision will have on the use of APIs or preexisting code remains to be seen, and technology or other such companies will need to do a careful Fair Use analysis before utilizing existing APIs without a license.