Apple storefront IDs: what X-Apple-Store-Front is and the numbers you need

An Apple storefront ID is a five- or six-digit number identifying one country's App Store. The United States is 143441. Some of Apple's endpoints will not accept a two-letter country code and want this number in an HTTP header instead:

X-Apple-Store-Front: 143441-1,29

Here are the ones worth having to hand:

Country ISO code Storefront ID
Australia au 143460
Brazil br 143503
Canada ca 143455
France fr 143442
Germany de 143443
India in 143467
Italy it 143450
Japan jp 143462
Mexico mx 143468
Netherlands nl 143452
South Korea kr 143466
Spain es 143454
Sweden se 143456
United Kingdom gb 143444
United States us 143441

Fifteen territories, which is fifteen out of roughly 175. The full list is not in this article and probably should not be in any article, for reasons covered below.

Note gb, not uk. Apple uses the ISO code for the United Kingdom, and uk is rejected.

What the header is actually for

Most of what you need from Apple is available through the public iTunes Search API, which takes a plain two-letter country code:

https://itunes.apple.com/search?term=habit+tracker&country=de&entity=software&limit=200
https://itunes.apple.com/lookup?bundleId=com.example.app&entity=software

No storefront ID, no header, no credentials. If you are doing keyword rank checks or pulling a competitor's public listing, this is the endpoint and you can stop reading.

The storefront ID matters for the older, undocumented endpoints that predate that API and never got a country parameter. The search suggestions endpoint is the one most people end up wanting:

GET https://search.itunes.apple.com/WebObjects/MZSearchHints.woa/wa/hints
      ?clientApplication=Software&term=habit
Header: X-Apple-Store-Front: 143443-1,29

That returns the autocomplete terms Apple offers a real shopper typing "habit" in the German App Store. It is a genuinely useful signal, and there is no supported alternative, so the header is the price of entry.

The WebObjects in the path is a clue to its age. These are not App Store Connect API endpoints, they are the endpoints iTunes itself used, and they behave accordingly.

What -1,29 means

Honestly: nobody outside Apple knows for certain, and Apple has never documented it.

The suffix appears to encode a language index and a client or platform version, so 143443-1,29 reads as the German storefront, language variant 1, client generation 29. That is the community reading, arrived at by observation, not a published specification.

What is verifiable is that the suffix is required. Sending a bare 143443 gets you a different response shape or nothing at all, and the working value is the one that is currently working. Copy it, do not derive it.

Why you should not trust a big list of these

You can find tables of 175 storefront IDs online. They are mostly correct, mostly scraped from each other, and occasionally wrong in ways you will not notice.

Three specific hazards:

Territories change. Apple has opened and closed storefronts, and has changed regional groupings. An ID that worked in 2017 may map to a territory that has since been reorganised.

The endpoints are unsupported. Nothing about MZSearchHints.woa is covered by an Apple API contract. It can change response shape, start requiring different headers, rate-limit differently by region, or go away. Code that depends on it needs to fail gracefully, not retry harder.

A wrong storefront returns plausible data. This is the real problem. Send the Brazilian ID when you meant Mexico and you get valid suggestions in Portuguese, which look fine until someone notices the Mexican rank tracking has been Brazilian for a month. Unlike a bad locale code, a wrong-but-valid storefront ID does not error.

So the useful discipline is to carry only the storefronts you actually track, verify each one once against a result you can recognise, and add new ones deliberately. Fifteen verified IDs beat 175 copied ones.

Storefronts, territories and locales are three different things

Worth separating, because all three get called "region":

Concept Vocabulary Controls
Locale en-US, ja, de-DE The language of your listing text
Territory USA, JPN, DEU in App Store Connect; us, jp, de in the search API Availability and price
Storefront 143441, 143462, 143443 Which country's store an undocumented endpoint answers as

They do not line up neatly. App Store Connect's territory identifiers are three-letter codes, the iTunes Search API wants two letters, and the hints endpoint wants a number. The same country therefore has three different identifiers depending on which Apple surface you are talking to, and none of them is derivable from the others.

Google Play, for what it is worth, uses two-letter country codes throughout and has no equivalent numeric concept. It also exposes no search API at all, so the whole storefront question does not arise there. The trade is real: Apple gives you undocumented endpoints that work, Google gives you documented endpoints that do not cover search.

If you are building rank tracking on this

Two things worth knowing before you start.

The search API allows roughly 20 requests a minute before it starts refusing you, so a sweep across many keywords and countries needs a delay between calls rather than concurrency. Politeness here is not etiquette, it is the difference between data and a 403.

And when the hints endpoint is unavailable, record that it was unavailable. A demand signal that silently becomes zero when a request fails is worse than no signal, because zero looks like an answer.

AppSubmit uses exactly the fifteen storefronts in the table above for its Apple demand probes, and skips a check rather than reporting a fabricated one when the endpoint refuses. The IDs are the whole dependency, and the table is all of it.

Last reviewed 2026-08-17. Apple and Google change their rules without notice, so check anything decision-critical against their live documentation.