The data returned by Bing is limited. e.g. Bing does not return an image with it's results while Google does. I want to show 1 image from the page along with Title, Description, preview text. Bing has separate searches for web and image however the results are not from the same domains so I can't correlate results and associate an image to a web result.
Secondly Bing does not allow search across a limited set of domains.
Yahoo BOSS API allows search across limited set of domains however it's done by passing a comma separated list in the URL. This means I can't put 1000 domains in the URL. Moreover it's search results are in a similar format as Bing's.
Google Custom Search is the best option in terms of how it allows you to specify the domains you want to search in and save that as a custom search engine and then use the custom search engine's ID in the API request. Furthermore Google Custom Search's result JSON data is more comprehensive than either Bing or Yahoo BOSS.