Over-fetching happens by an API when a server sends data that is not required by the client. The API is defined in advance and a client only needs to follow the API documentation. The drawback of this is that bandwidth is wasted. Let's take a look at an example.
You are trying to make use of a GitHub user's REST API to create a user tile display. The main intention here is to look at their followers, their public gist, their starred repositories, and the company name. However, when you make an API call to the GitHub API (https://developer.github.com/v3/users/#get-a-single-user) with the user octocat, it returns a JSON that looks like this:
{
"login": "octocat",
"id": 1,
"node_id": "MDQ6VXNlcjE=",
"avatar_url": "https://github.com/images/error...