24

I'm trying to import reviews for certain apps on the iTunes App Store via the public reviews RSS feed. Most of the time the feed returns a list of 50 reviews per page, and gives me links for up to 10 pages. But in the case of some apps, some or all of those pages have 0 reviews, and I can't tell why.

At the time of this writing, the feed for Instagram (link below) returns no reviews, despite reporting that there's 10 pages of reviews available.

https://itunes.apple.com/us/rss/customerreviews/page=1/id=389801252/sortBy=mostrecent/xml

Even more confusing, I noticed last night that page 2 had 50 reviews but none of the other pages had any. This morning, page 2 is empty again.

If I remove the sortBy=mostrecent portion of the URL above, I actually do get 50 results back, but none of the other pages have any results.

Finally, it appears as if the JSON version of this page (link below) actually returns results better than the XML version. Unfortunately, the JSON version leaves off the date of the review in the data so I can't use it.

https://itunes.apple.com/us/rss/customerreviews/page=1/id=389801252/sortBy=mostrecent/json

Can anyone explain this? Is Apple's XML feed API just extremely unreliable? Am I forming a bad URL?

Brent Traut
  • 5,614
  • 6
  • 29
  • 54
  • I think you're right about you said Apple's XML feed API. if you want, check [my answer](http://stackoverflow.com/a/40383107/4092887) about how I check the results of the page for get a certain data from Apple's Itunes feed. the tl;dr version could be: some info is not available in RSS despite their website shows it. Hope it helps you. – Mauricio Arias Olave Feb 24 '17 at 13:37

1 Answers1

1

While this answer isn't very satisfying, it's the best I could work out after many trials. It appears as if the XML feed is really fallible and shouldn't be used for real-world usage. Furthermore, when using the public JSON feed, certain fields such as review date are missing. Neither feed reports developer response.

It's also clear that Apple doesn't use these feeds for iTunes (desktop) or App Store (iOS). I ultimately reverse-engineered the way iTunes requests review data and figured out that making a request the same way, making sure to match their User Agent and version, would return the data I needed. These requests seem to be rate-limited to a certain extent and the data comes as a mix of HTML and JSON that requires a lot of parsing. Furthermore, because they're private calls, Apple could easily shut the door at any moment.

Brent Traut
  • 5,614
  • 6
  • 29
  • 54