I'm currently planning on implementing API for HgLab and the obvious role model for me here is GitHub.

My API obviously won't be an exact copy due to inherent differences between Mercurial and Git and due to different tasks GitHub and HgLab solve, but similarity will be quite clear.

How ethical of me will it be to copy their API to a significant extent? Is the API design copyrightable?

  • Inspiration is commonplace. And an API that is designed to achieve almost the same effect and chooses the same style (for example a REST API) will look similar, even if it's not copied. That's all I'm saying. – Joachim Sauer Oct 17 '12 at 14:51
  • The question of whether an API can be copyrighted has shown up on the US news a few times lately. There are at least some US lawyers who are willing to argue that APIs can be copyrighted. Whether those lawyers are right is a more difficult question. – Brian Oct 17 '12 at 14:53
  • @Brian - Oracle found that the code can be copyrighted but the interface itself cannot be. – Ramhound Oct 17 '12 at 19:17

I am not a lawyer. If you are genuinely worried about this you should consult one.

It is typically considered fine to duplicate an API as long as you don't look at the implementation at all. For instance, this is what the Wine project does with the Win32 API. In Oracle's recent court case against Google, one of Oracle's arguments was that Google was not allowed to copy Oracle's APIs for Java, however, the court did not agree with this argument.

| improve this answer | |
  • Actually they did agree with Google, Google was only found guility of copying 9 lines of code, their blackbox copying was found to be legit. – Ramhound Oct 17 '12 at 19:18
  • @Ramhound that's what my answer says. The court disagreed with Oracle's argument that Google wasn't allowed to copy the API. – Dirk Holsopple Oct 17 '12 at 19:25

As of Nov 2019, the Oracle vs. Google case has reached the Supreme Court. Oracle is in the driver's seat, having won at Federal appeals court level. In reading through various articles, it looks like the core issue is whether you exactly copy the API in order to offer a competing product, i.e. one that users can swap out with your competitor and not have to change anything. If you're not doing that you should be Ok.

Sun made Java open source many years ago, but the Java use license prevents redistribution (as noted here). Unfortunately for Google, that's what they do: redistribute in order to compete with the copyright owner, without paying. IMHO, they will not be able to convince 5 conservative justices that this is ok.

| improve this answer | |
  • Being able to do that is exactly why we have API's. This is like England saying you have to pay us if you use English. – candied_orange Jan 25 at 3:26
  • @candied_orange no it's not the same. APIs are narrowly defined commands and feedback, not language. It would be like England saying you have to pay us if you copy our military command & control structure, then use it to fight with us – Jeff Brower Jan 26 at 5:49
  • Yeah that wouldn't be entitled to copyright either. That's a process. You'd need a patent. – candied_orange Jan 26 at 16:43
  • "In no case does copyright protection for an original work of authorship extend to any idea, procedure, process, system, method of operation, concept, principle, or discovery, regardless of the form in which it is described, explained, illustrated, or embodied in such work." - Title 17 U.S. Code § 102 – candied_orange Jan 26 at 19:36
  • @candied_orange Your argument that APIs are a process helps defeat your own point. I don't think they are, but I do think there is an art to well organized, efficient, and easy to use APIs. Google is now trying to overturn the APIs-can-be-copyrighted situation but I don't think a conservative court will go for it. They will consider the unfair competition issue first and foremost – Jeff Brower Jan 27 at 21:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.