Storelift › Guides › App Store storefront country codes
App Store storefront country codes
Storefront lists circulate as copied gists, and a wrong ID does not announce itself: Apple answers the request and returns nothing, which reads as "no demand in that country" rather than as an error. Every row below was measured against three Apple endpoints on 2026-08-26. 2 candidates failed and were dropped.
How the values are used
Three different values do three different jobs, and mixing them up is the usual cause of an empty result:
- Country code — the two-letter code the public iTunes endpoints take as
country=. It is what/searchand/lookupunderstand. - Storefront header — the value of the
X-Apple-Store-Frontrequest header, in the form<id>,29. The,29suffix is the platform part; a header carrying the bare ID silently returns nothing. - Default language — the
lang=value Apple accepts for that storefront. An invalid one is rejected outright; a valid but wrong one quietly changes what the ranking looks like, because results are read in that language.
tr_tr.How each row was verified
- Search hints. A hint request is sent with the
X-Apple-Store-Frontheader. A real storefront returns 10 suggested terms; a made-up ID returns 0. This is the check that catches a wrong ID. - Language. A lookup is issued with
lang=. Apple rejects an invalid value explicitly:Invalid value(s) for key(s): [language]. Candidates are tried local-language-first and the first accepted one is kept. - Country. The same lookup is issued with
country=. An invalid code is rejected the same way./lookupis used rather than/searchon purpose:/searchis rate-limited hard enough that asking about 130 countries makes Apple return 403, and a 403 is indistinguishable from “no results in that country”.
A row is published only if all three pass. The IDs themselves came from two independent public lists that agree with each other and with the 27 storefronts already running in production — but agreement between lists is not evidence, so each one is measured anyway.
The 2 that were dropped
Bangladesh (bd) and Liechtenstein (li) appear in the circulating lists with storefront IDs, and both codes are accepted by Apple without an error. They still fail: the hint request returns 0 terms, and a lookup against a known app returns "resultCount":0.
All 128 storefronts
| Country | Code | Storefront ID | X-Apple-Store-Front | Default language |
|---|---|---|---|---|
| Algeria | dz | 143563 | 143563,29 | ar_sa |
| Angola | ao | 143564 | 143564,29 | pt_pt |
| Anguilla | ai | 143538 | 143538,29 | en_gb |
| Antigua & Barbuda | ag | 143540 | 143540,29 | en_gb |
| Argentina | ar | 143505 | 143505,29 | es_mx |
| Armenia | am | 143524 | 143524,29 | ru_ru |
| Australia | au | 143460 | 143460,29 | en_au |
| Austria | at | 143445 | 143445,29 | de_de |
| Azerbaijan | az | 143568 | 143568,29 | ru_ru |
| Bahamas | bs | 143539 | 143539,29 | en_gb |
| Bahrain | bh | 143559 | 143559,29 | ar_sa |
| Barbados | bb | 143541 | 143541,29 | en_gb |
| Belarus | by | 143565 | 143565,29 | ru_ru |
| Belgium | be | 143446 | 143446,29 | nl_nl |
| Belize | bz | 143555 | 143555,29 | en_gb |
| Bermuda | bm | 143542 | 143542,29 | en_gb |
| Bolivia | bo | 143556 | 143556,29 | es_mx |
| Botswana | bw | 143525 | 143525,29 | en_gb |
| Brazil | br | 143503 | 143503,29 | pt_br |
| British Virgin Is. | vg | 143543 | 143543,29 | en_gb |
| Brunei | bn | 143560 | 143560,29 | en_gb |
| Bulgaria | bg | 143526 | 143526,29 | bg_bg |
| Canada | ca | 143455 | 143455,29 | en_ca |
| Cayman Islands | ky | 143544 | 143544,29 | en_gb |
| Chile | cl | 143483 | 143483,29 | es_mx |
| China | cn | 143465 | 143465,29 | zh_cn |
| Colombia | co | 143501 | 143501,29 | es_mx |
| Costa Rica | cr | 143495 | 143495,29 | es_mx |
| Côte d’Ivoire | ci | 143527 | 143527,29 | fr_fr |
| Croatia | hr | 143494 | 143494,29 | hr_hr |
| Cyprus | cy | 143557 | 143557,29 | el_gr |
| Czechia | cz | 143489 | 143489,29 | cs_cz |
| Denmark | dk | 143458 | 143458,29 | da_dk |
| Dominica | dm | 143545 | 143545,29 | en_gb |
| Dominican Rep. | do | 143508 | 143508,29 | es_mx |
| Ecuador | ec | 143509 | 143509,29 | es_mx |
| Egypt | eg | 143516 | 143516,29 | ar_sa |
| El Salvador | sv | 143506 | 143506,29 | es_mx |
| Estonia | ee | 143518 | 143518,29 | et_ee |
| Finland | fi | 143447 | 143447,29 | fi_fi |
| France | fr | 143442 | 143442,29 | fr_fr |
| Germany | de | 143443 | 143443,29 | de_de |
| Ghana | gh | 143573 | 143573,29 | en_gb |
| Greece | gr | 143448 | 143448,29 | el_gr |
| Grenada | gd | 143546 | 143546,29 | en_gb |
| Guatemala | gt | 143504 | 143504,29 | es_mx |
| Guyana | gy | 143553 | 143553,29 | en_gb |
| Honduras | hn | 143510 | 143510,29 | es_mx |
| Hong Kong | hk | 143463 | 143463,29 | zh_hk |
| Hungary | hu | 143482 | 143482,29 | hu_hu |
| Iceland | is | 143558 | 143558,29 | is_is |
| India | in | 143467 | 143467,29 | en_in |
| Indonesia | id | 143476 | 143476,29 | en_us |
| Ireland | ie | 143449 | 143449,29 | en_gb |
| Israel | il | 143491 | 143491,29 | en_gb |
| Italy | it | 143450 | 143450,29 | it_it |
| Jamaica | jm | 143511 | 143511,29 | en_gb |
| Japan | jp | 143462 | 143462,29 | ja_jp |
| Jordan | jo | 143528 | 143528,29 | ar_sa |
| Kazakhstan | kz | 143517 | 143517,29 | ru_ru |
| Kenya | ke | 143529 | 143529,29 | en_gb |
| Kuwait | kw | 143493 | 143493,29 | ar_sa |
| Latvia | lv | 143519 | 143519,29 | lv_lv |
| Lebanon | lb | 143497 | 143497,29 | ar_sa |
| Lithuania | lt | 143520 | 143520,29 | lt_lt |
| Luxembourg | lu | 143451 | 143451,29 | fr_fr |
| Macao | mo | 143515 | 143515,29 | zh_hk |
| Madagascar | mg | 143531 | 143531,29 | fr_fr |
| Malaysia | my | 143473 | 143473,29 | ms_my |
| Maldives | mv | 143488 | 143488,29 | en_gb |
| Mali | ml | 143532 | 143532,29 | fr_fr |
| Malta | mt | 143521 | 143521,29 | en_gb |
| Mauritius | mu | 143533 | 143533,29 | en_gb |
| Mexico | mx | 143468 | 143468,29 | es_mx |
| Moldova | md | 143523 | 143523,29 | ro_ro |
| Montserrat | ms | 143547 | 143547,29 | en_gb |
| Nepal | np | 143484 | 143484,29 | en_gb |
| Netherlands | nl | 143452 | 143452,29 | nl_nl |
| New Zealand | nz | 143461 | 143461,29 | en_au |
| Nicaragua | ni | 143512 | 143512,29 | es_mx |
| Niger | ne | 143534 | 143534,29 | fr_fr |
| Nigeria | ng | 143561 | 143561,29 | en_gb |
| North Macedonia | mk | 143530 | 143530,29 | en_gb |
| Norway | no | 143457 | 143457,29 | nb_no |
| Oman | om | 143562 | 143562,29 | ar_sa |
| Pakistan | pk | 143477 | 143477,29 | en_gb |
| Panama | pa | 143485 | 143485,29 | es_mx |
| Paraguay | py | 143513 | 143513,29 | es_mx |
| Peru | pe | 143507 | 143507,29 | es_mx |
| Philippines | ph | 143474 | 143474,29 | en_gb |
| Poland | pl | 143478 | 143478,29 | pl_pl |
| Portugal | pt | 143453 | 143453,29 | pt_pt |
| Qatar | qa | 143498 | 143498,29 | ar_sa |
| Romania | ro | 143487 | 143487,29 | ro_ro |
| Russia | ru | 143469 | 143469,29 | ru_ru |
| Saudi Arabia | sa | 143479 | 143479,29 | ar_sa |
| Senegal | sn | 143535 | 143535,29 | fr_fr |
| Serbia | rs | 143500 | 143500,29 | en_gb |
| Singapore | sg | 143464 | 143464,29 | en_gb |
| Slovakia | sk | 143496 | 143496,29 | sk_sk |
| Slovenia | si | 143499 | 143499,29 | sl_si |
| South Africa | za | 143472 | 143472,29 | en_gb |
| South Korea | kr | 143466 | 143466,29 | ko_kr |
| Spain | es | 143454 | 143454,29 | es_es |
| Sri Lanka | lk | 143486 | 143486,29 | en_gb |
| St. Kitts & Nevis | kn | 143548 | 143548,29 | en_gb |
| St. Lucia | lc | 143549 | 143549,29 | en_gb |
| St. Vincent | vc | 143550 | 143550,29 | en_gb |
| Suriname | sr | 143554 | 143554,29 | en_gb |
| Sweden | se | 143456 | 143456,29 | sv_se |
| Switzerland | ch | 143459 | 143459,29 | de_de |
| Taiwan | tw | 143470 | 143470,29 | zh_tw |
| Tanzania | tz | 143572 | 143572,29 | en_gb |
| Thailand | th | 143475 | 143475,29 | th_th |
| Trinidad & Tobago | tt | 143551 | 143551,29 | en_gb |
| Tunisia | tn | 143536 | 143536,29 | ar_sa |
| Türkiye | tr | 143480 | 143480,29 | tr_tr |
| Turks & Caicos | tc | 143552 | 143552,29 | en_gb |
| UAE | ae | 143481 | 143481,29 | en_us |
| Uganda | ug | 143537 | 143537,29 | en_gb |
| Ukraine | ua | 143492 | 143492,29 | uk_ua |
| United Kingdom | gb | 143444 | 143444,29 | en_gb |
| United States | us | 143441 | 143441,29 | en_us |
| Uruguay | uy | 143514 | 143514,29 | es_mx |
| Uzbekistan | uz | 143566 | 143566,29 | ru_ru |
| Venezuela | ve | 143502 | 143502,29 | es_mx |
| Vietnam | vn | 143471 | 143471,29 | vi_vn |
| Yemen | ye | 143571 | 143571,29 | ar_sa |
node tools/publish_storefronts.mjs.Frequently asked
Why does my request return an empty result instead of an error?
Almost always the header. A wrong storefront ID, or an ID sent without the ,29 platform suffix, is a well-formed request Apple answers with nothing. There is no error to catch, which is why a list has to be measured rather than trusted.
The App Store is in 175 countries. Why 128?
128 is what we measure, not what exists. A storefront is included when all three checks pass and we can read rank there reliably; 2 candidates failed and were dropped. Publishing a longer list would mean publishing rows we cannot stand behind.
Is the language column the full list of languages for a store?
No. It is the default we measured and read results in. Apple serves several languages in many storefronts; the column answers “which value does Apple accept and which one do we read”, not “which languages exist there”.
How often is this re-measured?
It is re-run when a storefront is added or a measurement starts failing. The date on the page is the date of the last run — if that date is old, the list is old, and we would rather show it than hide it.
See this for your own app
Paste your store link, add your keywords. Rank, the apps above you and demand are measured every day.
Start free →