Earlier this week, the US Supreme Court ruled that Google did not infringe Oracle copyright on the Java SE API (application programming edition).
The fact the US Supreme Court has digested a load of expert statements and come up with an understanding of APIs, has to be applauded.
At one level, an API can be regarded as any other piece of intellectual property. It is a snippet of computer code, that describes the way a programmer can access another piece of programming functionality. But, significantly, it is just an interface – a declaration of what the function actually requires in order to do its job. The code behind the API – the function or task a third party developer wants to achieve using the API – is protected by copyright law.
But in the filing, Justice Stephen Breyer drew an analogy between an API declaration and the accelerator pedal of a car, and the Qwerty keyboard – both of which provide a user interface to some functionality. Copying the accelerator pedal, in no way is the same as copying the engineering schematic of the engine; nor do the millions of variants of Qwerty keyboards available, infringe the underlying operating system code that makes sure each key press does the right thing.
A user interface for programming
Breyer described the example of a programmer building a new application for personal banking who, he said, may wish to use various tasks to, say, calculate a user’s balance or authenticate a password. “To do so, she need only learn the method calls associated with those tasks. In this way, the declaring code’s shortcut function is similar to a gas pedal in a car that tells the car to move faster or the Qwerty keyboard on a typewriter that calls up a certain letter when you press a particular key. As those analogies demonstrate, one can think of the declaring code as part of an interface between human beings and a machine.”
What is interesting is the example Breyer has used – the authentication function in a personal banking application. Developing a secure authenticator for personal banking should really only be undertaken by a trusted party. The API provides access to the authentication code, thus allowing the developer to create a personal banking application with robust authentication.
While it is just an interface, use of an API can have unintended consequences. The Supreme Court has ruled the API cannot be copyrighted. The question for an organisation is what constitutes “fair use”, when a competitor starts using its APIs.