Skip to content
Get started
Guides
Parameters & Configuration

Geotargeting

Route requests through a proxy in a specific country to extract the content your target page serves to visitors in that region.

Tabstack’s extraction and generation endpoints support an optional geo_target parameter that routes the request through a proxy server in the specified country. Use it when the page you’re targeting serves different content based on the visitor’s geographic location.


Pricing pages. Many SaaS and e-commerce sites show different prices, currencies, and plan structures based on location. A pricing page viewed from the US may show USD; the same URL from Germany shows EUR with different tiers.

Availability and inventory. Product availability, shipping options, and stock levels are often regionalized.

Localized content. News sites, marketplaces, and media platforms serve regionally relevant content by default.

Compliance monitoring. Verify that cookie banners, consent flows, and legal disclosures appear correctly in specific jurisdictions.

Search results. Some sites return location-aware search results even for identical queries.


Pass a geo_target object with a country property set to an ISO 3166-1 alpha-2 country code:

import Tabstack from '@tabstack/sdk'
const client = new Tabstack({ apiKey: process.env.TABSTACK_API_KEY })
// Extract pricing as seen from Germany
const result = await client.extract.json({
url: 'https://example.com/pricing',
geo_target: { country: 'DE' },
nocache: true, // Always fresh for regional pricing
json_schema: {
type: 'object',
properties: {
plans: {
type: 'array',
items: {
type: 'object',
properties: {
name: { type: 'string' },
price: { type: 'number', description: 'Price as a number in local currency' },
currency: { type: 'string', description: '3-letter currency code, e.g. EUR, USD' }
}
}
}
}
}
})

CodeCountry
USUnited States
GBUnited Kingdom
DEGermany
FRFrance
JPJapan
AUAustralia
CACanada
BRBrazil
INIndia
SGSingapore

Full list: ISO 3166-1 alpha-2 codes


To compare a page across multiple regions, run parallel requests with different geo_target values:

const regions = ['US', 'GB', 'DE', 'JP']
const results = await Promise.all(
regions.map(country =>
client.extract.json({
url: 'https://example.com/pricing',
geo_target: { country },
nocache: true,
json_schema: { /* pricing schema */ }
}).then(result => ({ country, result }))
)
)
for (const { country, result } of results) {
console.log(`${country}:`, result)
}

geo_target is confirmed available on /extract/json, /extract/markdown, and /generate/json. Support on /automate and /research is not documented — those endpoints target browser automation and multi-source research where regional routing has a less obvious use pattern. Verify against the SDK types before relying on it for those surfaces.

Caching is per-URL. If you’ve previously extracted a URL without geo_target, setting it and using nocache: true ensures a fresh regional fetch rather than a cached neutral-region result.