New developer tools are being released daily, and at times you'll probably find yourself choosing between doing your real work and exploring new technologies.
Among these developer tools are at least 14,000 public APIs (application program interface), provided by companies to save time, directly solve developer problems or augment their popular services. While disappearing for a day or two diving into something new can be great fun, not everything immediately leads to useful results.
01. Google Maps
There may be no API more responsible for the growth in publicly available APIs than Google Maps. The search giant's geographic service is now on millions of websites and has become the de facto standard for embedding location maps. Pair its ubiquity with the rise in mobile and it becomes a necessary part of any developer's toolbox.
A basic use case is plotting places, such as local search results, as markers on a map. You might also add paths for multiple points. More advanced usage creates interactions between frontend code and the map – for example, click a search result and highlight the place on the map.
Google Maps has become a suite of APIs, but this one deserves to be called out on its own. The Google Geocoding API accepts a location name – such as an address, city, or postal code – and returns the geographic coordinates needed to plot the place on a map.
There are plenty of other options, but none rival the quality of Google results at a global scale. For one, the company starts with a parcel-level lookup, then hones the data using its Street View technology. Note that if you use the Google Geocoder, you must combine it with a Google Map.
03. IBM Watson
Best known for beating Jeopardy champions at their own game, IBM's artificial intelligence service is also available via API. The technology employed by Watson is broadly called natural language processing (NLP), and with it Big Blue provides developers access to years of research via simple RESTful calls. The company's recent acquisition of AlchemyAPI extends the suite of intelligent calculations to include visual identification.
Among Watson and AlchemyAPI's toolset are features that allow developers to determine keywords in a block of text, extract relations and other data from any text, and even recognise faces or objects in photos. If you need some intelligence in your app, you'd be silly to build the NLP and other technology on your own. Instead, focus on what your app will do with that intelligence.
From one kind of intelligence to another, FullContact provides information about the person behind an email address. From that one piece of data you can determine full name, age, location, gender and social network accounts. The service also accepts as input Twitter username, Facebook ID, or phone number in place of email address. You won't find a trove of data for every single email address, but in many cases you'll find enough to determine the user's company and their social influence.
The service is especially useful for sales, which is why you'll also find a FullContact service for company data, a business card reader, and even a disposable email identifier. Newcomer Clearbit is making progress, but FullContact is well-funded and has a four-year head start.
It's hard to argue with the immediacy of Twitter, which is why every developer should consider how to incorporate the service. Depending on your audience, Twitter may be a great form of identity, speeding up or eliminating a registration process (see Stormpath).
For almost everyone, the Twitter API can help expand your reach by enabling your users to share your application with their followers. Of course, your app can only tweet with their permission, but having their credentials can speed up the process when a user is ready to share. Some may remember a series of Twitter guidelines that were widely interpreted as unfriendly to developers. The company has grabbed control of its user experience, but its reach cannot be denied. Its user base makes it an API to know.
Speaking of services with a lot of users, you'd be crazy not to give Facebook integration a shot. Again, you need to know that your audience frequents Facebook, but with over one billion active users, there's a good chance. You can use Facebook for social login (see Stormpath), sharing and app monetisation.
The company has recently restricted what data is available to applications, but still left plenty of room for a rich developer ecosystem. Further to this, Facebook has its own natural language platform, Wit.ai, and mobile backend, Parse. There's plenty to check out in the Facebook API.
If you're looking to perform any kind of registration on your site, don't reinvent the wheel. Stormpath is a secure user management API with built-in support for Facebook login (and a few others).
If you're using a social network for identity only, it makes sense to build on top of Stormpath rather than keeping up with the quickly changing social API landscape. It maintains user profiles, allows for authorisation roles, and handles forgotten password flow.
Stormpath supports Facebook, Google, LinkedIn and GitHub. For Twitter support (and about 100 others), consider OAuth.io, which partners with Stormpath for its non-login features.
08. Amazon S3
When your app grows past the prototype stage, you'll need storage options beyond your local machine. You may surpass the capacity of shared hosting or even dedicated drives. In certain cloud hosting scenarios, you won't even have permanent storage.
For a reliable, scalable file system, you need an object storage service like Amazon S3, ('simple storage solution'). This offers handy features, including letting users upload directly to your storage bucket, and options for replication and versioning of files. Amazon is the leader, but some of its competitors have S3-compatible services. If you aren't using Amazon for cloud computing, check with your provider, because your app may run more efficiently if it's using object storage within the same data centre.
Where you store your files is different from where your users' files may reside. Over 400 million users sync files across Dropbox's servers, making it an excellent API for file access. With users changing devices, it may be more likely that a file exists in Dropbox than on the computer or other device on which they're using your app – bypass file upload by connecting to their Dropbox account.
Developers have built image gallery services, static site hosting and simple alternatives to file upload using Dropbox. For apps with an enterprise focus, consider Dropbox for Business or the company's rival Box.
10. Google Apps
With millions of organisations using Google Apps, you may find yourself helping out non-technical co-workers who use them in their workflow. For example, when new items are added to a spreadsheet, perhaps you send an email or add someone to your beta version. Many of these processes can be automated using tools like Zapier or IFTTT. For others, you can integrate Google Apps into your company's systems using this API.
If the past few years have shown us anything, it's that if you want to collect payments, you need to use Stripe. The startup has proven that clear, friendly and interactive documentation leads to incredible levels of adoption.
PayPal's Braintree has made excellent progress, but if you've already selected Stripe, you might as well take a half day (or less) to learn its API. At its heart, Stripe has a simple use case: accept payments from customers. The API opens up many more possibilities. Using its webhooks, you'll be able to automate communications and customer onboarding (and off-boarding). Goodbye manual tasks!
Often uttered in the same breath as Stripe, Twilio is another developer favourite. The telecommunications company provides a simple, well-documented API for voice and text. Send or receive phone calls, SMS text messages, MMS images and more. You can build with Twilio as the basis for your app or as a valuable addition (such as two-factor authentication).
If your team is larger than just a handful of people, those sending marketing email are unlikely to be technical. It's a controversial thing to say to developers, but you really should let marketers choose their own tools. Millions have chosen MailChimp, which is why it's an API you should know, too.
No matter what marketing email API you support, look in the docs for list management features and webhooks (see boxout opposite) to provide real-time alerts for as much functionality as possible. At a minimum expect notifications for unsubscribes, so you can build clean list management into your applications.
Transactional email is different from marketing email in that it is typically one email sent at a time to a single recipient. The message is highly targeted, with common examples being receipts, password resets, account confirmations and social notifications.
SendGrid was the first to bring transactional email to developers. Its offering has since expanded beyond email delivery to include real-time email data (via webhook), triggered responses, and even some marketing features. At the very least, any app with user accounts or ecommerce will need to send transactional email. SendGrid has plenty of competitors, but the most well-known is likely MailChimp's Mandrill.
Collaboration has always been important within organisations, but increasingly distributed workforces are pushing the toolsets virtual. Slack, net's Game Changer of the Year 2015, has become the popular choice for company chat (as well as knowledge and file-sharing).
Whatever tool is at the centre of your collaboration, you want to be able to write code against it. Slack has a handful of built-in integrations, such as GitHub and Travis, but also provides an API for your own applications. You can listen for real-time events, access channel history and files, and post messages with bots. You can even incorporate build and deploy workflow into Slack so everyone is on the same page. HipChat is a competitor with similar features, but current momentum is in Slack's favour.
A dev's best friend
These and other APIs will help you supercharge your abilities. With repetitive problems taken care of, you'll be free to focus on the part of your job that only you can perform.
You may not find yourself using all 15 of these right away, but take the time to have at least some familiarity with the APIs in this article and you'll be ready when your next project requires one of the 15, or a similar service. Read some documentation, try out some code, and see what's possible.
For a printable cheat sheet and more resources to get started, visit everydeveloper.com/15apis.
This article was originally published in issue 274 of net magazine.