02_production PermissionDenied Error

I’ll have to register myself when I go through the lessen… Or have you fixed the problem in the meantime?

Same issue here. My output is also ‘PermissionDenied’. This is after I inserted my key. I also got same response after restarting kernal and also logging out and back in again.



Make sure you are registering for a Bing Search resource as well - https://azure.microsoft.com/en-us/pricing/details/cognitive-services/search-api/

After I registered for Azure I searched for “Bing Search” at the top. The only option under Marketplace is what you want. Register again. I picked the free option F1. Then click on ‘Go to resource’. And theres the key that you need.

This link should also show you your keys - https://azure.microsoft.com/en-us/try/cognitive-services/my-apis/ at the bottom


I am still getting error as below :
ErrorResponseException: Operation returned an invalid status code ‘Access Denied’

IF anyone had success accessing the imagest via ImageSearchAPI, please help

Is it possible that you signed up for the wrong service???


Follow the instructions here: https://helpcenterhq.com/knowledgebase.php?article=189

Make sure you are getting the key for Bing Search APIs v7 and and not other service like computer vision or something else also ensure This API key is currently active


Thank you I was using the wrong tier. corrected it and not i can access the data. Thank you all :smile: !

After having successfully run 02_production a few days ago, I now get "Operation returned an invalid status code ‘PermissionDenied’ " after I’ve done a git pull, and am attempting to run the notebook. (Note: I had actually created a copy of 02_production and was seeing the error there, so I thought I’d try the original too. Same error)

Anyone else seeing this? One thought is that the azure key may have expired, though I’m unable to find if it has any expiration. Does it?

EDIT and SOLUTON – It looks like it does expire after a week. Then they ask you to sign up with some options:

I found that you can use any name for Name* and for Resource Group. You just click the ‘create’ button next to Resource Group and it allows you to create a new one, enter new information. Then you get to this screen after a couple of minutes:

Screen Shot 2020-04-05 at 12.39.32 PM

I assume that this begins using the $200 credit that they offer.


I also had the same problem with permission, due to wrong service added.

The easiest way to check if you have the right service is through this link:

There you can see:

  • what you have currently signed up to
  • your api keys
  • the expiry time of the service

below this section there is also a " You might also be interested in" section.
There you can find the image search if it is missing. Simply click the “add” button below option(s) of choice.

1 Like

This was generally helpful thank you. In case I’m not the only one with this issue even after thinking I went through all the above steps correctly, pointing me to the “You might also be interested in” section and showing all led me to fix it.

My problem was I had the Bing Search APIs, but there is apparently a difference between the regular Bing Search API, and Bing Search APIs v7. Adding the v7 one fixed it for me. Adding screenshot below for clarity.


I was trying to use Computer Vision, but using Search APIs v7 does work. Thanks!

I’m getting the PermissionDenied Error, too, and even Bing Search APIs v7 doesn’t help.

I think the issue is that Microsoft has changed the service from “Cognitive” to “Bing Services”, something along the lines. This started on 1/11/20.

Probably in the utils.py file the API url needs to be changed from https://api.cognitive.microsoft.com to https://api.bing.microsoft.com/v7.0/images/search? @jeremy

I tried the code in https://docs.microsoft.com/en-us/bing/search-apis/bing-image-search/quickstarts/rest/python and that worked for the API and that’s where I get the link from.


I tried change, but I got error: Operation returned an invalid status code ‘Resource Not Found’ and I have problem with PermissionDenied. I can’t solve it.

I solved this problem with code:

And now I have 450 imges bears


I tried the updated version from Microsoft that @Zmey56 tried, but I still get an Access Denied although all my keys are right. Any ideas?

I don’t think Access Denied is the same as Permission Denied, need more info posted on what you are doing.


As the response code from the request is not actually seen in the stack trace it would need to be found using debug. A fault is anything other than the code 200

Searching through the response codes at HTTP Response Codes there are no direct matchings for ‘PermissionDenied’ and ‘Access Denied’. They are perhaps AZURE specific. A search of the AZURE python code in


maybe fruitful.

Other than that take the advise given by the other posters in this post.

I believe Jeremy did not intend for AZURE to be the definitive image search but was left with it as a compromise. Also AZURE interface may be changed at any time, so expect new behaviour to occur.

It maybe that one relates to a good key value and some other security issue, or else a bad key and then a direct failure.

Azure status codes

This solves the Permission Denied error by building on Zmey56’s solution.
I created a local instance of the bing search function, that returns an L object.

 def search_images_bing(key, term, max_images: int = 100, **kwargs):    
     params = {'q':term, 'count':max_images}
     headers = {"Ocp-Apim-Subscription-Key":key}
     search_url = "https://api.bing.microsoft.com/v7.0/images/search"
     response = requests.get(search_url, headers=headers, params=params)
     search_results = response.json()    
     return L(search_results['value'])

But because the old code looks for the keyname content_url, you need to change it to ‘contentUrl’

results = search_images_bing(key, 'grizzly bear', min_sz=128)
ims = results.attrgot('contentUrl')

Then it works fine and fits in nicely into the jupyter workbooks


I have been having the same issue although I changed it in the utils.py file that is installed in my notebook. Still the same issue.
It appears though it is calling another the file from following path which I cannot find to alter the code:

Can anybody help?

Very much appreciate it!

1 Like

Nah apparently not the utils.py file from the jupyter nb is taken but another one you cannot change.
I recommend implementing retuso’s solution in a cell in your notebook! :slight_smile:

I can confirm this works wonderfully and I’m grateful for the solution.
(In my case, I preferred to give this function a new name, not overwrite the initial one.)
Also, it’s very easy to forget to change content_url to contentUrl, this might first thing to look at if errors.

1 Like