APIs send data when requested, but callbacks can send data when an event is triggered to the callback url. So the client doesn't need to check repeatedly, if new data is available.
A Callback API is defined by the service calling the API. (Also referred to as a Webhook or Reverse API)
e.g. When a Callback API is called, the responder must handle the request and provide a response that conforms to what the caller expects.
Here is an example of a callback API with callback url.
The callback URL will be invoked by the API method you're calling after it's done.
The callback URL can be set in the server configuration, database or passed as a parameter in the ruquest as above example.
|Client||client requests the API url to get data||callbacks call the client url to send|
|Server||API Clients dont need a running server. They can request data when they want||Callback callback need active servers. They have to be active all the time accept connections.|
|Push||APIs cannot push data to other systems||callbacks can push data to a given url|
|Invoke||On API Request||On Event Trigger|
|request||Comes into the server||Goes out to callback URL|
|New data||Check repeatedly||Pushed to callback url|
callbacks are similar to APIs with respect to providing data to the clients. They can be built within the same API server. The user needs to provide a callback url, where they need the data send.
Setting up Callback reciever
Registering the Callback url is a one time configuration activity that API user performs. The callback url from every user is different. So the API server can send data when available to different clients.
Steps to create Callback with API