From the browser, I have been using TinEye for many years. Give it an image, or an image URL, and it returns details of all web pages containing that image, which you can sort by size, etc
It has an API which claims "Fast search through billions of images" and "Find heavily cropped and modified versions of images" among others.
Hosted API
The TinEye API is a fully hosted API. There is no software to install
and no updates to worry about. By using our hosted API, you save time
and money needed to build and maintain your own image recognition
solutions. Easy to integrate
The TinEye API is easily integrated with your existing technology,
regardless of the languages and tools you use. Fully documented
The TinEye API is a REST-based API, delivered over HTTP or HTTPS in
JSON format. REST/JSON bindings are available in all major programming
languages. We also support a growing number of language-specific
libraries to make integration very straight forward. Our documentation
and libraries are extensive. Scalable and high performance
Multiple image query support including JPEG, PNG, or GIF. Query images
can be specified by a publicly accessible image URL, or uploaded.
Large and growing image index
The TinEye API searches the TinEye index which is an index of a large
cross section of the web. The TinEye index is at 25,462,149,173 images
today. Proven technology
Built by TinEye's image recognition scientists and backed by a decade
of research and development, the TinEye API is the ideal reverse image
search solution for image search and verification.
It is not gratis, but you don't ask for that. It starts form 1 cent per search, up to 4 cents per search.