Geolocated
screenshots.
Test localized rendering from Paris, Montreal, Singapore, Sydney or Hanoi. Timezone, locale and geolocation emulated by the browser.
render_region5 regions available
fr-paris | Paris, France | Scaleway | Europe/Paris | fr-FR |
ca-montreal | Montreal, Canada | OVH Beauharnois | America/Montreal | en-CA |
sg-singapore beta | Singapore | OVH Singapore | Asia/Singapore | en-SG |
au-sydney beta | Sydney, Australia | OVH Sydney | Australia/Sydney | en-AU |
vn-hanoi beta | Hanoi, Vietnam | FPT residential FTTH | Asia/Ho_Chi_Minh | vi-VN |
Why multi-region rendering
Geo-restricted content
Streaming video, news, B2B platforms with country restrictions. Capture what a real user in Montreal, Singapore, Sydney or Hanoi actually sees, no VPN install, no third-party proxy service required.
Localized variants
Local currency pricing, translations, regional promotions, A/B banners. Verify your site serves the right version based on IP geolocation.
Regional compliance banners
GDPR in the EU, PIPEDA in Canada, PDPA in Singapore, Privacy Act in Australia, PDPL in Vietnam. Each CMP shows different copy based on visitor IP.
Multi-market competitive intel
Track competitor prices and offers across markets in parallel. One API, 5 egress regions, simultaneous captures ready to archive.
The regions, side by side
Five captures of ifconfig.co
taken from each of our regions. Country, latitude, timezone, and ISP all differ.
One parameter: render_region
curl -X POST https://api.shotbot.net/capture \
-H "Content-Type: application/json" \
-d '{
"key": "YOUR_API_KEY",
"url": "https://example.com/product/widget",
"render_region": "ca-montreal",
"viewport_width": 1280,
"wait_time": 5
}'
<?php
$ch = curl_init("https://api.shotbot.net/capture");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode([
"key" => "YOUR_API_KEY",
"url" => "https://example.com/product/widget",
"render_region" => "sg-singapore",
"viewport_width" => 1280,
]),
]);
$res = json_decode(curl_exec($ch), true);
echo $res["image"];
See Python, Node.js, Go, Ruby examples
How it works
- You send a
/capturerequest withrender_region: ca-montreal. - A worker picks the job up and launches Chromium with a network egress point in Canada.
- Before navigation, the browser sets
Accept-Language: en-CA, emulates timezoneAmerica/Montrealand Montreal geolocation. - All HTTP traffic exits with a Canadian IP. The target site serves its local variant.
- The capture comes back like any other: token, CDN URL, or HTTPS callback.
Public egress IPs for each region are listed at
api.shotbot.net/workers-ip.json
| handy for firewall whitelists or log analysis.
More regions coming
Need a specific egress point (UK, Germany, US West Coast, Japan, Brazil…)? Get in touch, we can add it within 48 hours.
Availability & pricing
Pricing: included with the Shotbot Pro subscription (5 000 captures/month, 29 €/month). Zero surcharge per region: one Hanoi capture = one Paris capture, same quota.
Free account: fr-paris region only (default).
Other regions return 403 pro_required.
GDPR and non-EU regions
Default rendering in fr-paris and the ca-montreal region
(partial European Commission adequacy decision, commercial sector) does not
involve transfers outside a recognized EU adequacy framework.
sg-singapore, au-sydney and vn-hanoi are flagged
as beta: Singapore, Australia and Vietnam do not benefit from an
adequacy decision under EU law.
By calling render_region: sg-singapore, au-sydney or vn-hanoi,
you instruct Shotbot, acting as processor, to route the render through a
non-EU egress point. The target page content (which may include personal
data of EU residents) may therefore transit through that egress point.
This instruction falls under your responsibility as controller under the GDPR:
you must ensure that this transfer is covered by your own compliance
framework (consent, legitimate interest, contractual clauses, etc.).
Account data, logs, and final images remain hosted in France. Only the render path (browser egress point) is localized outside the EU. See the privacy policy.




