An application program interface is code that allows two software programs to communicate with each other. An API defines the correct way for a developer to request services from an operating system or other application and expose data within different contexts and across multiple channels.
This is the way that online platforms give outside applications ways to interact platform. You can read things in that platform, you can post things to that platform etc.
The issue with these online platforms, they want to give access to outside applications but they don’t want to give too much information. They don’t want outside application to know what internal databases run, what programming languages are used.
Think about an application which lets you tweet about something using a button. That application sends request to tweeter using api provided by tweeter. Tweeter receives the api request, does required backend manipulations and tweets it to your tweeter feed. That’s a basic idea of what an Api is. It allows these external applications to be able to read and write.
Whenever you are dealing with apis it is important to understand there is not one standard api system. When you are using facebook, facebook has its own way of dealing with apis. Similarly Tweeter, Amazon have different ways of dealing with apis.
For the authentication, they generally require to sign up to use api then give you authentication credentials for you application be able to connect to their api. Big platforms publishes great api documentation that defines the ways of integration to a developer.
When we are talking about apis,terms of service is the most important thing to consider. If the platform providing the api decice to cut off the api there is limited things you could do about that.
This is the most important thing you should keep in mind dealing with apis.
If there is not ready to use api or platform announced to cut off the published api you may consider using Robotic Process Automation which is another topic to deep dive into.