The full form of API is application programming interface, which you probably knew and it does not help further in this case.
Now this term API has a wide-range of meaning when two software developers come to a conversation. It could mean the URL of a website, it could mean access to a server, it could be the login parameters of a database, and it could also simply mean a method in which two different entities exchange information.
As a developer if I had to get a source of international exchange rates for an app I would search “exchange rate API” on Google. Similarly for cat pictures, I would search “cat pic API”.
However, if I had to also find out the position of the cursor for a desktop app that I was developing, I would also search “desktop cursor API”.
Although generically used today, the original intention was to use the term only for software applications within one computer.
We will look into the different aspects of API through examples, and not technical language, so that you can decide if they merit protection under IP laws.
Types of APIs
If you have understood the above paragraphs correctly, then it would follow that someone could call any source of electronic information an API, without being erroneous. Here focus is on the word electronic, i.e. machine to machine transfer of information.
Typically to be more specific, the software industry tends to differentiate between: Network APIs, Operating System APIs and Library/SDK APIs.
A food delivery company does not necessarily also have to build its own payment gateway, what it may do instead is to ask an existing payment gateway to receive payments in its favour. The food delivery company would simply redirect the end user to an unique URL provided by the payment company when a payment is to be made. In this case the unique URL is the payment API.
An online retailer would need an API to find the current status of a shipment. In that case the retailer would ask it’s shipment partner to provide a set of specifications for HTTP communication through which the shipment provider’s server can provide the required information to the retailer’s server. This set of specifications are supposed to follow some generic protocol and industry standards, and could be called the shipment API.
Now Google Maps provides APIs to WhatsApp and Uber so that WhatsApp and Uber could use maps within their apps, these APIs require the internet so that WhatsApp or Uber could connect to Google Maps servers to download the map images they need.
When servers in a network connect to a database or other servers they require authentication and a mode of transfer for huge sets of data. The authentication parameters, the network ports which connect them and the diverse protocols they use together are called APIs.
All those forms of electronic communication which require a network of computers to function are called Network APIs.
For e.g.: There is a website which provides international exchange rates here: https://api.exchangeratesapi.io/latest
The URL itself in this case can be called the API.
Operating System APIs
A word processing software cannot do without access to keyboard, neither can a image processing software without mouse. In these both cases they need to know which keys have been pressed and where the mouse is currently positioned.
I understand that we take these inner workings for granted, but they are not to be. The company that created the Operating System has the foundational access to keyboard and mouse input, and it may only conditionally provide documentation on how to access the mouse, keyboard or display to other software companies.
A phone company may have huge restrictions on screenshots and access to microphone which others may not usually have.
For e.g.: This documentation from Microsoft shows how one can get the position of a cursor in Windows 2000. The GetCursorPos is the API.
Libraries and SDKs
SDKs (Self Development Kit) or software libraries are packaged software code which one developer can license from another developer. Happens mostly when multiple software companies work in related areas. In this case the library itself could be of thousands of lines, and it could be injected into a different software through a link. This link is simple to establish and is very useful to connect different libraries of software developed by different developers, and produce value together.
If Telegram wants to let independent developers build bots for the Telegram messenger app, it would release a Telegram SDK using which any developer can send or receive messages through Telegram from a different app. This SDK can then provide multiple APIs for sending, receiving, or deleting messages and so forth.
A mathematician could write software to calculate the Euler’s totient in a novel way and could provide a packaged software library which other developers could use without having to know how the function actually works. In this case the links to the mathematical functions provided in the software library are called the APIs.
Similarly, Java could invest millions of dollars in developing a novel way to increase memory optimisation, and license to other developers who can build better software using such APIs. Google might need such solutions to build a mobile platform. Or simply create its own using the same logic and similar parameters of communication but totally different pieces of code.
For e.g.: This open-source repository hosts prebuilt computational models on natural languages. These models can be imported to build one’s own question/answer bot. The method of import in this case is documented and is called the API.
We now have to draw a conclusion on the nature of APIs.
An API is not the software code itself, but a link from one software to another, or from one computer to another. It by itself does not provide any value.
It is a set of rules or protocol using which these types of links can be established. In most cases APIs follow global conventions so that there is free selection and diversity in the market. The API itself therefore is a very small piece of code, which might extend from a few words to at most a few lines.
I used the image of a car on jack with an exposed wheel drive as an API is just like the wheel drive, its job is to connect the car with the wheel. And we need to keep the standards uniform and open so that there is freedom and diversity in the market to choose cars and wheels!
Now probably you can decide whether APIs should be protected under IP laws. Comment below and express your opinion!
PS: I believe the current case between Google and Oracle is not only about APIs, it is found that there are otherwise thousands of lines of code Google copied while building Android.
If you liked the article please share it with your followers. If you have doubts or questions about any part of this article, please feel free to leave a comment below or ask questions directly to the author here: Ask Questions.