Skip to content

New Official SDKs for TypeScript, Python and Go

SerpKite
Get API key
Docs menu / Localization

Localization

Search Google as a user in a specific country, language and city with country, language, location, uule and ll, including code tables for common countries and languages.

View as Markdown

Google’s results depend heavily on where the searcher is and which language they use. SerpKite exposes the same levers Google uses, with plain names.

Parameter Controls Example
country Country the search runs from de
language Interface language de
location City or region, as free text "Munich, Bavaria, Germany"
uule A pre-encoded Google location w+CAIQICI...
ll Exact map viewport (/v1/maps only) "@48.137,11.575,14z"

Defaults are country: "us" and language: "en". The normalised values come back in request.country and request.language on every response. Without location, results are country-level.

Country and language

country is a two-letter ISO 3166-1 alpha-2 country code (case-insensitive). language is a language code (en, de) or a language plus region (pt-BR, zh-TW). They are independent: country: "ch" with language: "fr" is a French-speaking user in Switzerland.

curl https://api.serpkite.com/v1/search \
  -H "Authorization: Bearer $SERPKITE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q":"beste Kaffeemühle","country":"de","language":"de"}'

Set both to match your target market. Mixing them (German query, country: "us") is valid but returns what an American user searching in German sees, which is rarely what you want for rank tracking.

Invalid codes return 400 invalid_request (“country must be a country code”, “language must be a language code”) and are not billed.

City-level location

location is a free-text place name up to 256 characters. Use the canonical form “City, Region, Country”, e.g. "Austin, Texas, United States". It matters most for queries with local intent (“dentist”, “coffee near me”), for /v1/maps, /v1/places and /v1/shopping, and for local packs inside /v1/search.

curl https://api.serpkite.com/v1/places \
  -H "Authorization: Bearer $SERPKITE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q":"dentist","location":"Austin, Texas, United States","country":"us"}'

location overrides country for geography. Keep country set to the same country anyway, so the Google domain and language defaults line up.

uule

uule is Google’s own encoded location string. If you already store locations in that form (many rank trackers do), pass it directly; it overrides location. Maximum length is 512 characters. Most users should use location and let SerpKite handle the encoding.

Map viewport (ll)

On /v1/maps, ll pins the search to an exact viewport: @latitude,longitude,zoomz. Higher zoom means a smaller area.

curl https://api.serpkite.com/v1/maps \
  -H "Authorization: Bearer $SERPKITE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q":"coffee roasters","ll":"@52.52,13.405,14z"}'

Country codes

Common values of country. Any valid ISO 3166-1 alpha-2 code works, not only the ones listed.

countryCountry
usUnited States
gbUnited Kingdom
caCanada
auAustralia
inIndia
deGermany
frFrance
esSpain
itItaly
nlNetherlands
beBelgium
chSwitzerland
atAustria
seSweden
noNorway
dkDenmark
fiFinland
plPoland
czCzechia
ptPortugal
ieIreland
brBrazil
mxMexico
arArgentina
coColombia
clChile
jpJapan
krSouth Korea
sgSingapore
idIndonesia
myMalaysia
phPhilippines
thThailand
vnVietnam
trTürkiye
aeUnited Arab Emirates
saSaudi Arabia
zaSouth Africa
ngNigeria
nzNew Zealand

Language codes

Common values of language. Other language codes Google supports work too.

languageLanguage
enEnglish
deGerman
frFrench
esSpanish
itItalian
ptPortuguese
pt-BRPortuguese (Brazil)
nlDutch
svSwedish
daDanish
noNorwegian
fiFinnish
plPolish
csCzech
trTurkish
jaJapanese
koKorean
zh-CNChinese (Simplified)
zh-TWChinese (Traditional)
hiHindi
idIndonesian
thThai
viVietnamese
arArabic

Tips

  • For rank tracking, fix country, language, location and device per keyword and never change them between runs, or positions stop being comparable. See Rank tracking.
  • Mobile and desktop layouts differ; set device: "mobile" if your users are on phones. See Common parameters.
  • Localized results are cached per location, so max_age hits only when all of these parameters match.

Last updated: 2026-09-29