What does an API look like?

Sometimes, says Brian Pagano, it looks like this: /users. Or this: /products.

Brian Pagano is a software architect at Apigee, an outfit that does nothing but help companies build and operate APIs, interfaces that let one piece of software talk to another. In describing the APIs his company deals in, he wants to lend some perspective to another question, a question that may soon be answered by the federal judge overseeing the ongoing legal battle between Google and Oracle: Can you copyright an API?

If Judge William Alsup rules that APIs are subject to copyrights, he would overturn common wisdom in programming circles, potentially exposing many companies and developers who have built software platforms that openly mimic existing APIs. But that's not all. Such a ruling could shake things up for many other companies across the programming world and beyond.

>"Let’s say you have a communication protocol where you send a packet of data and that packet is organized in a certain way. If the court says that an API is copyrightable, then why isn’t the layout of a data packet copyrightable?" – Ronald Abramson

As they evolve into a way of connecting modern web services and mobile applications, APIs are moving towards a common convention called REST, short for "representational state transfer," and the whole idea of REST is to make APIs simple. Sometimes, an API call is similar to a common English noun or verb, and it typically handles the same data formats as other REST APIs. "The odds of similarity between any two RESTful APIs is quite high," Pagano says. "I think that's one of the things that has everyone so concerned."

Pagano envisions a scenario where a company makes a land grab of common names and starts enforcing copyrights on APIs en masse. You could lockdown API formats as easily as you lockdown internet addresses or Twitter handles. And if you can do that, what's to stop you from copyrighting other common computing formats?

"Let's say you have a communication protocol where you send a packet of data and that packet is organized in a certain way," says Ronald Abramson, a lawyer with the international firm Hughes, Hubbard, and Reed. "If the court says that an API is copyrightable, then why isn't the layout of a data packet copyrightable?"

API is short for application programming interface. If a piece of software offers an API, you can build applications that plug into that piece of software. Using the APIs for Apple's iOS mobile operating system, for instance, you can build an application that runs on the iPhone. And using the Facebook APIs, you can plug that application into Facebook. It's little more than a way of sending and receiving data.

In building a new software platform, software companies and other software designers often clone the APIs of an existing platform. It's a way of making a platform instantly palatable to an established community of application developers. Several cloud-computing platforms mimic the APIs of the runaway market leader, Amazon Web Services, and in building Android, Google mimicked the APIs for the Java platform. This lets developers build Android applications using the Java programming language.

In 2010, Oracle sued Google over this, claiming the search giant infringed on its Java-related copyrights and patents. In San Francisco, a jury is still listening to arguments over Oracle's patent claims, and though the jury was unable to reach a complete decision on the copyright claims, Judge William Alsup will likely rule on whether the Java APIs can be copyrighted in the first place.

Abramson believes Alsup will rule than APIs can't be copyrighted, because this is consistent with existing law. And if Alsup rules that they can, the decision will almost certainly be appealed to a higher court. But the ball will be rolling, and the possibility has many wondering how such a ruling could affect the APIs they've built – or plan to build.

Uh, Can You Show Me a Java API?

The Java APIs are a means of talking to software libraries that you include with the Java application you're building. A typical Java API method looks something like this:

public int fetchNumberOfOverdueAccounts(int groupID);

Public shows who can access the method. Int, short for integer, indicates what type of information will be returned. FetchNumberOfOverdueAccounts is the actual name of the method. And (int groupID) gives the input parameters – i.e., the information you must supply to the method.

Because these APIs call software that resides with the application, they're a bit different from so many APIs in the internet age, which make calls to distant web services. But otherwise – says Alex Polvi, a developer and founder of a startup called Cloudkick that was acquired by cloud giant Rackspace – these two types of APIs are similar. Both are calls you make to another piece of software.

Apigee's Brian Pagano also points out that the Java APIs are a bit more complex than many of today's web and mobile APIs, especially those that use the REST convention and the web’s underlying HTTP protocol. "Java – or other traditional programming libraries – are more distinctive," he says. "They tend to be made up of verbs and be more verbose." But he agrees that in the end, all these APIs are little more than ways of invoking underlying computer code.

>"This would be a strong precedent and it would be pretty difficult to distinguish them from other APIs. I would be concerned that the ruling would have broad ramifications for other APIs and beyond APIs." – Ronald Abramson

Given this, says Ronald Abramson, a ruling on the Java APIs could be relevant to almost any other common way of sending data. "These are a pretty typical APIs. They're a definition of how you talk to something," he says. "This would be a strong precedent and it would be pretty difficult to distinguish them from other APIs...I would be concerned that [the ruling] would have broad ramifications for other APIs and beyond APIs. If you can copyright the structure, sequence, and organization of data, that changes the landscape."

Like Pagano, Alex Polvi says that REST APIs for competing products tend to be similar. The data delivered by APIS will be different, but it will be delivered in a similar way. So, even if you're not consciously mimicking someone else's interfaces, that odds are your APIs will be similar to those offered by others.

Pagano argues that generally, APIs do not contain innovative technology that should be protected from competitors – and he says that Apigee's customers tend to feel the same. "The innovation is how you engage with your customers, and how your systems work on the back-end," says Apigee CEO Chet Kapoor. But they're also aware that the law may view things differently.

If a customer does believe that their APIs contain innovative technology, Pagano and Kapoor say, then Apigee advises that customer to do everything it can to patent them. "We're not saying that people should just start patenting APIs," Pagano explains. "We're saying that if you believe that's where the innovation is, then that's the proper course of action."

In other words, the copyright question is unsettled, and this could leave you vulnerable. Of course, the patent system is a mess too. But if you need protection for APIs, that's the best place to turn.