An API (Application Programming Interface) allows different systems to talk to each other and share data. APIs return data on request. For instance, the Google Maps API provides map data to applications. Programmers use APIs in their code to ensure the app or website they are building provides the correct data to the correct user. We will touch on these sorts of APIs in this article.
If you simply want to build an API that lets a user download data, there are light-weight services that let you do this, including CSV Getter. This involves creating a GET endpoint. Tools like this are useful if you have a feed of non-sensitive data that needs to be available from a URL without requiring any coding or hiring an engineer.
Below is an example of an API that returns some simple, non-confidential, JSON data. Give it a try below:
https://api.csvgetter.com/P8hY6UcZ6hPcTZWGfsv3
// copy & paste into a new tab or an app like Postman!
This URL works using a GET request, as its function is to "get" the product data. An internet browser uses GET requests when you enter a URL because the browser needs to receive the HTML code needed to show the website.
Essentially, GET requests will ask the API to retrieve data from a database - be it website or raw data.
The above API endpoint is an example of raw data and is very simple to build. The data is non-confidential so no authentication is needed. An API endpoint like this could be used to populate a public results page or status table. This functionality can be produced in about 5 minutes with no-code tools like CSV Getter.
But there are other types of requests, as we will touch on below.
GET allows us to get data, but what if we would like to add to, update, or remove data in our database? This is where we need either POST, PUT, or DELETE requests, which will not receive data but will modify it.
POST: Creates a new data entry in your database.
PUT: Updates a data entry in your database
DELETE: Deletes a data entry in your database.
An API like this will need to connect to some sort of data source. A POST or PUT request needs a request "body" - formatted data compatible with the API. Typically, since POST requests involve data being deposited into a database, they will require an authenticated request. Proper POST, PUT, DELETE functionality could take an experienced programmer anywhere between a couple of hours to a few days depending on the nature of the authentication. After which, they will need to test the newly built API for any possible weak spots as to not compromise the database. If the data is extremely sensitive, this process should be incredibly thorough. This is where a proper Authentication method needs to be considered.
Some data you don't want to have open for all of the world to see, particularly with the amount of nasty bots and crawlers out there. You can build an API so that the user can only send or receive data if they provide the correct token. A bearer token is a good example of this, and we have written a guide to give you an idea of how it works.
You can set up a basic static bearer token in apps like CSV Getter, to get the core authentication in place. Again, with a basic requirement like this the process takes no longer than 5 minutes. However, with real sensitive data, the process is more involved and a complex interchange between Access and Refresh tokens is required. This is the basics of OAuth. It is a complex system which requires comprehensive building. In the next paragraph, we will touch on what it is and why it takes a long time to build.
For sensitive data, more sophisticated authentication methods are necessary. OAuth is a prime example of such an advanced system. Unlike basic token systems, OAuth involves a multi-step process with the exchange of Access and Refresh tokens to ensure secure and temporary access to resources. This complexity requires thorough implementation and understanding, making it significantly more challenging and time-consuming to set up than simpler authentication methods. However, this additional complexity is crucial for protecting highly sensitive information and maintaining robust security standards.
Building an API varies in complexity based on the requirements and sensitivity of the data involved. Simple, non-sensitive APIs can be quickly created with no-code tools, while APIs dealing with sensitive information necessitate more advanced authentication methods like OAuth. Understanding the level of security needed for your data is crucial in choosing the right approach to API development.
Overall, a comprehensive API is the skeleton of a good website or app. This is something that should be built properly to ensure a good user experience with proper data security, particularly if whatever you are building is market ready. The CSV upload feature of our app is designed for those working on a lighter use case. Examples include creating a quick and easy feed of non-sensitive data, validating a proof of concept with simple endpoints, or simply using as an educational tool. We focus solely on GET endpoints. We provide basic bearer authentication and allow you to update the data source easily yourself by re-uploading a CSV source file or connecting to Airtable or Notion, eliminating the need for POST, PUT, and DELETE.
We believe certain use-cases require in keeping it simple.
You can trial our product by uploading a CSV below.
Build a CSV API in a few clicks with CSV Getter