1

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?

3
  • 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. Commented Oct 17, 2012 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
    Commented Oct 17, 2012 at 14:53
  • @Brian - Oracle found that the code can be copyrighted but the interface itself cannot be.
    – Ramhound
    Commented Oct 17, 2012 at 19:17

2 Answers 2

3

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.

2
  • 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
    Commented Oct 17, 2012 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. Commented Oct 17, 2012 at 19:25
2

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.

7
  • 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. Commented Jan 25, 2020 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 Commented Jan 26, 2020 at 5:49
  • Yeah that wouldn't be entitled to copyright either. That's a process. You'd need a patent. Commented Jan 26, 2020 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 Commented Jan 26, 2020 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 Commented Jan 27, 2020 at 21:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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