country and the session runs on a machine egressing from that country, with a timezone and browser language that belong there. The three always agree, which is what sites check. Default US.
Overriding timezone and language
Settimezone (IANA name) or language (BCP-47) when the country’s default isn’t what you want. Both must come from that country’s lists on Countries, or the request is a 400: Unsupported timezone "Europe/Berlin" for country US. An unknown country fails the same way: Unsupported country "XX". Without timezone, you get the country’s dominant zone, and where Driver runs a managed network there, traffic is routed through that region so the network and the clock agree.
en-US; any other language is rejected. Elsewhere, leaving language out gets the country’s primary language. Chrome reports the nearest variant it ships: fr-CA came back as navigator.language fr-FR, with fr and en-US as fallbacks.
Accept-Language follows the same choice. A de-DE session sends de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7.
Hosted sessions get matching text-to-speech voices where available; where none exists, Web Speech is disabled so that surface can’t contradict the rest.
With your own proxy
AproxyUrl without timezone or language makes Driver geolocate the proxy’s exit and derive country and timezone from it. A country you pass must match that exit. See Proxies.
Availability
No free machine in the requested country is a503 with Retry-After: 2. Back off with a cap, then tell the user or pick another country.
Related
- Countries: every supported country with its timezones and languages
- Browser types
- Best practices: don’t override timezone or locale from your script