On April 5, the Supreme Court decided Google v. Oracle America, a decade-long legal battle over an all-important type of code called application programming interfaces (APIs). Oracle accused Google of violating copyright laws by plagiarizing thousands of lines of code, suing the search giant for $9 billion. Google argued recycling Oracle’s code was part of a common industry practice essential for the development of the tech sector.
The court sided with Google declaring that its use of Oracle’s code in service of a new and different product was legally permissible. Software developers, computer scientists, and tech industry groups who filed amicus briefs on Google’s behalf celebrated the ruling. Computer scientists and legal activists have argued that nothing less than the future development of the internet is at stake.
But the justices stopped short of saying APIs, the crucial category of code at issue, were immune from copyright laws. That leaves the legal fate of APIs an open question, along with software developers’ right to crib crucial pieces of code from each other when building new products. And, perhaps, the smooth operation of the internet itself.
Why are APIs important?
In programming languages like Java, which Oracle acquired in 2010, developers call on APIs every time they need to do certain repetitive tasks. A call for LocalDate, for example, might return (yyyy-MM-dd). Essentially, the code makes requests, and other software responds with data or actions.
In order to use an API, developers have to write their code following certain conventions and using a certain set of terms and symbols. It’s similar to how writing a sentence in English requires following grammar conventions and use a certain set of words and punctuations.
Reinventing the “grammar” of these requests in every piece of software would be painful. Since developers don’t want to have to learn a whole new way of writing code to call on APIs every time they start a new project, they tend to fall back on a common standard (in this case, Oracle’s Java). This “recycling” of APIs syntax is what prompted Oracle’s $9 billion lawsuit, and the recent ruling.
Did Google steal Java’s APIs?
When Google created its own APIs for developers working within its Android operating system, it simply copied the names and conventions of Java’s APIs. That is to say, developers could call on the Android APIs in exactly the same way as Java APIs (even if the tools themselves worked slightly differently). That made it a lot easier for software engineers to start working on Android applications. Java is a very popular programming language. Many developers had already learned how to use its APIs. Those developers then applied that same knowledge to writing code for Android devices.
The result was positive for almost everybody. Developers had an easier time creating apps on a new platform that could bring them new sources of revenue. Users benefited from having a wide selection of apps available in the Google Play store. And Google benefited because having a fully stocked app catalog made its operating system more attractive to phone manufacturers and consumers.
The only party that didn’t benefit was Oracle, which acquired the rights to Java when it bought Sun Microsystems for $7.4 billion in 2010. It hoped to charge Google and phone makers a fee for the right to use its programming language on Android devices. Instead, Google copied 11,500 lines of Java’s API code—about 0.4% of the Java code library—and installed the Android operating system on phones for free. (Well, almost free—it did require certain concessions from phone manufacturers that cemented its dominance of the digital ad market.)
So what did the Supreme Court decide?
The Supreme Court was supposed to decide two things: first, whether APIs are subject to copyright laws, and second, whether Google’s particular borrowing of Java’s APIs could get a free pass by virtue of the “fair use” exception. This doctrine gives judges a way to waive copyright rules when they would unreasonably hinder expression or creativity.
The court’s 6-2 majority opinion completely dodged the first question. “Given the rapidly changing technological, economic, and business-related circumstances, we believe we should not answer more than is necessary to resolve the parties’ dispute,” wrote justice Stephen Breyer. He said the majority would assume APIs could be copyrighted “purely for argument’s sake.”
Instead, the majority ruled on the second question that Google made fair use of Java’s code. Google only used a small fraction of the code, and the API conventions it cribbed are “inextricably bound together with a general system, the division of computing tasks, that no one claims is a proper subject of copyright.” Plus, the judges argued, Google used the code to make something new: “Its new product offers programmers a highly creative and innovative tool for a smartphone environment.”
The decision clears Google of all wrongdoing, but only applies to this narrow circumstance. The question of whether APIs are copyrightable remains open.
Some observers supporting the verdict were quick to claim victory. “This decision gives more legal certainty to software developers’ common practice of using, re-using, and re-implementing software interfaces written by others, a custom that underlies most of the internet and personal computing technologies we use every day,” wrote Michael Barclay, special counsel for the privacy-focused Electronic Frontier Foundation, in a blogpost.
But the Supreme Court was less forthcoming. In his dissent, which argued APIs should be subject to copyright laws, Justice Clarence Thomas made clear that the legal fate of APIs is far from a settled question. “The court wrongly sidesteps the principal question that we were asked to answer,” he wrote. He decried Google’s actions, arguing that “[b]y copying Oracle’s work, Google decimated Oracle’s market and created a mobile operating system now in over 2.5 billion actively used devices, earning tens of billions of dollars every year.”
Google may have won the battle, but the war continues. Future battles fought over the practice of cribbing code will feature fiery arguments from at least two conservative justices for stronger copyright protections, and lukewarm support among the rest of the bench for ensuring APIs aren’t strictly bound to copyright laws.