Codementor Events

Contact APIs - Review and Usage

Published Dec 18, 2017Last updated Dec 19, 2017

Contact API? :thinking_face: Can I eat it?

I grew up in a third world country. It’s not that it was rural or primitive or anything like that, among other things it just meant that public infrastructure was not yet what it could be and public services were less than ideal. Registering a car is a schlep, renewing any sort of document issued by the state means taking time off work to maybe get it done.

My world changed and I was amazed while working for a client in Norway. I was tasked to gather information about cars in real time. Immediately my mind started racing, contemplating extravagant scrapers and some magic to get this done (keep in mind, to me, this is a new creation and getting such information will be difficult from my historical knowledge). A few second later in that same conversation, the CTO sent me a link to a third party API with unimaginable instructions: “Just add the registration number in the request body and it will return everything you need”. Just so you know I’m not kidding, here is a link to the API (it is in swedish though).

The point I’m trying to make is that the services we as software developers have access to nowadays are just remarkable. Very rarely do we come across a service we need that has not yet been built, and if we can't find it, it might just be that ever elusive unicorn we've been looking for. However, before I digress, another type of service that I recently came across is contact APIs. To illustrate the point, from my upbringing, I am used to picking up a really thick book printed on thin recycled paper and looking up the address or number for somebody. Thus to clarify, a contact API is a service that provides you with an endpoint, to this endpoint you pass some arbitrary information about a person and the service responds to you with some previously unknown contact information about a person, ranging from personal and work email addresses to telephone numbers and even social media profiles. Some providers to check out for this type of service include FullContact, TowerData and Lusha Contacts API.

Needless to say, the idea of a contact API made my mind soar with possibilities. Afterall, information is power. The thing that caught my attention the most was the ability to now describe a hypothetical user of some hypothetical app more clearly, fill in the blanks based on what we require on user signup. In my experience, just as the user experience should be simple, elegant and easy to navigate, the opposite is true of data; data should be detailed and rich, descriptive and specific and organized. Now a user entity could receive the same kind of artistic touches. Imagine being able to introduce users to each other based on their dialing code. Or personalize the content you present to them based on location or any other random piece of information you receive from that one magic API call. Or simple congratulate them automatically on their birthday. The way that you can enhance your user’s experience is endless.

On the flip side, and I am going to be lame and quote one of the most over-quoted lines ever, “With great power comes great responsibility.” It is quite obvious that you can seriously misuse and become an utter nuisance to your users if you do not use the information you are gathering responsibly. A principle I always employ to gauge what the right thing to do with such information is to ask the question: “If I was a user of this app, what kind of usage would I explicitly agree to without being asked?” If you answer this question honestly I believe you’ll have a working frame of responsible usage to work from. I found this article quite revealing on the matter as well.

Ultimately, if you are reading this, you likely enjoy building truly useful software. Software that serves a purpose and that people will come back to time and time again because they love interacting with it and in some way, it makes their life better. Each new possibility that you add to your toolkit can make an already existing project even better and just a little ahead of your competition, and make your user experience among the best in the world.

Discover and read more posts from Martin Gouws
get started