Skip to content

Instantly share code, notes, and snippets.

@t-wy
Last active February 24, 2025 02:48
Show Gist options
  • Save t-wy/552c10e543b8bf19ab7e7d3248a1e521 to your computer and use it in GitHub Desktop.
Save t-wy/552c10e543b8bf19ab7e7d3248a1e521 to your computer and use it in GitHub Desktop.
Get App Store Tiers without using Developer Account

Parts of the functionality may have been broken as App Store allows more flexible pricing options than the original tiers.

# 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.

@t-wy
Copy link
Author

t-wy commented Mar 1, 2022

Sample output for hk:

Tier  0: 0 
Tier  1: 8 
Tier  2: 15 
Tier  3: 23 
Tier  4: 28 
Tier  5: 38 
Tier  6: 48 
Tier  7: 53 
Tier  8: 58 
Tier  9: 68 
Tier 10: 78 
Tier 11: 83 
Tier 12: 88 
Tier 13: 98 
Tier 14: 108 
Tier 15: 118 
Tier 16: 123 
Tier 17: 128 
Tier 18: 138 
Tier 19: 148 
Tier 20: 158 
Tier 21: 163 
Tier 22: 168 
Tier 23: 178 
Tier 24: 188 
Tier 25: 198 
Tier 26: 203 
Tier 27: 208 
Tier 28: 218 
Tier 29: 228 
Tier 30: 238 
Tier 31: 243 
Tier 32: 248 
Tier 33: 258 
Tier 34: 268 
Tier 35: 278 
Tier 36: 283 
Tier 37: 288 
Tier 38: 298 
Tier 39: 308 
Tier 40: 318 
Tier 41: 323 
Tier 42: 328 
Tier 43: 338 
Tier 44: 348 
Tier 45: 358 
Tier 46: 363 
Tier 47: 368 
Tier 48: 378 
Tier 49: 388 
Tier 50: 398 
Tier 51: 418 
Tier 52: 448 
Tier 53: 488 
Tier 54: 548 
Tier 55: 588 
Tier 56: 618 
Tier 57: 648 
Tier 58: 688 
Tier 59: 748 
Tier 60: 788 
Tier 61: 848 
Tier 62: 888 
Tier 63: 988 
Tier 64: 1048 
Tier 65: 1088 
Tier 66: 1188 
Tier 67: 1248 
Tier 68: 1288 
Tier 69: 1388 
Tier 70: 1448 
Tier 71: 1488 
Tier 72: 1588 
Tier 73: 1648 
Tier 74: 1688 
Tier 75: 1788 
Tier 76: 1848 
Tier 77: 1888 
Tier 78: 2288 
Tier 79: 2688 
Tier 80: 3088 
Tier 81: 3488 
Tier 82: 3888 
Tier 83: 4488 
Tier 84: 4988 
Tier 85: 5988 
Tier 86: 6988 
Tier 87: 7888 
Alternate Tier 1: 8 
Alternate Tier 2: 18 
Alternate Tier 3: 23 
Alternate Tier 4: 28 
Alternate Tier 5: 38

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment