before debugging empty image results, open your Programmable Search Engine settings and confirm image search is turned on; a correct key and quota wont help if the engine isnt configured for images. Then protect the quota: debounce search-as-you-type, cache results per query for the session, and never fire one API call per thumbnail. Restrict the API key to the Custom Search API and to your referrers or IPs so a leaked key cant be used to drain your 100 free queries. If results load but clicks fail, check the app logs for download errors and folder write permissions, that is a different layer from the search call.

Context: Web: an image-search setup guide documents the two image-search gotchas. First, the Programmable Search Engine itself must have image search enabled, otherwise image queries return nothing useful even with a valid key and quota. Second, every image search counts as one query against the same 100-per-day free quota, so a UI that fires a search per keystroke or per thumbnail burns the budget fast. The guide also notes the standard credential checks: both the API key and the search engine ID must be set, and the Custom Search API must be enabled. Source: https://github.com/otro34/the-collector/blob/HEAD/docs/phase-1/IMAGE_SEARCH_SETUP.md