The reuse of API interfaces lies in a legal gray area, and the reuse of interface patterns can result in legal risks. In 2010, Oracle accused Google of violating Oracle’s copyrights by mimicking the Java APIs. Oracle tried suing Google, but the courts decided that the API wasn’t subject to copyright. Since then, Oracle has appealed, leaving many to worry that these legal issues will come up again.

In order to address those problems, API infrastructure provider 3scale’s founder Steven Willmott and API evangelist Kin Lane have launched a new initiative: API Commons.

(Google, Oracle and Java legal soup)

Following the idea of Creative Commons, API Commons is meant to be a common place where developers can freely publish and share their APIs for reuse under standard Creative Commons licenses. The specific goal is to enable:
• Authors of interfaces to declare what is reusable in simple terms
• Others to adopt reusable interfaces
• Sharing of adaptations back to the public

Even though courts have ruled against copyright being enforceable for API interface definitions, API Commons believes it is critical because:
• Such judgments may be reversed in the future and hence would endanger many interfaces built on the premise of reusability
• Legal processes are lengthy and costly; not having explicit agreement that reuse is permitted creates unknown business risks
• Even if reuse is permitted, it is common courtesy to seek permission to use someone else’s work
• Interface commons provides the means for interface owners to explicitly declare reusability, hence removing any ambiguity

“3scale and I strongly believe that API Commons is what the API industry needs to help deal with some of the clutter in the number of API designs; incentivize the development of open and common tooling around the best API designs; and bring reuse, collaboration and copyright concerns out into the open,” Kin Lane wrote on the API Evangelist blog.

API Commons is built entirely on GitHub and is meant to be a common index of API definitions and data models. Anyone can add their API by generating an API Commons Manifest for their API definitions.