Parts of the functionality may have been broken as App Store allows more flexible pricing options than the original tiers.
Last active
February 24, 2025 02:48
-
-
Save t-wy/552c10e543b8bf19ab7e7d3248a1e521 to your computer and use it in GitHub Desktop.
Get App Store Tiers without using Developer Account
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Author: t-wy | |
# App Store Pricing Matrix (Tiers) | |
# Input: Region, Output: All Tiers | |
# No developer account is required | |
# For information gathering purpose only, data may be inaccurate | |
us_tiers = [ | |
("Tier 0", 0.00, ( 284815942, 1491836718,), (1600886340,)), | |
("Tier 1", 0.99, ( 315514944, 1606497585,), ( 294205348, 1595825862, 303058840, 1041598777, 1594129099, | |
1575537486, 1495796315, 1598972349, 650008859, 837760371, | |
438643169, 1602038452, 1606610480,)), # in ₹89, au $1.49 | |
("Tier 2", 1.99, (1035430719, 574723132,), (1566955108, 1601775900, 1585891393, 1600354121, 1384257762, | |
415302426, 1038175626, 1608213321,)), # au $2.99 | |
("Tier 3", 2.99, ( 518656586, 371975937,), ( 288687448, 1563318094, 951445103, 1328950963, 569516212, | |
1568902206, 973810507, 1496845136, 1542352535, 424537550, | |
1569441308, 1563982776, 443476961, 1604058972, 369875275, | |
610905265, 1007255578, 477235445, 1584216347, 341216494, | |
1271620263, 1510038494, 1482116117, 833413936,)), # au $4.49 | |
("Tier 4", 3.99, (1596666950, 1601558036,), (1602258173, 570448397, 1502693150, 1537717888,)), # au $5.99 | |
("Tier 5", 4.99, (1594303057, 1447671288,), (1169165413, 1441926695, 1492559559, 1447753284, 860809977, | |
1597768353, 1562868713, 1386063276, 1607681286, 1202830630, | |
1115002982, 723205553, 424991374, 1446312604,)), # au $7.99 | |
("Tier 6", 5.99, (1564392150, 1081707515,), (1082939619, 1596204004,)), | |
("Tier 7", 6.99, (1136232806, 780399396,), ( 540272061, 1542466268, 362065447, 1599223984, 1559585794, | |
1645087260,)), | |
("Tier 8", 7.99, (1531122002, 1504965415,)), | |
("Tier 9", 8.99, (1520176950, 1327724550,), (1607026928,)), | |
("Tier 10", 9.99, (1592050851, 1622524981,), (1513865852, 1494826256, 1620824022, 1615342236, 1642813420, | |
1619929759, 1483933173, 1626954275,)), | |
("Tier 11", 10.99, (1492439167, 766775989,), (1537970627, 1543269815, 464801087, 412604911, 1312655753, | |
1252414464, 1560550788,)), | |
("Tier 12", 11.99, (1328280479, 1470518795,), ( 351850196, 430157565, 1195301027, 1428926317, 1640798333, | |
1497473331, 404976091, 1467705487,)), | |
("Tier 13", 12.99, (1523536604,)), | |
("Tier 14", 13.99, (1080905503,)), | |
("Tier 15", 14.99, (1108733742,)), | |
("Tier 16", 15.99, (1565796988,)), | |
("Tier 17", 16.99, (1580569473,)), | |
("Tier 18", 17.99, ( 346180522,)), | |
("Tier 19", 18.99, (1557720096,)), | |
("Tier 20", 19.99, ( 333183750,)), | |
("Tier 21", 20.99, (1554139571, 1497684170,)), | |
("Tier 22", 21.99, (1531101873,)), | |
("Tier 23", 22.99, (1590452112, 356462130,)), | |
("Tier 24", 23.99, ( 445270462, 1602995010,)), | |
("Tier 25", 24.99, (1600495615, 323835453,), ( 463376800,)), | |
("Tier 26", 25.99, (1377576904,)), | |
("Tier 27", 26.99, (1588639322, 1518975160,)), | |
("Tier 28", 27.99, (1523674174,)), | |
("Tier 29", 28.99, (1490115268,)), | |
("Tier 30", 29.99, (1547239240, 292428480,)), | |
("Tier 31", 30.99, (1501018263,)), | |
("Tier 32", 31.99, (1601144146,)), | |
("Tier 33", 32.99, (1078001875, 1608887438)), | |
("Tier 34", 33.99, ( 397445604, 489210457), (1448919739,)), | |
("Tier 35", 34.99, (494995266,)), | |
("Tier 36", 35.99, (1470595120,)), | |
("Tier 37", 36.99, (1080194323, 1271066702,)), | |
("Tier 38", 37.99, (1116148680,)), | |
("Tier 39", 38.99, (1518209259,)), | |
("Tier 40", 39.99, ( 722987396, 422540826,)), | |
("Tier 41", 40.99, ( 576379877, 719466352,)), | |
("Tier 42", 41.99, (1538009368, 1481221097,)), | |
("Tier 43", 42.99, (1547080016, 1425579091,)), | |
("Tier 44", 43.99, (1542728249,)), | |
("Tier 45", 44.99, (1517432586,)), | |
("Tier 46", 45.99, ( 517731053,)), | |
("Tier 47", 46.99, ( 666202151,)), | |
("Tier 48", 47.99, (1067690485,)), | |
("Tier 49", 48.99, ( 869421565,)), | |
("Tier 50", 49.99, ( 904280696,)), | |
("Tier 51", 54.99, (1584943226,)), | |
("Tier 52", 59.99, ( 791503139, 351058026,)), | |
("Tier 53", 64.99, (1533102224,)), | |
("Tier 54", 69.99, ( 591273570, 414859893,)), | |
("Tier 55", 74.99, (1428254496, 1593149372,)), | |
("Tier 56", 79.99, ( 409907375,)), | |
("Tier 57", 84.99, ( 426094326,)), | |
("Tier 58", 89.99, (1333296568, 1453969115,)), | |
("Tier 59", 94.99, (1359320608, 505775030,)), | |
("Tier 60", 99.99, ( 319897973,)), | |
("Tier 61", 109.99, (1473447009,)), | |
("Tier 62", 119.99, ( 401899980, 381375332,)), | |
("Tier 63", 124.99, (1133886160, 992318018,)), | |
("Tier 64", 129.99, (1496496657,)), | |
("Tier 65", 139.99, (1156707581, 1478243762,)), | |
("Tier 66", 149.99, (1545963015,)), | |
("Tier 67", 159.99, (1515773684,)), | |
("Tier 68", 169.99, (1483518983,)), | |
("Tier 69", 174.99, (1509918979,)), | |
("Tier 70", 179.99, ( 898699763,)), | |
("Tier 71", 189.99, ( 687348090,)), | |
("Tier 72", 199.99, (1557262012, 634148309,)), | |
("Tier 73", 209.99, (1474978649,)), | |
("Tier 74", 219.99, ( 419856209,)), | |
("Tier 75", 229.99, (1584112077,)), | |
("Tier 76", 239.99, ( 567610553, 1369965203,), ( 953305049, 1031421997, 542291335,)), | |
("Tier 77", 249.99, (1449743371, 1053728562,)), | |
("Tier 78", 299.99, ( 424389933, 1071667689,), (1509796235, 648941305, 412351574, 1016651140, 479257911,)), | |
("Tier 79", 349.99, ( 876900888, 1405985779,)), | |
("Tier 80", 399.99, ( 386704683, 1339153708,)), | |
("Tier 81", 449.99, (1163201923, 1365374443,)), | |
("Tier 82", 499.99, (1059077239, 560459122,), (1059077239,)), | |
("Tier 83", 599.99, ( 449411468, 1299533452,)), | |
("Tier 84", 699.99, ( 989870316, 1518870616,), ( 447804891, 1099695482)), | |
("Tier 85", 799.99, ( 523471219, 507507555,), (1517894006,)), | |
("Tier 86", 899.99, ( 677702970, 1579912302,)), | |
("Tier 87", 999.99, ( 403017260, 490451741,), ( 418993903, 1164060711, 1484938181, 1375563028, 1317066467,)), | |
("Alternate Tier A", 0.99, (1491564382,)), # in ₹9, au $0.99 | |
("Alternate Tier B", 0.99, (1548286677,)), # in ₹29, au $0.99 | |
("Alternate Tier 1", 0.99, (1269043040, 495477324,), ( 835098788,)), # in ₹89, au $1.99 | |
("Alternate Tier 2", 1.99, (1249133503, 1249133503,), (1500126852,)), # au $3.99 | |
("Alternate Tier 3", 2.99, (1496856089, 887878083,), (1328533789,)), # au $4.99 | |
("Alternate Tier 4", 3.99, ( 884489373, 1560986054,)), # au $6.99 | |
("Alternate Tier 5", 4.99, (1093131935, 924695435,)), # au $8.99 | |
] | |
# Crawl Query: | |
# site:https://apps.apple.com/au/app "Price: $1.99" | |
# Author: t-wy | |
fullcheck = False | |
def get_base_price(place, product): | |
import requests | |
content = requests.get("https://apps.apple.com/{}/app/id{}".format(place, product)).text | |
substring = '<script type="fastboot/shoebox" id="shoebox-media-api-cache-apps">' | |
if substring not in content: | |
if fullcheck: | |
print(product, "no longer exists") | |
return "???" | |
useful = content.split(substring)[1] | |
useful = useful.split('</script>')[0] | |
if useful == "{}": | |
if fullcheck: | |
print(product, "no longer exists") | |
return "???" | |
import json | |
info = json.loads(useful) | |
correct_key = [i for i in info if i.split(".")[5] == str(product)][0] | |
useful = json.loads(info[correct_key])["d"][0] | |
# in-app: useful["relationships"]["top-in-apps"]["data"] | |
useful = useful["attributes"]["platformAttributes"] | |
if "ios" in useful: | |
useful = useful["ios"] | |
elif "osx" in useful: | |
useful = useful["osx"] | |
elif "appletvos" in useful: | |
useful = useful["appletvos"] | |
else: | |
if fullcheck: | |
print(product, "no longer exists") | |
return "???" | |
return useful["offers"][0]["price"] | |
def report(product): | |
print(product, "no longer exists") | |
return False | |
region = input("Region (e.g. us, tw, hk, jp): ") | |
for i in us_tiers: | |
print(i[0], end=": ") | |
valid = [x for x in i[2] if get_base_price("us", x) == i[1] or (fullcheck and report(x))] | |
ans = [y for y in map(str, [get_base_price(region, x) for x in valid]) if (fullcheck or y != "???")] | |
if not fullcheck: | |
ans = list(set(ans)) | |
cursor = 0 | |
if fullcheck or len(ans) == 0: | |
if len(i) == 3 and len(ans) == 0: | |
print("No data") | |
elif len(i) > 3: | |
for x in i[3]: | |
temp = get_base_price(region, x) | |
if temp != "???": | |
ans.append(str(temp)) | |
if not fullcheck: | |
break | |
if len(ans) == 0: | |
print("No data") | |
else: | |
print(", ".join(ans), "(???)" if len(set(ans)) > 1 else "") |
Parts of the functionality may have been broken as App Store allows more flexible pricing options than the original tiers.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Sample output for
hk
: