I just can't get my head around this.
it is assumed that Google search API contains all the information that a normal google search provide.
however, it doesn't contain the gray text that a normal search provides.
Here is an example:
https://www.google.co.uk/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=linkedin%3A%20x%20man
now if you look at the top result you'll see a grey text. but when I use the api, i don't get that bit of information. for example :
http://ajax.googleapis.com/ajax/services/search/web?v=1.1&q=linkedin%3A%20x%20man
so what is the reason I get those information on normal google search and not on the API?
Google does some special handling for linkedin profiles that provides the job/location info that appears in gray.
Search engines like Google and Yahoo periodically review our member directory for new and updated public profile information to show in their search results.
The API you're using is deprecated, which means Google can withdraw it whenever they wish. The suggested alternative is Google Custom Search, see What are the alternatives now that the Google web search API has been deprecated? It also means they are not adding features to it, and things like custom results for linkedin profiles, which came along after the deprecation (in 2010), just aren't part of that API. The assumption "that Google search API contains all the information that a normal google search provide" is an incorrect one.
It's not surprising that they've done this; after all, their business is to sell ad impressions on their search results, and using this API means you are using their services without giving them any compensation at all, not even allowing them to show ads. Using their newer APIs allows them to charge you for usage of the API in lieu of selling ads, which is why you need to sign up and have an API key.