Skip to content

Website screenshot localization

Configure the visitor’s language, locale, time zone, and location to capture how a website appears for a specific audience. These settings can affect the language, date and number formatting, local times, and regional content displayed in the screenshot.

Use the settings that match how the website chooses its content:

SettingScreenshotOne optionWhat it controls
Language and localeAccept-Language through headersPreferred language and the browser’s locale for formatting dates, numbers, and currencies.
Time zonetime_zoneThe browser’s time zone for local dates and times.
IP locationip_country_code or proxyThe country the website sees from the connection’s IP address.
Browser geolocationgeolocation_latitude, geolocation_longitude, and geolocation_accuracyThe coordinates exposed to websites using the browser’s Geolocation API.

The website controls its translations, prices, currency, units, and regional content. You may also need its localized URL, a saved regional preference, or its language or market selector.

For most websites that offer multiple languages, setting Accept-Language is enough to request the language you want. Add the other settings when the page needs them.

Use the headers option to send an Accept-Language header. ScreenshotOne sends this header to the website and uses it to configure the browser’s language and locale.

For example, these options request German as used in Germany:

{
"url": "https://example.com",
"headers": ["Accept-Language:de-DE"]
}

Replace https://example.com with the website you want to capture. Other language tags include en-US for English as used in the United States and es-ES for Spanish as used in Spain.

The website decides how to use these preferences. Pages that use the browser’s locale for formatting can display dates, numbers, and currencies accordingly, while a website with its own language settings may require one of the approaches below.

The time_zone option controls the browser’s time zone. This is useful when the page displays local dates or times. The language and time zone are separate settings, so choose both for the audience you want to capture.

For German with Berlin’s time zone:

{
"url": "https://example.com",
"headers": ["Accept-Language:de-DE"],
"time_zone": "Europe/Berlin"
}

Here is a complete request you can adapt with your API key and target URL:

Terminal window
curl --get 'https://api.screenshotone.com/take' \
--data-urlencode 'access_key=YOUR_ACCESS_KEY' \
--data-urlencode 'url=https://example.com' \
--data-urlencode 'headers=Accept-Language:de-DE' \
--data-urlencode 'time_zone=Europe/Berlin' \
--data-urlencode 'format=png' \
--output screenshot.png

If the website reads the visitor’s coordinates through the browser’s Geolocation API, set geolocation_latitude and geolocation_longitude. Both coordinates are required. Use geolocation_accuracy to set the accuracy in meters.

For example, these options set coordinates in Berlin alongside German language preferences and Berlin’s time zone:

{
"url": "https://example.com",
"headers": ["Accept-Language:de-DE"],
"time_zone": "Europe/Berlin",
"geolocation_latitude": 52.52,
"geolocation_longitude": 13.405,
"geolocation_accuracy": 50
}

Browser geolocation and IP location are separate signals. To align the IP location as well, add ip_country_code: "de" or use a German proxy as described below.

Some websites use a localized URL, a saved preference, or a market selector to choose their language and regional content. If the result still shows the wrong language, currency, or market, try the approach that matches how the website works:

  • Use its localized URL. If the language or market selector leads to a URL such as https://example.com/de/, use that URL in the url option.
  • Set its preference cookie. If the website stores the selected language or region in a cookie, pass that cookie through the cookies option. The cookie name, value, and domain depend on the website.
  • Use its language or market selector. The click or scripts options can help select the site’s preferences before the screenshot. The selectors and timing depend on the page.
  • Change the IP country. If the website chooses regional content by IP location, use one of the following options.

ScreenshotOne provides data center proxies through the ip_country_code option.

To request German while loading the page from a German IP address:

{
"url": "https://example.com",
"headers": ["Accept-Language:de-DE"],
"time_zone": "Europe/Berlin",
"ip_country_code": "de"
}

See the option reference for the list of supported countries. Choose the IP country alongside your language preferences, because a country can have several languages. Requests through a proxy can take longer, so use it when the website needs the location change.

You can also connect your own proxy provider using the proxy option. Choose a proxy in the country you need and keep the language and time zone settings:

{
"url": "https://example.com",
"headers": ["Accept-Language:de-DE"],
"time_zone": "Europe/Berlin",
"proxy": "http://USERNAME:PASSWORD@proxy.example.com:8080"
}

Use an HTTP proxy URL. When proxy is set, it overrides ip_country_code.

Follow our guide on how to use proxies for the setup steps and examples.

If the website does not offer the language you need, see how to translate and render a website as a screenshot. That guide shows how to use a translation API with the scripts option.

If you have questions or need a sample request, email support@screenshotone.com or ask us in the live chat on our website.

Share a few example URLs, the language, time zone, and location you want, and what you are trying to achieve. If you already have an API request, include its options without your API key. We can help you choose the settings and prepare a request for your examples.