iTunes search rate limited? 403 Forbidden errors

Hello!


I am using the following URL to get search results and have started to get 403 (Forbidden) errors back at regular intervals, though other times it works fine:


https://itunes.apple.com/search?term=


I imagine this is due to some rate-limiting from Apple.


Is it documented anywhere how many search requests can be performed and whether or not there is any solution? I read somewhere about an Enterprise account, but have not been able to find any further documentation about this.


I'd appreciate any feedback anyone may have about this 'Enterprise' account adn how to go about applying for one and also what the 'documented' limits are for search calls.


Many thanks in advance for any information you may be able to share on the above.

Replies

hello! I had the same problem!

I am having an issue too of getting a lot of status 403 responses. Although I am doing a large number of searches, I have been running this for over 2 years without problems until now, and also I am getting them even on my first search, and when I search in the browser.


I thought at first the site was down yesterday or was having problems but I am having them today too, and I need to make my new playlist and this is an important step.

I am submitting a bug report for this. Although that screen is taking ages to work.

Something that worked fine last week and isn't working now is a bug.


They certainly make it difficult to actually make contact. You go to the menu option and everywhere tries to drive you somewhere that isn't making contact.

I'm also experiencing the same issue. Making even a few calls in a batch processing run results in subsequent 403 responses. This is the officially recommended architecture per the API caching diagram, so it's definitely a bug. Even if I sleep for an interval between the batch requests, I still get blocked.


https://affiliate.itunes.apple.com/resources/documentation/itunes-store-web-service-search-api/#caching

It allowed me about 75 then started hitting me with them. I reduced it down to one thread, I closed and reset the session as HTTP client advises, but no luck.

Maybe they log my ip or mac address and limit me to a few a day.

However my list usually starts with several thousand.

The whole point of having "developers" on a framework like this is to allow us to make apps or base websites on this technology. For me, it is building a formal new release list which I send out to several people, and I use iTunes primarily to get the genres. This is a very important piece of metadata.

I also later merge with youtube to find only those with videos, and eveyr 3 weeks there is a youtube playlist under the account of DJGrim that has some numbers folllowed by _realvideos which essentially yields from the end of all of this.

I can't believe that Apple, who are one of the most major corporations, do not have the capacity to allow that many searches.

submitted as bug

29035360

Same here.

I think I will have to remove my app from the store to avoid one-star reviews.


I am using the default configuration for NSURLSession, it should be ok, caching-wise ?


THe /lookup? API endpoint is working.

Same issue here. Have only been doing 25 calls or so every few minutes.

Same problem. Had to remove my app from store. It's vety frustrating.

Same problem. I noticed it is not about access rate, it's about the length of search string. If the string is short enough, it would not get 403. Or I guess it is because short string is using a cache in itunes server and long string is through a full text search.

In one word, it's definitely a bug.

According to our server logging, it has been failing regularly since at least 430pm on November 1st. It seems as if the rate limitting parameters were made much stricter.


I filed a Radar about it last night, Radar 29060372 iTunes Search API is regularly returning 403s

Same issue. I reported this as a bug as well. Maybe with more reports, they'll be faster to respond.

Hi all,


Thanks for your comments. This seemed to be briefly OK for a short while, but I get nothing but 403's at the moment.


I'm pretty certain it is being throttled/rate limited as if I run the exact same query from a different server/PC the result is OK (200) and a result is returned, yet doing the same search from my server where the search needs to be performed from, I get 403's.


Some kind of explanation of what the limits are, per minute/hour/day would be very useful!


Does anyone know any more about what the limits are (which appear to have changed recently)?


Also, if anyone gets any further info from the bugs reported, would you be kind enough to share here?


Finally, where do you report this kind of thing to Apple, so that we can all report these as bugs?


Thanks again everyone, kind of good to know it's just not me having this problem!

I spoke with a contact at Apple and he confirmed they are aware of the 403 errors occurring for developers. It is related to an upper limit on their Search endpoint.


Apps that send several single requests from the same device (or IP) address appear to be rate limited, presumabely due to increased community usage - but didn't sound like an intentionally planned rate limit. One/two requests should go through fine.

In any case, they're aware of the issue (and presumably working on it). My contact did not have any estimate date of resolution, but did request more information on what is being experienced in the developer community. If anyone is experiencing different symptoms (i.e. 403 after just a single request, or partial results but no 403, etc.) please provide any scenario info you can and I'll pass it along to them to help expedite.

Hi an0m1ly


Many thanks, sincerely appreciate your response.


My usage on the API are single queries requesting one match only and from a single IP address. I have made changes to our code to reduce the calls (sometimes there were calls being made whereby the actual response wasn't needed).


I have also now started caching the results so that I can check against the cached results and not forward them onto the API but that is going to take some time to implement.


From what I have been able to find out, there is no documented limit for calls?


From your contact at Apple, would you be kind ebough to report back if you find out when this has been resolved on Apples side?


Thanks again.