logo

Appstore Data Scraper - Scrape App Store Data

RealdataAPI / appstore-scraper

Use Appstore Data Scraper to extract iTunes and App Store for millions of podcasts, reviews, movies, and applications and get the list of titles, images, and descriptions. ISBN, languages, and other data fields in structured format. Using the Appstore Scraper in Canada, France, Australia, Germany, the USA, the UK, Spain, and other countries is easy.

App Store Scraper

Since the App Store doesn't provide an API option; this scraper must help to retrieve app data using it.

The App Store Scraper helps with the following features:

  • Get Reviews: quickly get any reviews from iTunes without restrictions.
  • Search Any Query: you can discover any search keyword you wish to get results.
  • Scrape Any Media; extract any media type you require from the Apple App Store.
  • Scrape App Store or iTunes URLs: retrieve any App Store or iTunes links from their page.
  • Extract Publishers: you can collect intelligence from competitors by gathering their information.
  • Extract with Filters: Country, media type, or keyword. You reform the outputs.
  • Lookup by Multiple Accounts: If you need multiple competitors or media, you can scrape them at once.

Updates, Bugs, Fixes, and Changelog

This API is under development. You can contact us if you have any queries, suggestions, or feature requests.

Setup and Usage

Check out how this scraper works in the below video.

Using Search

Check out the output example here.

Using Start Links

Check out the output example here.

Input Parameters

You should feed JSON input to the scraper according to the following required fields.

Field Type Description
term String Search keywords that you plan to search on the Apple App Store.
country String (Enum) Nation of the App Store you want to extract.
mediaType Array Type of media assets you will retrieve from the Apple App Store.
mode String (Enum) Actor modes like search or lookup.
startUrls Array The list of Apple Store links. You must share detailed links from the App Store or iTunes.
includeReviews Boolean If you plan to include reviews for every app, you can allow this option. Note that the scraper will retrieve in a paginated way. Hence, the request count will proportionally increase.
maxItems Integer You can restrict scraped items. It will help you in searching big subcategories.
proxy Object Proxy configuration
customMapFunction String This function takes every object handle as an argument and reflects the object with the running function.

You must use a proxy server to use this solution. There are multiple options to use proxies, including your proxy or Real Data API proxy.

Advise

If you plan to extract a particular media or ID, always use Lookup mode. We recommend lookup mode to discover specific assets or values on iTunes or the App Store. For example, if you wish to search for the Id of 432453813, choose lookup mode and enter 432453813 in the term section.

Conversely, if you wish to discover a particular filter or keyword, search mode will help you.

Consumption of Compute Units

We have optimized this scraper to execute blazing fast and extract more listings. Hence it forefronts each listing detail request. If the source doesn't block this actor, it will extract a hundred listings in 120 seconds with 0.01 to 0.02 compute units.

Input Example of App Store Scraper

{
    "startUrls": [
        "https://itunes.apple.com/us/movie/inception/id400763833",
        "https://apps.apple.com/us/app/angry-birds-2/id880047117"
    ],
    "term": "game dev",
    "country": "us",
    "mediaType": "all",
    "mode": "search",
    "includeReviews":true,
    "maxItems": 3
}

During the Execution

While executing, the scraper will display messages sharing about what is happening. Every message always includes a short label mentioning which it is scraping from the list. After loading items from the page, you must see a message about the event with the total and loaded item count.

If you feed the wrong input to the scraper, it will fail to work and show the reason for the failure in the output.

App Store Export

While running, the scraper saves outputs in datasets. Every item is unique in the dataset.

You can get outputs in any programming language like PHP, Python, Node.js, or NPM.

Extracted App Store Media

Here is the structure of every item you will receive as the output from the App Store.

Item Detail

{
    "wrapperType": "track",
    "kind": "podcast",
    "collectionId": 1043547750,
    "trackId": 1043547750,
    "artistName": "Game Dev Unchained",
    "collectionName": "Game Dev Unchained",
    "trackName": "Game Dev Unchained",
    "collectionCensoredName": "Game Dev Unchained",
    "trackCensoredName": "Game Dev Unchained",
    "collectionViewUrl": "https://podcasts.apple.com/us/podcast/game-dev-unchained/id1043547750?uo=4",
    "feedUrl": "https://anchor.fm/s/651ae57c/podcast/rss",
    "trackViewUrl": "https://podcasts.apple.com/us/podcast/game-dev-unchained/id1043547750?uo=4",
    "artworkUrl30": "https://is5-ssl.mzstatic.com/image/thumb/Podcasts125/v4/3e/ea/04/3eea0406-7b9f-30f6-c626-6b9a4cef5597/mza_16385274979335913443.jpg/30x30bb.jpg",
    "artworkUrl60": "https://is5-ssl.mzstatic.com/image/thumb/Podcasts125/v4/3e/ea/04/3eea0406-7b9f-30f6-c626-6b9a4cef5597/mza_16385274979335913443.jpg/60x60bb.jpg",
    "artworkUrl100": "https://is5-ssl.mzstatic.com/image/thumb/Podcasts125/v4/3e/ea/04/3eea0406-7b9f-30f6-c626-6b9a4cef5597/mza_16385274979335913443.jpg/100x100bb.jpg",
    "collectionPrice": 0,
    "trackPrice": 0,
    "trackRentalPrice": 0,
    "collectionHdPrice": 0,
    "trackHdPrice": 0,
    "trackHdRentalPrice": 0,
    "releaseDate": "2021-11-02T23:11:00Z",
    "collectionExplicitness": "cleaned",
    "trackExplicitness": "cleaned",
    "trackCount": 332,
    "country": "USA",
    "currency": "USD",
    "primaryGenreName": "Video Games",
    "contentAdvisoryRating": "Clean",
    "artworkUrl600": "https://is5-ssl.mzstatic.com/image/thumb/Podcasts125/v4/3e/ea/04/3eea0406-7b9f-30f6-c626-6b9a4cef5597/mza_16385274979335913443.jpg/600x600bb.jpg",
    "genreIds": ["1509", "26", "1502"],
    "genres": ["Video Games", "Podcasts", "Leisure"],
    "reviews": [
        {
            "id": "9519350766",
            "userName": "ultrageoffe",
            "userUrl": "https://itunes.apple.com/us/reviews/id212958678",
            "version": "2.3",
            "score": 1,
            "title": "Ad nightmare",
            "text": "Ads every few seconds. Don’t waste your time",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9519118710",
            "userName": "blake42059",
            "userUrl": "https://itunes.apple.com/us/reviews/id1241179837",
            "version": "2.3",
            "score": 1,
            "title": "To many adds and pop ups trash game don’t recommend to anyone.",
            "text": "To many adds and pop ups trash game don’t recommend to anyone.",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9518589385",
            "userName": "Skinny1K",
            "userUrl": "https://itunes.apple.com/us/reviews/id1339960005",
            "version": "2.3",
            "score": 1,
            "title": "Found a bug😂",
            "text": "The game stopped working before I could finish level 1",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9516124853",
            "userName": "Epictrollcreeper",
            "userUrl": "https://itunes.apple.com/us/reviews/id351259271",
            "version": "2.3",
            "score": 3,
            "title": "Rating",
            "text": "Good concept, too many ads.",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9515904349",
            "userName": "ORION THA GREAT",
            "userUrl": "https://itunes.apple.com/us/reviews/id1400556177",
            "version": "2.3",
            "score": 1,
            "title": "No sound.",
            "text": "The app has no sound ? Why ?",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9515358167",
            "userName": "aj12ski",
            "userUrl": "https://itunes.apple.com/us/reviews/id1159671746",
            "version": "2.3",
            "score": 1,
            "title": "Not good",
            "text": "So many ads and it bothers you and says you gotta click on these little things that bring you to a obvious scam for a gift card. Also, pistons don’t all fire at the same time. Very bad game.",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9512381960",
            "userName": "86spence",
            "userUrl": "https://itunes.apple.com/us/reviews/id889838843",
            "version": "2.3",
            "score": 5,
            "title": "I thought this would be bad but it’s way better than that",
            "text": "i genuinely think this game is fun!",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9512157356",
            "userName": "K.video",
            "userUrl": "https://itunes.apple.com/us/reviews/id1320845055",
            "version": "2.3",
            "score": 3,
            "title": "Wow",
            "text": "A fun game but to much ads",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9511169577",
            "userName": "bruh dis is broke",
            "userUrl": "https://itunes.apple.com/us/reviews/id455293667",
            "version": "2.3",
            "score": 1,
            "title": "Crazy ads",
            "text": "This game is absolutely an ad farm. It feeds you a ridiculous amount of ads. Most games it gives you the option to receive a reward for watching an ad and some ads mixed in here and there. This game forces you to watch an ad every few seconds, no option to pay for no ads, i wonder how much they make for selling your data. I deleted this game after 5 minutes, its a shame because it is really fun.",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9510639374",
            "userName": "Zeus Zeus 1",
            "userUrl": "https://itunes.apple.com/us/reviews/id532959786",
            "version": "2.3",
            "score": 1,
            "title": "less pop ups to make the game fun",
            "text": "to many pops of stuff we can see along side to even enjoy the game cause after all that we have ads to watch",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9509057238",
            "userName": "fhfhghhhhg fun",
            "userUrl": "https://itunes.apple.com/us/reviews/id1395367311",
            "version": "2.3",
            "score": 5,
            "title": "Fun",
            "text": "I like it",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9507809623",
            "userName": "boodclaws0",
            "userUrl": "https://itunes.apple.com/us/reviews/id874642291",
            "version": "2.3",
            "score": 2,
            "title": "eh",
            "text": "way too many ads",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9504616350",
            "userName": "Fell in love with a girl",
            "userUrl": "https://itunes.apple.com/us/reviews/id363783248",
            "version": "2.3",
            "score": 2,
            "title": "Stupid ad's",
            "text": "This game has way to many pop ups/ad's and makes the games a little ridiculous to play and I don't recommend. They are just looking for their money.",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9504002907",
            "userName": "gcpwilson",
            "userUrl": "https://itunes.apple.com/us/reviews/id261803549",
            "version": "2.3",
            "score": 1,
            "title": "Way too many ads",
            "text": "For too many ads for anyone’s liking, in my opinion. The app is development and the game is seemingly repetitive to other games out there.",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9503418821",
            "userName": "Regulator1988",
            "userUrl": "https://itunes.apple.com/us/reviews/id114773095",
            "version": "2.3",
            "score": 1,
            "title": "Just ads",
            "text": "Nothing more than an ad generator",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9502409312",
            "userName": "isyounoob",
            "userUrl": "https://itunes.apple.com/us/reviews/id1269971507",
            "version": "2.3",
            "score": 4,
            "title": "Good",
            "text": "It’s good but it’s not a online game if it was it would be better",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9500880396",
            "userName": "Ahmet İkbal Adlığ",
            "userUrl": "https://itunes.apple.com/us/reviews/id1281714308",
            "version": "2.3",
            "score": 5,
            "title": "Engine pistons",
            "text": "Watching engine pistons has never been this fun 😍",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9500687874",
            "userName": "Honest review of games",
            "userUrl": "https://itunes.apple.com/us/reviews/id1487869741",
            "version": "2.3",
            "score": 2,
            "title": "It’s meh",
            "text": "Very pushy with “2x speed for 15 seconds” and similar boosts, the buttons are already on the side, and covering the screen while you need to tap to go fast and “be satisfying” is just a bit irritating. Another problem is how some upgrades have a level cap and cannot upgrade further other than pistons and cars from then on. I do not know if this changes on further levels because after level one, my car turned invisible, has infinite nitro, and cannot pass cars. The floating pistons just keeps passing the same place of a rival car over and over. Other than that, the game is alright with designs and the engine “building” is quite fun. Overall, not worth investing a lot of time into and seems like this game was just made with the sole purpose to have people watch ads rather than have more of a balance between a fun game and watching ads like the game “Mob Control” or “Cats and Soup” and other games I love where things aren’t shoved in my face and are more of an option. Then again, I am not the target audience of a young child.",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9499867302",
            "userName": "Noahthegamer5",
            "userUrl": "https://itunes.apple.com/us/reviews/id428324534",
            "version": "2.2",
            "score": 1,
            "title": "Cool concept",
            "text": "This game is fun but literally not 10 seconds passes between ads. It’s unplayable due to how greedy the devs are.",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9497199859",
            "userName": "berrymckokner",
            "userUrl": "https://itunes.apple.com/us/reviews/id104183840",
            "version": "2.2",
            "score": 1,
            "title": "Not good",
            "text": "This game is terrible nothing is correct and it’s nothing like the ads",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9496484784",
            "userName": "Mk//z06",
            "userUrl": "https://itunes.apple.com/us/reviews/id1487454997",
            "version": "2.1",
            "score": 1,
            "title": "Too many ads",
            "text": "Game is an ad-trap. The game is even insistent that it needs Wi-Fi to be played. Constant pop-ups with videos that you have to watch. Then, even in-game, constant pop ups and buttons all over the side that get you to watch an ad. Giant waste of time, with little developer effort.",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9491770410",
            "userName": "×͜× ☻︎",
            "userUrl": "https://itunes.apple.com/us/reviews/id1314706716",
            "version": "2.1",
            "score": 1,
            "title": "Ads",
            "text": "Way to many ads barely even playable because every 30 seconds there’s a ad",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9491177174",
            "userName": "Kennyotter",
            "userUrl": "https://itunes.apple.com/us/reviews/id1451044140",
            "version": "2.1",
            "score": 1,
            "title": "Ads the game",
            "text": "Not even one minute into the game I got ten different pop ups asking if I wanted to increase my speed, or have auto tap, or merge for free. Right after clicking away from all of those an ad force played. Don’t forget the ad at the bottom either.",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9486738863",
            "userName": "BrennanXSMax",
            "userUrl": "https://itunes.apple.com/us/reviews/id596576786",
            "version": "2.1",
            "score": 1,
            "title": "Ads",
            "text": "Yet another game on the App Store that fills games with so many ads the game is rendered unplayable.",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9482862225",
            "userName": "daniel casaus",
            "userUrl": "https://itunes.apple.com/us/reviews/id1258520205",
            "version": "2.1",
            "score": 5,
            "title": "Anazing game",
            "text": "Ive always loved how pistons moved up and down and this game pretty much answered that and i knew i had to download it",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9482806686",
            "userName": "TheKnight2468",
            "userUrl": "https://itunes.apple.com/us/reviews/id446572279",
            "version": "2.1",
            "score": 2,
            "title": "Levels break after level 1",
            "text": "The game was great until I finished level 1 and it wouldn’t let me get the reward and move to level 2. I then tried closing and re-opening the game but then I was just sent to the end of the next level where I still had the same issue.",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        },
        {
            "id": "9425759392",
            "userName": "BOOMXD8642",
            "userUrl": "https://itunes.apple.com/us/reviews/id482243206",
            "version": "1.0",
            "score": 2,
            "title": "Waste of time",
            "text": "Wasted 40mins to get to the end and not be able to beat the 1st place car.",
            "url": "https://itunes.apple.com/us/review?id=1660464064&type=Purple%20Software"
        }
    ]
}

Industries

Check out how industries use App Store Scraper worldwide.

saas-btn.webp

E-commerce & Retail

You should have a Real Data API account to execute the program examples. Replace < YOUR_API_TOKEN > in the program using the token of your actor. Read about the live APIs with Real Data API docs for more explanation.

import { RealdataAPIClient } from 'RealdataAPI-Client';

// Initialize the RealdataAPIClient with API token
const client = new RealdataAPIClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare actor input
const input = {
    "startUrls": [
        "https://itunes.apple.com/us/movie/inception/id400763833",
        "https://apps.apple.com/us/app/angry-birds-2/id880047117"
    ],
    "term": "game",
    "maxItems": 20,
    "customMapFunction": (object) => { return {...object} },
    "proxy": {
        "useRealdataAPIProxy": true
    }
};

(async () => {
    // Run the actor and wait for it to finish
    const run = await client.actor("epctex/appstore-scraper").call(input);

    // Fetch and print actor results from the run's dataset (if any)
    console.log('Results from dataset');
    const { items } = await client.dataset(run.defaultDatasetId).listItems();
    items.forEach((item) => {
        console.dir(item);
    });
})();
from realdataapi_client import RealdataAPIClient

# Initialize the RealdataAPIClient with your API token
client = RealdataAPIClient("<YOUR_API_TOKEN>")

# Prepare the actor input
run_input = {
    "startUrls": [
        "https://itunes.apple.com/us/movie/inception/id400763833",
        "https://apps.apple.com/us/app/angry-birds-2/id880047117",
    ],
    "term": "game",
    "maxItems": 20,
    "customMapFunction": "(object) => { return {...object} }",
    "proxy": { "useRealdataAPIProxy": True },
}

# Run the actor and wait for it to finish
run = client.actor("epctex/appstore-scraper").call(run_input=run_input)

# Fetch and print actor results from the run's dataset (if there are any)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
# Set API token
API_TOKEN=<YOUR_API_TOKEN>

# Prepare actor input
cat > input.json <<'EOF'
{
  "startUrls": [
    "https://itunes.apple.com/us/movie/inception/id400763833",
    "https://apps.apple.com/us/app/angry-birds-2/id880047117"
  ],
  "term": "game",
  "maxItems": 20,
  "customMapFunction": "(object) => { return {...object} }",
  "proxy": {
    "useRealdataAPIProxy": true
  }
}
EOF

# Run the actor
curl "https://api.realdataapi.com/v2/acts/epctex~appstore-scraper/runs?token=$API_TOKEN" /
  -X POST /
  -d @input.json /
  -H 'Content-Type: application/json'

Start URLs

startUrls Optional Array

URLs to begin with. You should feed detailed links.

Search Term

term Optional String

The search keyword you can discover on the App Store.

Country

country Optional String

The country you want to search in the media.

Options:

"us","bb","in","ca","au","am","ao","ai","ar","bj",etc.

Media Type

mediaType Optional String

Choose your media type.

Options:

"music","ebooks","movies","software","podcasts",etc.

Mode

mode Optional String

Choose search mode. If you wish to get particular media, use lookup mode.

Options:

"search","lookup".

Include Reviews

includeReviews Optional Boolean

Containing application reviews.

Maximum Listing Item Count

maxItems Optional Integer

Maximum Listing Item count you want to receive in the result with default as all.

Custom Map Function

customMapFunction Optional String

This function takes every object as an argument and reflects data to map.

Proxy Configuration

proxy Optional Object

Choose proxies to assist your scraper.

{
  "startUrls": [
    "https://itunes.apple.com/us/movie/inception/id400763833",
    "https://apps.apple.com/us/app/angry-birds-2/id880047117"
  ],
  "term": "game",
  "country": "us",
  "mediaType": "all",
  "mode": "search",
  "includeReviews": false,
  "maxItems": 20,
  "customMapFunction": "(object) => { return {...object} }",
  "proxy": {
    "useRealdataAPIProxy": true
  }
}