Reusing the Interface: Google v. Oracle and Fair Use for Software APIs
The Supreme Court held that Google's copying of about 11,500 lines of Java API declaring code to build Android was a fair use as a matter of law, reshaping software copyright.
When the Supreme Court decided Google LLC v. Oracle America, Inc., 593 U.S. 1 (2021), on April 5, 2021, it ended a decade of litigation over the building blocks of modern software. It did so without answering the question everyone expected it to answer. The fight was over Google’s copying of roughly 11,500 lines of “declaring code” from the Java SE application programming interface (API) to build the Android operating system. Rather than decide whether that code could be copyrighted at all, the Court, in a 6-2 opinion by Justice Stephen Breyer, assumed copyrightability and held that Google’s copying was a fair use of the material as a matter of law. For software developers everywhere, the decision blessed a foundational industry practice: reusing the interfaces that let programs talk to one another.
At a glance
- Case: Google LLC v. Oracle America, Inc., No. 18-956, 593 U.S. 1 (U.S. Apr. 5, 2021).
- Court: Supreme Court of the United States; opinion by Justice Breyer for a 6-2 Court; dissent by Justice Thomas, joined by Justice Alito; Justice Barrett took no part.
- Posture: Reversing the Federal Circuit, which had held the copying both infringing and not fair use, and which had reversed a jury verdict in Google’s favor.
- Holding: Assuming the declaring code was copyrightable, Google’s copying of the Java SE API to create a new platform was fair use under Section 107; all four factors, properly weighed, favored Google.
- Significance: Established that reusing API declaring code to build a new and transformative platform can be fair use, calming a long-running threat to interoperability and software reuse.
The dispute traces to Google’s 2005-2008 development of Android. To attract the world’s Java programmers, Google reimplemented the Sun (later Oracle) Java APIs so developers could call familiar methods using familiar names. Google wrote its own implementing code (the instructions that actually carry out each task) but copied the declaring code, the lines that name and organize the methods. Oracle sued. After two jury trials, the Federal Circuit ultimately ruled for Oracle on both copyrightability and fair use, and the Supreme Court granted review.
Deciding fair use without deciding copyrightability
The Court’s first move was a deliberate narrowing. Justice Breyer wrote that the Court would “assume, but purely for argument’s sake, that the entire Sun Java API falls within the definition of that which can be copyrighted,” and resolve the case on fair use instead. That choice spared the Court from drawing fine lines about whether functional interface code is protected expression (an issue that divides the circuits) while still giving the industry a workable answer. The Court also addressed how fair use is reviewed on appeal. Google had argued that fair use was a question for the jury and that review should be limited to whether substantial evidence supported the verdict. The Court rejected that argument and agreed with the Federal Circuit: fair use is a mixed question of law and fact, reviewing courts should defer to the jury’s findings of underlying facts, but the ultimate question whether those facts amount to a fair use is a legal question for judges to decide de novo, because that ultimate question “primarily involves legal work.” The Court also held this approach does not violate the Seventh Amendment.
That framing matters. By treating the ultimate fair-use determination as a legal question, the Court positioned itself to weigh the factors itself and to articulate a software-specific analysis that lower courts could follow.
Walking the four factors through software
On the nature of the work, the Court found the declaring code “further than are most computer programs” from the core of copyright. Its use is “inherently bound together with uncopyrightable ideas (general task division and organization) and new creative expression (Android’s implementing code),” and its value derives in significant part from the investment of programmers who learned the system. That tilted toward fair use.
On purpose and character, the Court found the use transformative: Google reused the declarations to create a new platform (a smartphone environment) and to let programmers deploy their existing Java skills in that new context. That “further purpose” distinguished Android from a mere substitute for Java SE.
On amount, the 11,500 lines were only 0.4 percent of the entire API at issue, which ran to 2.86 million lines, and the Court said they should be viewed as “one small part of the considerably greater whole.” Google took only what was needed to let programmers call on their accrued talents in the new setting. On market effect, the Court found Java SE and Android operated in different markets (desktops/servers versus smartphones), that Oracle was poorly positioned to succeed in mobile, and that enforcing a copyright here would risk letting Oracle harm the public by limiting future creativity. Weighed together, all four factors favored fair use.
The dissent and the limits of the holding
Justice Thomas, joined by Justice Alito, dissented sharply. He argued the Court should have decided copyrightability first (and that the declaring code plainly was copyrightable), and that a proper fair-use analysis favored Oracle, especially on market harm, given the billions Google earned and the licensing market Oracle had cultivated. The dissent warned that the majority’s approach effectively eroded protection for an entire category of computer code by routing around the copyrightability question.
The majority was careful about reach. It said it would “decide no more than is necessary to resolve this case,” and stressed that it did “not overturn or modify our earlier cases involving fair use.” The holding was tied to its facts: where Google “reimplemented a user interface, taking only what was needed to allow users to put their accrued talents to work in a new and transformative program,” the copying was a fair use as a matter of law. Still, the practical signal was unmistakable: reimplementing an API to achieve interoperability and to build something new stands on strong fair-use ground.
Open questions
- Are APIs copyrightable? The Court expressly left this open, so the copyrightability of declaring code remains formally unresolved even as fair use offers a defense.
- How far does the transformative finding extend? The decision rested on building a new platform; reuse that merely substitutes for the original may fare differently.
- What about non-interface code? The reasoning leaned on the special, interface-bound nature of declaring code, leaving ordinary implementing code outside its core.
Implications
- For developers: Reimplementing an API’s declarations to enable interoperability and to build a genuinely new product has strong fair-use support, but copying implementing code or simply cloning a product does not.
- For platform owners: Licensing leverage over interface code is weaker than it once seemed; business models cannot assume control over the vocabulary programmers use to call functions.
- For litigators: Fair use is now framed as a primarily legal question, so preserve jury findings on subsidiary facts but expect courts to weigh the ultimate balance themselves.
- For the industry: The decision protects the interoperability that lets software ecosystems grow, reducing the risk that interface copyrights become chokepoints on new platforms.
Frequently asked questions
Did the Supreme Court decide whether software APIs can be copyrighted? No. The Court assumed for argument’s sake that the declaring code was copyrightable and decided the case on fair use, expressly declining to resolve the copyrightability question.
How much code did Google copy? Google copied roughly 11,500 lines of declaring code from the Java SE API, the lines that let programmers invoke prewritten functions by name. The Court emphasized this was a small fraction of the entire API, which runs to millions of lines.
What made Google’s use transformative? The Court found Google reused the declarations to build a new and different platform, the Android smartphone environment, letting programmers apply their existing Java know-how in a new context. That further purpose, plus the limited copying, made the use transformative and fair.
Authorities and sources
- Supreme Court slip opinion, No. 18-956: https://www.supremecourt.gov/opinions/20pdf/18-956_d18f.pdf
- Full opinion text, Google LLC v. Oracle America, Inc., No. 18-956 (Cornell LII): https://www.law.cornell.edu/supremecourt/text/18-956
- Oyez case file with argument audio: https://www.oyez.org/cases/2020/18-956
- 17 U.S.C. § 107 (Cornell LII): https://www.law.cornell.edu/uscode/text/17/107