Chocodata

Docs

ChatGPT Claude

Country, region, and content language

How our API routes traffic to the right regional storefront and which languages each region actually serves.

Country, region, and content language

Three distinct concepts - don’t conflate them:

ConceptWhat you controlExample
Region (TLD)domain paramcom → the US store, de → the German store
Content languagelanguage paramen_US, de_DE, es_MX
Proxy egress countryautomatic, not exposedGerman store → DE residential IP

Proxy egress is automatic

You don’t configure proxy egress. When you hit ?domain=de we automatically route through a residential IP in Germany. When you hit ?domain=co.jp we route through Japan. This matching reduces the target site’s anti-bot score and gives you the real desktop-locale HTML.

There was briefly a country parameter that let customers force a specific egress IP. We removed it - obvious mismatches (e.g. scraping a German store through a US IP) trigger anti-bot defenses disproportionately and add complexity without customer value.

Content language override

Some sites serve a region in multiple languages. Pass ?language=xx_YY to override:

GET /api/v1/{site}/product?query=PRODUCT_ID&domain=com&language=es_US

This maps to the site’s ?language=es_US URL parameter. The site then serves the Spanish US-region content: prices in USD, shipping from US warehouses, but titles, descriptions, and bullets translated to Spanish.

Supported languages per region (a worked example)

Multi-region sites follow the same domain + language model, though supported values vary by site. The table below uses one large multi-region marketplace’s storefronts as a concrete, empirically tested example of how regions map to default and alternate languages. Treat it as an illustration of the pattern, not a global list.

MarketplaceDefaultOther languages that work
com (US)en_USde_DE, es_ES, es_US, zh_CN, pt_BR, ar_AE, en_GB
co.uk (UK)en_GBde_DE, fr_FR, pl_PL, ro_RO, en_US
de (Germany)de_DEen_GB, en_US, nl_NL, pl_PL, tr_TR, cs_CZ, fr_FR
fr (France)fr_FRen_GB, de_DE, nl_NL, ar_AE
it (Italy)it_ITen_GB, en_US, de_DE
es (Spain)es_ESen_GB, en_US, pt_BR, pt_PT, ca_ES
nl (Netherlands)nl_NLen_GB, de_DE
pl (Poland)pl_PL(monolingual)
se (Sweden)sv_SEen_GB
ca (Canada)en_CAen_US, en_GB, fr_CA, fr_FR, zh_CN
com.mx (Mexico)es_MXes_ES, en_US
com.br (Brazil)pt_BRen_US
com.au (Australia)en_AUen_US, en_GB, zh_CN
co.jp (Japan)ja_JPen_US, en_GB, zh_CN, ko_KR
sg (Singapore)en_SGen_US, en_GB, zh_CN
in (India)en_INen_US, hi_IN
com.tr (Turkey)tr_TRen_US, en_GB
ae (UAE)en_AEar_AE, en_US
sa (Saudi Arabia)ar_SAen_US, en_GB
eg (Egypt)ar_EGen_US, en_GB

If you pass a language that the region doesn’t support, the site silently falls back to the region’s default. No error from us.

What doesn’t change with language

The language parameter only affects presentation (titles, descriptions, bullets, UI text). It doesn’t affect:

  • Price - always shown in the region’s native currency
  • Availability / stock - physical availability is per-region, not per-language
  • Shipping - ships from the region
  • Reviews - a site may show reviews from multiple sources; the language flag doesn’t filter them

If you need Spanish-language product data from the Mexican store, use domain=com.mx (which defaults to es_MX). If you want Spanish-language data from the US store (available to US-Spanish speakers), use domain=com&language=es_US.