Top 20 APIs to solve everyday problems
Tags: api, tutorial, programming, productivity
Published: 2022-11-10 19:39:31

APIs are an essential part of many developers' and software engineers' skill sets. They are used for front-end and web application development as well as software engineering and even data science. Plenty of fields rely on APIs to allow software to function harmoniously. As a result, APIs are a great way to build dynamic apps or demonstrate competency to a prospective employer. Getting started with an API relevant to your field or even your personal interests can serve as a great way to get real-world experience. 

This article aims to connect you with an API or even a suite of APIs that resonate with you. We'll provide an overview for **20 APIs**, grouped by function. 

We'll cover:
* [What is an API?](#what)
* [An API for every use case](#every)
  * [Dive into machine learning applications](#ML)
  * [Build a complete e-commerce solution](#ecommerce)
  * [Own your developer workspace](#workspace)
  * [Take the reins for your finances and investments](#finance)
  * [Tap into your video metrics](#video)  
  * [Get social](#social)
  * [Take time off](#vacation)
* [Get started with API integration today](#integration)
* [Wrap up and next steps](#wrap)

<a name ="what"></a>

## What is an API?

APIs, or Application Programming Interfaces, are the intermediary between two different software systems. They enable communication through a set of functional rules called protocols. Requests sent from one system to another via an API are **calls**. The client system, or API client, makes the request, and the receiving system, or API server, responds with the corresponding resource or action.

![APIs](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/arf9zlmvrpfqecrcyidi.png)

### Basic API terminology

There are several terms to be familiar with when covering different APIs.

* **API endpoint**: API endpoints are the URLs that are used to access the functional permissions of an API. Here are two example endpoints from the Freshbooks API for bookkeeping:
  * Create and list clients: `https://api.freshbooks.com/accounting/account/{ACCOUNT_ID}/users/clients`
  * Update a client: `https://api.freshbooks.com/accounting/account/{ACCOUNT_ID}/users/clients/{CLIENT_ID}`

* **API resources**: API resources are the data retrieved by the API in response to a request. For example, the Freshbooks API can track the addresses of users. Just a few of the resources that the API can provide are: `street_no`, `zip`, and `state`.

* **API keys**: Unique identifiers that authenticate your request so the API knows it is valid. This sort of security is necessary for the API to differentiate between legitimate and illegitimate requests. 

* **API calls**: The request submitted by the client to the API. API calls typically involve an endpoint, an HTTP request verb, a header, and an API key.

APIs have varying degrees of access as well. These types inform confidentiality and release policy standards for APIs.
* **Private**: These are organization-specific APIs that are exclusively used for internal purposes.
* **Partner**: API access can be shared with business partners or other approved parties; partner APIs are used to enforce quality control standards.
* **Public**: Also known as "Open APIs," they are similar to open-source software; public APIs are available for use by the general public.

### API authentication

![API authentication](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dvv26oefku9v7d85y26o.png)

Most APIs require some level of authentication to differentiate legitimate requests from fake ones. Getting started with an API will typically involve signing up for a developer account through whatever service offers the API. This is usually a fairly simple process in which you provide a justification as to what you will use the API for; the developers need to understand what permissions your application will require. The specifics of retrieving developer credentials for any API vary, but most are relatively straightforward.

<a name ="every"></a>

## An API for every use case

Now, we'll break down 20 APIs and provide an overview of their functions and what you can expect to get out of them.

<a name ="ML"></a>

### Dive into machine learning applications 

![machine learning](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rty2s6fxmskmuttyqr6d.png)

Each of these APIs is designed specifically for analyzing content and performing natural language processing requests. They facilitate sophisticated AI applications without heavy local machine learning computation.

#### 1. Microsoft Computer Vision APIs

Microsoft Azure Cognitive Services launched their Microsoft Computer Vision APIs as a cloud-based offering for analyzing images and video content. According to Microsoft, the APIs can:
* Analyze video in real-time
* Automate text extraction
* Boost content discoverability

> **Beginner friendly**: No machine learning expertise is required.

[Microsoft's documentation](https://learn.microsoft.com/en-us/azure/cognitive-services/computer-vision) breaks the Computer Vision API suite into four main categories:
* Optical character recognition: extract text from images
* Image analysis
* Face: Facial recognition
* Spatial analysis

A couple of endpoints to note for Optical Character Recognition are:
* Call the Read API and perform a Read operation on both handwritten and printed images: `https://{endpoint}/vision/v3.0-preview/read/analyze[?language]`
* Retrieve the result of a Read operation as a character stream: `https://{endpoint}/vision/v3.0-preview/read/analyzeResults/{operationId}`

#### 2. Cloudmersive Natural Language Processing API

**Cloudmersive** is a platform that hosts APIs for a range of deep learning and machine learning applications. In addition to their Natural Language Processing (NLP) API, they have image recognition, deep learning, and more. Cloudmersive's NLP API is a sophisticated tool capable of many different natural language functions:
* Language detection
* Rephrasing
* Segmentation
* Language translation
* Part of speech tagging

A couple of noteworthy features and endpoints are:
* Analyze if text is positive, negative, or neutral in tone: `POST /nlp-v2/analytics/sentiment`
* Detect profanity: `POST /nlp-v2/analytics/profanity`
* Rephrase a sentence up to 10 different ways: `POST /nlp-v2/rephrase/rephrase/eng/by-sentence`


#### 3. OpenAI API

OpenAI's Natural Language Processing API is based on one of the most well-known and sophisticated AI's, **GPT-3**. It is capable of a wide variety of NLP tasks as well as "*Codex*," a technology that interprets text and writes it as code. Open AI's API is being used at businesses like IBM, Salesforce, Cisco, and Intel. 

The OpenAI API processes text in chunks called tokens. These tokens may be words or just groups of characters. Many tokens start with one whitespace.

The **completion** endpoint takes an unfinished statement as a prompt and returns a prediction of the completed text.

This endpoint takes an HTTP `POST` request and looks like this:
 
`https://api.openai.com/v1/completions`

> If you're interested in learning more about machine learning APIs or simply curious about how to get more out of NLP APIs the course Using OpenAI API for Natural Language Processing in Python is for you.

<a name ="ecommerce"></a>

### Build a complete e-commerce solution 

![ecommerce](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c9ek60tf39bzglolamr5.png)

From point of sale, to bookkeeping, to shipping, these APIs help create your own e-commerce application to fully realize your side-hustle dreams.


#### 4. Square APIs 

Square provides a whole host of various APIs capable of almost anything you'd want out of a point of sale (POS) system. The Square suite of APIs is built to cover almost all essential business workflows. They have services for accepting and refunding payments, creating and tracking orders, managing a product catalog, and much more. 

To get access to all of the Square APIs you'll need to create a developer account. After you've created an account, you can access Square's Developer Dashboard and test API requests for any of the services that they offer.

Square offers SDKs for: Java, .NET, Node.js, PHP, Python, and Ruby

A couple of relevant APIs for side-hustle businesses are:
* Invoice API:
  * Create an invoice: `https://connect.squareupsandbox.com/v2/invoices`
* Order API:
  * Retrieve one or multiple orders with their order IDs: `https://connect.squareupsandbox.com/v2/orders/{order_id}`

#### 5. Freshbooks API

Freshbooks is an accounting service that streamlines expense tracking, inventory management, invoicing, and payments. With its software as a service (SaaS) model, Freshbooks mainly targets small to medium-sized businesses. If you're planning on starting a business or just want to keep track of your side-hustle, having a way to monitor expenses and store payment records is essential. 

The Freshbooks API is a wonderful tool for automating these bookkeeping tasks. In addition to the example endpoints in the introduction, the API can:
* Retrieve a payment: `https://api.freshbooks.com/accounting/account/{accountid}/payments/payments/{payment_id}`
* Calculate the time spent working for a client: `GET https://api.freshbooks.com/timetracking/business/{business_id}/time_entries`


#### 6. Shippo API

Shippo is a full shipping solution that provides small businesses with all the tools necessary to ship, track, manage addresses, etc. The Shippo API can create, update, and retrieve:
* Addresses
* Parcels
* Shipments
* Shipment rates
* Transactions
* Shipment tracking

The core of the Shippo API is the Shipments function. Shipments are objects that include information about the "to" and "from" addresses and the object shipped.
* Create a shipment: `https://api.goshippo.com/shipments/`
* Retrieve a shipment: `https://api.goshippo.com/shipments/{shipment_object_id}`

Refer to the [Shippo documentation](https://goshippo.com/docs/reference) to explore more about the API's capabilities.

<a name ="workspace"></a>

### Own your developer workspace 

![developer workspace](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kn4ijd01gxsnhdp038vu.png)

These APIs are centered around connecting you to your workspace. They'll give you even more control through clever automations and custom workflows. We'll cover the basics of the GitHub, Slack, and Dropbox APIs. 

#### 7. GitHub API

GitHub offers a [Rest API](https://www.educative.io/blog/what-are-rest-apis?eid=5082902844932096) that enables developers to automate repetitive tasks and achieve new levels of functionality across their projects and in their repositories. The GitHub API pulls information directly from GitHub and returns it in the **JSON** format. Additionally, multiple developers working on the same project can automatically update pull requests and commits on branches of repositories.

Just a few of the functionalities the API is capable of are:
* Code management
* Collaboration
* Deployment

Operations you may find useful are:
* **Create a repository**: `POST /orgs/{org}/repos`
* **Create** and **update** **pull requests**
  * Create: `POST /repos/{owner}/{repo}/pulls`
  * Update: `PATCH /repos/{owner}/{repo}/pulls/{pull_number}`
* **Create deployments** and **list their statuses**
  * Create: `POST /repos/{owner}/{repo}/deployments`
  * List: `GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses`


#### 8. Slack API

The Slack API opens new doors to make the collaboration and workspace tool even more effective. It can automate repetitive tasks like approvals and feedback, and it even supports custom workflows. You can even integrate functionality from external applications through the API. 

The [Slack documentation](https://api.slack.com/) even has a section for how to build your own Slack apps that function in their web app using their built-in toolkit, [Block Kit](https://api.slack.com/block-kit).

A couple of common `https://slack.com/api/` endpoints are:
* Send a message: `chat.postMessage`
* Access conversation history: `conversations.history`
* List files for a particular team, channel, or user: `files.list`

#### 9. Dropbox API

Dropbox is a cloud storage company that offers a comprehensive suite of file management services including: **editing**, **sharing**, and **remote access**. The Dropbox API can help manage these services and increase productivity by:
* Accessing custom workflows
* Authorizing admin functionality privileges
* Working directly with dropbox files

The newly retooled Dropbox API v2 even includes advanced functionality like full-text search, thumbnails, and sharing. The **Chooser** and the **Saver** components allow developers to select and save content both to and from Dropbox. You can even automate notifications from Dropbox with webhooks that alert you whenever a change is made to a file you are working on.

Some common endpoints to be familiar with are:
* Download a file from a user's dropbox: `https://content.dropboxapi.com/2/files/download`
* Create a new file with contents (up to 150MB) provided in the request: `https://content.dropboxapi.com/2/files/upload`
* Create a shared link with custom settings: `https://api.dropboxapi.com/2/sharing/create_shared_link_with_settings`

<a name ="finance"></a>

### Control your finances and investments 

![Investment API](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uytgb3rx1kffduj7b8kg.png)

These APIs work to communicate stock market trends, keep tabs on cryptocurrencies, and automate payments across borders and currencies.

#### 10. Yahoo Finance API

The [YH Finance API](https://finance.yahoo.com/) is a free tool that enables you to pull stock market data directly from [Yahoo Finance](https://finance.yahoo.com/). It can retrieve both real-time information as well as historical data, so you can accurately examine financial security.

The API is fairly small compared to others on this list and does not feature the most comprehensive documentation. It features a total of **11 endpoints**. Nine return information related to securities, and the other two show market trends.

![Yahoo API](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f1toh5e5bwtixm8ouhkg.png)

All of the endpoints are `GET` requests. Some notable endpoints are:
* Real-time quote data: `https://yfapi.net/v6/finance/quote`
* Get the option chain for a specific symbol: `https://yfapi.net/y7/finance/options/symbol`
* Retrieve stock history for a maximum of 10 symbols: `https://yfapi.net/v8/finance/spark`

#### 11. Wise API

Wise is a London-based service for global bank accounts. It currently offers seamless transfer between 50 different currencies. Wise's goal is to connect international customers and businesses by alleviating the reliance on banks and their hidden exchange rate markups. The platform is built around streamlining the currency exchange process and creating new opportunities for fledgling businesses and world travelers.

Wise offers several different APIs in their developer suite:
* Payouts
* Banks
* Affiliates
* Receive money
* Open banking

The API relevant to most users is **Payouts**, as it allows users to automate their own Wise account. The Payouts API can automate the entire process of sending and receiving money. It includes endpoints that:
* `GET` profile information: `https://api.transferwise.com/v3/profiles/{profileId}/subscriptions/{id}` 
* Add a recipient of funds with an accompanying IBAN number or account code: `https://api.sandbox.transferwise.tech/v1/profiles` 
* Calculate a quote that includes the exchange rate and fees: `https://api.sandbox.transferwise.tech/v3/profiles/{profileId}/quotes` 
* Transfer funds: `https://api.sandbox.transferwise.tech/v1/transfers` 

> **Note**: the above endpoints use the `POST` request unless specifically noted. 


#### 12. CoinAPI

CoinAPI is a service that compiles all cryptocurrency market data into a one-stop-solution. The API itself is an HTTP Restful API that returns data in `JSON`, `XML`, or `CSV` formats. They also offer software development kits on GitHub in almost any language you require. 

CoinAPI offers several different API services, but the one popular with most users is the **Market Data API**. This API provides high quality real-time and historical data that is standardized across different exchanges. 

> **Hands on**: If you want to try out the API but don't want to spend the time building your own web app, Coin offers a **sandbox environment**. Here you can familiarize yourself with a sample of data from a few market sources. 

A couple of endpoints to take note of are:
* `GET` a list of all cryptocurrency assets (or a specific asset with `{asset_id}`): `/v1/assets`
* `GET` the exchange rate between a pair of assets at a specified or current time: `/v1/exchangerate/{asset_id_base}/{asset_id_quote}?time={time}`
* `GET` OHLCV (**open, high, low, close, volume**) data for a symbol over a period of time: `/v1/ohlcv/periods`

<a name ="video"></a>

### Integrate video playback and tap into metrics 

![YouTube](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mzyal96hwzu7z4ot6h59.png)

Well-implemented videos work wonders at conveying pertinent information to viewers or potential customers. Videos are information-dense, high-value content that can bolster legitimacy and help increase the time that visitors spend on your website. These APIs enable different types of playback functionality, content management, and metadata tracking.


#### 13. YouTube Data API

The most widely used video playback service in the world, YouTube, offers multiple APIs as a part of its Google Developer Suite. As you might expect with a Google product, they are immensely functional and incredibly well-documented. Along with providing YouTube functionality to your own app or web page, they can also search for videos and channels and provide valuable statistics pertaining to a channel or video. 

This entry focuses on the YouTube Data API, which is great for accessing information like channel activity, comments and ratings, or even search results. If you want to get some insight into your own video metrics, the [Youtube Data API documentation](https://developers.google.com/youtube/v3) will help get you started. 

> You'll need to obtain OAuth2.0 authentication credentials and create a project through Google Cloud.

Some important endpoints are:
* Search for a video, channel, or playlist that matches parameters in the API request: `GET https://www.googleapis.com/youtube/v3/search`
* Retrieve a list of videos: `GET https://www.googleapis.com/youtube/v3/videos`
* Retrieve a list of channels that match request parameters: `GET https://www.googleapis.com/youtube/v3/channels`

#### 14. Vimeo API

The Vimeo API provides a slightly different experience than YouTube. As a service, Vimeo serves a smaller, more refined community than YouTube, and its API reflects this. It can manage content, track metadata, and customize the playback experience. The API is simpler, but the core functionality remains sophisticated and useful.

> Vimeo offers libraries for PHP, Python, and Node.js.

Vimeo uses the open standard `oEmbed` to insert Vimeo videos into external websites. The endpoint to know for placing videos with `oEmbed` is `GET https://vimeo.com/api/oembed.json?url={video_url}`.

Some other endpoints to note are:
* Search for videos related to certain request parameters: `https://vimeo.com/api/videos`
* Create and manage groups: `https://vimeo.com/api/groups`
* Manage subscriptions: `https://vimeo.com/api/users/{user_id}/channels/{channel_id}`
  * Get a list of all the subscribers of a channel: `https://vimeo.com/api/channels/{channel_id}/users`

#### 15. Dailymotion Data API

Much like YouTube and Vimeo, Dailymotion is a service that facilitates video uploads and video playback, as well as channels and playlists. The Dailymotion API supports HTTP requests `GET`, `PUT`, and `DELETE`, and it returns information in a `JSON` format. They offer complete SDKs in:
* JavaScript
* PHP
* Python

Dailymotion offers other solutions for efficiently embedding videos with Swift and Android.

You can embed the video player with a single-line script that can be placed anywhere in the `<body>` tags of your web application. 

An example of this script, taken from the [Dailymotion documentation](https://developers.dailymotion.com/), is:

<script src="https://geo.dailymotion.com/player/{Player ID}.js" data-video="x84sh87"></script>

Specifically focusing on the Dailymotion Data API, you can create comprehensive, custom reports that reflect video metrics. Dailymotion was built with **object-oriented design**, so each object (video, user, playlist, etc.) has hierarchical relationships. 

Some endpoints to be aware of:
* `GET` a specific channel: `https://api.dailymotion.com/channel/{channel_id}`
* `GET` a video or list of videos: `https://api.dailymotion.com/video/{video_id}`
* `GET` the information related to a specific player:  `https://api.dailymotion.com/player/{player_id}`

<a name ="social"></a>

### Get social 

![Social APIs](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vkliej9ypkozsftcjeij.png)

These two APIs are centered around expanding the functionality of the well-known social media forum Reddit and the blog-hosting service Blogger. Both APIs can provide useful automations and custom applications that improve or expand your social spaces.

#### 16. Reddit API

Many developers create useful tools, like bots, with the Reddit API. If you're ever on Reddit, chances are you've come across a comment bot. These applications scrape comment data on certain domains and respond accordingly. Features like this are especially useful when it comes to moderation, community guidelines, and notifications sent to new posts.

> **Machine learning**: Because of its vast amounts of text, Reddit is often used to train machine learning programs.

In addition to using the API directly, there is also a wrapper that can be imported into Python.

Some endpoints worth noting:
* Retrieve 25 of the most recent posts from a particular subreddit: `https://oauth.reddit.com/r/{subreddit}/new`
* Get the comment thread for a particular post: `https://oauth.reddit.com/r/{subreddit}/comments/{post}`
* Comment on a post: `https://oauth.reddit.com/api/comment`

#### 17. Blogger API

Blogger is a service that allows anyone to own and operate their own blog. Their API provides convenient functionalities:
* Create, update, and delete blog posts
* Retrieve page view analytics

It operates on five main resources:
* Blogs
* Posts
* Comments
* Pages
* Users

Blogger is a REST API that returns data in the `JSON` format. Requests are made with standard REST HTTP mappings such as: `GET`, `PUT`, `DELETE`, `POST`, and `PATCH`.

Some common endpoints are:
* `POST` a new page: `https://blogger.googleapis.com/v3/blogs/{blogId}/pages`
* `POST` a new blog post: `https://blogger.googleapis.com/v3/blogs/{blogId}/posts`
* `GET` a user's information: `https://www.googleapis.com/blogger/v3/users/userId`

<a name ="vacation"></a>

### Take time off 

![Weather APIs](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/invn4ja7mnpx3pfzyt2g.png)

These APIs are centered around applications and services you may use when planning a trip or engaging in leisure activities. We'll cover the AccuWeather APIs, the Ticketmaster API, and the Amadeus API.

#### 18. AccuWeather APIs

AccuWeather is a weather-forecasting and reporting technology. There are two main types of AccuWeather APIs: the **Core weather API** and the **MinuteCast API**. The Core weather API provides endpoints for a range of functions. Most notable are daily and hourly weather forecasts and current conditions. The MinuteCast API enables users to retrieve a detailed 120-minute precipitation forecast in a given area. 

The Core weather API is further extruded into more specific APIs.
* Locations API
* Forecast API
* Current Conditions API
* Indices API
* Weather Alarms API
* Alerts API
* Imagery API (Satellite imagery)
* Tropical API (monitors tropical storms)
* Translations (multiple language translations)

Outside of meteorology or extreme weather conditions and alerts, the most useful functions of AccuWeather are the Locations, Forecast, and Current Conditions APIs.

Example endpoints from these are:
* Return cities matching the search parameters: `http://dataservice.accuweather.com/locations/v1/cities/search`
* Return five days of daily forecasts for a given location: `http://dataservice.accuweather.com/forecasts/v1/daily/5day/{locationKey}`
* Return the current conditions for a given location: `http://dataservice.accuweather.com/currentconditions/v1/{locationKey}`

#### 19. Ticketmaster API

Ticketmaster is the most widely used events ticketing system globally. They offer several different APIs:
* Discovery API
* Partner API
* Inventory Status API
* International Discovery API
* Season Ticketing API
* Presence API (for venues and ticket scanning)

The most relevant APIs for general consumers are the Discovery API and the Inventory Status API.

Some endpoints for the Discovery API are:
* `GET` event details: `https://app.ticketmaster.com/discovery/v2/events/{event_id}`
* `GET` venue details `https://app.ticketmaster.com/discovery/v2/venues/{venue_id}`
* `GET` search a list of venues according to request parameters: `https://app.ticketmaster.com/discovery/v2/venues`

The Inventory Status API has only one endpoint:
* Availability: `https://app.ticketmaster.com/inventory-status/v1/availability`

#### 20. Amadeus APIs

Amadeus is a trip-planning technology that aims to streamline travel. They offer two tiers of APIs, self-service and enterprise. The self-service APIs are free and intended to be for personal travel assistance. In the self-service tier, there are four overarching categories of APIs that get broken down even further. 

There are far too many APIs to list outright, so we'll include those most relevant to planning your own trips.
* **Air APIs**
  * Flight Offers Search
  * Flight Create Orders
* **Hotel APIs**
  * Hotel Search
  * Hotel Booking
* **Destination Content APIs**
  * Points of Interest
  * Tours and Activities
* **Trip APIs** (these are intended for travel agents and advertising)
  * Trip Purpose Prediction
  * Travel Recommendations

> **Wander**: The [Amadeus developer documentation](https://developers.amadeus.com/) houses all these APIs and more if you want to explore the full functionality of their API suite.

The endpoints you'll need to find and book a flight are:
* Search for flights: `https://test.api.amadeus.com/v2/shopping/flight-offers`
* Search for airports and cities: `https://test.api.amadeus.com/v1/reference-data/locations`
* Create a booking for a particular flight order: `test.api.amadeus.com/v1/booking/flight-orders`

<a name ="integration"></a>

## Get started with API integration today 

![Get started with APIs](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4g941o2rfdfmb5o2j52e.png)

Whether you're a fresh developer or a seasoned API integrator, we hope you learned something about these APIs. They are all incredibly deep technologies that, with a little creativity, can be incorporated into new and brilliant applications. If you want guided instruction, we offer a **unique course for each of the APIs mentioned** in this article.  

Activate your [free trial](https://www.educative.io/trial?eid=5082902844932096) to get started with any of these APIs today.

*Happy learning!*

### Continue reading about APIs on Educative
* [20 API interview questions and answers to ace the interview](https://www.educative.io/blog/api-interview-questions?eid=5082902844932096)
* [3 Features beginner devs overlook when building APIs](https://www.educative.io/blog/three-overlooked-api-features?eid=5082902844932096)
* [How learning a company's API helps you in your interview](https://www.educative.io/blog/learning-company-api?eid=5082902844932096)

### Start a discussion
What other APIs do you love using? Was this article helpful? Let us know in the comments below!