Let's point-out key points :
- They are publicly documented & accessible, anyone can access there end-points.
- Mostly these services are premium after some usage limit.
- There servers have various cost involved in terms of bandwidth,memory,space,etc.
- They may be dealing with sensitive/copyright data.
Now, just think of the losses involved if someone tries to do something malicious. It could result in huge loss to either service provider or the service client.
So, services use different methods to restrict/safeguard usage i.e no unauthorised personal is able to access them.
- unique_end_point_name(Application ID)
- api_key(API Key)
- api_secret(API Secret)
is one popular way to do this and transfers control to service to customer.
So, customer is only responsible for any cost involved for service.
API Key is shared across the end users, so the customer only approves requests from those sources and then uses his own API secret to use service.