Document ID: ./input/supremecourt_opinions/opinions/20pdf/18-956_d18f.pdf
Page Number: 25.0

Cite as:  593 U. S. ____ (2021) 

21 

Opinion of the Court 

the substance of the common-law [jury trial] right as it ex-
isted in 1791.”  Markman, 517 U. S., at 376. 

VI 

We turn now to the basic legal question before us: Was 
Google’s copying of the Sun Java API, specifically its use of
the declaring code and organizational structure for 37 pack-
ages of that API, a “fair use.”  In answering this question, 
we shall consider the four factors set forth in the fair use 
statute as we find them applicable to the kind of computer 
programs before us.  We have reproduced those four statu-
tory factors supra, at 13–14.  For expository purposes, we 
begin with the second. 

A. “The Nature of the Copyrighted Work” 
The Sun Java API is a “user interface.”  It provides a way
through which users (here the programmers) can “manipu-
late and control” task-performing computer programs “via
a series of menu commands.”  Lotus Development Corp., 49 
F. 3d,  at  809.  The  API  reflects  Sun’s  division  of  possible
tasks  that  a  computer  might  perform  into  a  set  of  actual
tasks that certain kinds of computers actually will perform. 
Sun decided, for example, that its API would call up a task 
that compares one integer with another to see which is the 
larger.  Sun’s  API  (to  our  knowledge)  will  not  call  up  the 
task of determining which great Arabic scholar decided to 
use Arabic numerals (rather than Roman numerals) to per-
form that “larger integer” task.  No one claims that the de-
cisions  about  what  counts  as  a  task  are  themselves  copy-
rightable—although one might argue about decisions as to
how to label and organize such tasks (e.g., the decision to 
name  a  certain  task  “max”  or  to  place  it  in  a  class  called 
“Math.”  Cf. Baker v. Selden, 101 U. S. 99 (1880)).

As discussed above, supra, at 3–5, and in Appendix B, in-
fra, we can think of the technology as having three essential 
parts.  First, the API includes “implementing code,” which