Skip to Content
AI SearchMarkets and Languages

Markets and Languages

A prompt in Asky is one wording in one language, tracked in one or more locations. The two are independent: an English question can be tracked in Germany, and the same question can exist as separate German and Swedish versions tracked wherever you choose. This page lists what Asky supports today and how to write it.

Locations and languages

Locations are the countries an AI search engine is asked from. Each location on a prompt counts as one tracked prompt toward your plan. Locations are written as two-letter country codes such as US, GB or DE.

Languages describe the wording of the prompt itself. They are always regional locales such as en-GB, de-DE or de-CH, because spelling and terminology differ between regions, and Market Coverage uses them to tell versions of a prompt apart. A bare en or de is not a language here.

How a prompt gets its language

  • Adding a prompt. The Language field is pre-filled from your brand’s language and the first location you chose. Languages of the selected locations are listed first.
  • Uploading a CSV. An optional language column sets it per row. Rows without one get the upload language you choose in the preview, which is required before import.
  • Changing it later. Use Change Language on a prompt row, or select several prompts and use Language in the selection bar. The wording itself never changes.
  • Market Coverage. Each market lists the languages it tracks. Changing a prompt to a language its market does not list yet adds that language to the market.

Writing them in a CSV

The upload accepts these columns, in any order, with the header names below or their aliases:

ColumnAliasesValue
locationlocations, country, countries, market, markets, geoOne or more country codes from the list below, separated by commas or semicolons. Common spellings such as UK are corrected and reported.
languagelang, locale, locale_code, language_codeA locale code from the list below in any case, or a language name or two-letter code, which resolves against the row’s first location.

A row with an unsupported location or language is reported by row number and skipped; nothing is guessed from the prompt text.

What we support today

Catalog version 2026-09-15.3. Run npm run docs:markets after changing lib/countries.ts or the locale catalog.

Locations

Every market a prompt can be tracked in, with the languages the catalog offers there. The default is what the Language field suggests for that location when the brand writes in that language.

LocationCodeLanguages offered
🇦🇺 AustraliaAUen-AU (default)
🇦🇹 AustriaATde-AT (default)
🇧🇪 BelgiumBEnl-BE, fr-BE, de-BE
🇧🇷 BrazilBRpt-BR (default)
🇧🇬 BulgariaBGbg-BG (default)
🇨🇦 CanadaCAen-CA, fr-CA
🇭🇷 CroatiaHRhr-HR (default)
🇨🇿 CzechiaCZcs-CZ (default)
🇩🇰 DenmarkDKda-DK (default)
🇪🇪 EstoniaEEet-EE (default)
🇫🇮 FinlandFIfi-FI (default), sv-FI
🇫🇷 FranceFRfr-FR (default)
🇩🇪 GermanyDEde-DE (default)
🇬🇷 GreeceGRel-GR (default)
🇭🇰 Hong KongHKzh-Hant-HK (default), en-HK
🇭🇺 HungaryHUhu-HU (default)
🇮🇳 IndiaINen-IN (default), hi-IN
🇮🇪 IrelandIEen-IE (default), ga-IE
🇮🇱 IsraelILhe-IL (default), ar-IL
🇮🇹 ItalyITit-IT (default)
🇯🇵 JapanJPja-JP (default)
🇱🇻 LatviaLVlv-LV (default)
🇱🇹 LithuaniaLTlt-LT (default)
🇱🇺 LuxembourgLUfr-LU, de-LU, lb-LU
🇲🇹 MaltaMTmt-MT (default), en-MT
🇲🇽 MexicoMXes-MX (default)
🇳🇱 NetherlandsNLnl-NL (default)
🇳🇿 New ZealandNZen-NZ (default), mi-NZ
🇲🇰 North MacedoniaMKmk-MK (default), sq-MK
🇳🇴 NorwayNOnb-NO (default), nn-NO
🇵🇱 PolandPLpl-PL (default)
🇵🇹 PortugalPTpt-PT (default)
🇷🇴 RomaniaROro-RO (default)
🇸🇦 Saudi ArabiaSAar-SA (default)
🇸🇬 SingaporeSGen-SG (default), zh-Hans-SG, ms-SG, ta-SG
🇸🇰 SlovakiaSKsk-SK (default)
🇸🇮 SloveniaSIsl-SI (default)
🇿🇦 South AfricaZAen-ZA (default), af-ZA, zu-ZA, xh-ZA
🇰🇷 South KoreaKRko-KR (default)
🇪🇸 SpainESes-ES (default), ca-ES, eu-ES, gl-ES
🇸🇪 SwedenSEsv-SE (default)
🇨🇭 SwitzerlandCHde-CH, fr-CH, it-CH
🇹🇷 TurkeyTRtr-TR (default)
🇦🇪 United Arab EmiratesAEar-AE (default), en-AE
🇬🇧 United KingdomGBen-GB (default)
🇺🇸 United StatesUSen-US (default), es-US

Languages

Every language a prompt can be written in. A language is always regional: en-GB and en-US are two languages here, and a bare en is never accepted.

CodeLanguageNative name
af-ZAAfrikaans (South Africa)Afrikaans (Suid-Afrika)
sq-MKAlbanian (North Macedonia)shqip (Maqedonia e Veriut)
ar-ILArabic (Israel)العربية (إسرائيل)
ar-SAArabic (Saudi Arabia)العربية (المملكة العربية السعودية)
ar-AEArabic (United Arab Emirates)العربية (الإمارات العربية المتحدة)
eu-ESBasque (Spain)euskara (Espainia)
bg-BGBulgarian (Bulgaria)български (България)
ca-ESCatalan (Spain)català (Espanya)
hr-HRCroatian (Croatia)hrvatski (Hrvatska)
cs-CZCzech (Czechia)čeština (Česko)
da-DKDanish (Denmark)dansk (Danmark)
nl-BEDutch (Belgium)Nederlands (België)
nl-NLDutch (Netherlands)Nederlands (Nederland)
en-AUEnglish (Australia)English (Australia)
en-CAEnglish (Canada)English (Canada)
en-HKEnglish (Hong Kong SAR China)English (Hong Kong SAR China)
en-INEnglish (India)English (India)
en-IEEnglish (Ireland)English (Ireland)
en-MTEnglish (Malta)English (Malta)
en-NZEnglish (New Zealand)English (New Zealand)
en-SGEnglish (Singapore)English (Singapore)
en-ZAEnglish (South Africa)English (South Africa)
en-GBEnglish (UK)English (UK)
en-AEEnglish (United Arab Emirates)English (United Arab Emirates)
en-USEnglish (US)English (US)
et-EEEstonian (Estonia)eesti (Eesti)
fi-FIFinnish (Finland)suomi (Suomi)
fr-BEFrench (Belgium)français (Belgique)
fr-CAFrench (Canada)Français (Canada)
fr-FRFrench (France)français (France)
fr-LUFrench (Luxembourg)français (Luxembourg)
fr-CHFrench (Switzerland)Français (Suisse)
gl-ESGalician (Spain)galego (España)
de-ATGerman (Austria)Deutsch (Österreich)
de-BEGerman (Belgium)Deutsch (Belgien)
de-DEGerman (Germany)Deutsch (Deutschland)
de-LUGerman (Luxembourg)Deutsch (Luxemburg)
de-CHGerman (Switzerland)Deutsch (Schweiz)
el-GRGreek (Greece)Ελληνικά (Ελλάδα)
he-ILHebrew (Israel)עברית (ישראל)
hi-INHindi (India)हिन्दी (भारत)
hu-HUHungarian (Hungary)magyar (Magyarország)
ga-IEIrish (Ireland)Gaeilge (Éire)
it-ITItalian (Italy)italiano (Italia)
it-CHItalian (Switzerland)Italiano (Svizzera)
ja-JPJapanese (Japan)日本語 (日本)
ko-KRKorean (South Korea)한국어 (대한민국)
lv-LVLatvian (Latvia)latviešu (Latvija)
lt-LTLithuanian (Lithuania)lietuvių (Lietuva)
lb-LULuxembourgish (Luxembourg)Lëtzebuergesch (Lëtzebuerg)
mk-MKMacedonian (North Macedonia)македонски (Северна Македонија)
ms-SGMalay (Singapore)Melayu (Singapura)
mt-MTMaltese (Malta)Malti (Malta)
mi-NZMāori (New Zealand)Māori (Aotearoa)
nb-NONorwegian Bokmål (Norway)norsk bokmål (Norge)
nn-NONorwegian Nynorsk (Norway)norsk nynorsk (Noreg)
pl-PLPolish (Poland)Polski (Polska)
pt-BRPortuguese (Brazil)português (Brasil)
pt-PTPortuguese (Portugal)português (Portugal)
ro-RORomanian (Romania)română (România)
zh-Hans-SGSimplified Chinese (Singapore)中文 (新加坡)
sk-SKSlovak (Slovakia)slovenčina (Slovensko)
sl-SISlovenian (Slovenia)slovenščina (Slovenija)
es-MXSpanish (Mexico)español (México)
es-ESSpanish (Spain)español (España)
es-USSpanish (United States)español (Estados Unidos)
sv-FISwedish (Finland)svenska (Finland)
sv-SESwedish (Sweden)Svenska (Sverige)
ta-SGTamil (Singapore)தமிழ் (சிங்கப்பூர்)
zh-Hant-HKTraditional Chinese (Hong Kong SAR China)中文 (中國香港特別行政區)
tr-TRTurkish (Türkiye)Türkçe (Türkiye)
xh-ZAXhosa (South Africa)IsiXhosa (EMzantsi Afrika)
zu-ZAZulu (South Africa)isiZulu (iNingizimu Afrika)

Language names

In a CSV or the API you may write a language name or a two-letter code instead of a locale. It resolves to the locale the row’s first location offers for that language, else to the fallback below. “German” in Switzerland is de-CH; “English” in Germany is en-US.

You writeCodeFallback locale
Chinesezhzh-Hans-SG
Danishdada-DK
Dutchnlnl-NL
Englishenen-US
Finnishfifi-FI
Frenchfrfr-FR
Germandede-DE
Italianitit-IT
Japanesejaja-JP
Koreankoko-KR
Norwegiannonb-NO
Polishplpl-PL
Portugueseptpt-PT
Spanisheses-ES
Swedishsvsv-SE
Last updated on