Geo
Look up the markets (regions), cities and languages D2TR covers.
The Geo endpoints expose the countries, cities and languages that D2TR maintains Discover profiles for, backed by our profile data plus ISO reference tables. They all require an API key and honour the key’s market allowlist: list endpoints are filtered to your allowed countries, and single-region lookups return 403 for a country outside it. Paths are documented under /v1/geo/*; the identical router is also mounted at /v2/geo/* with the same behaviour.
#List regions
/v1/geo/regionsAPI keyList the regions (countries) that have Discover profiles. Results are sorted by name and filtered to your key’s allowed countries; total reflects the count after that filtering.
active_onlybooleanoptionaldefaultfalse- Keep only regions with at least one active Discover profile.
with_statsbooleanoptionaldefaultfalse- Attach a
statsblock (population, internet population, mobile-Chrome population, total estimated Discover impressions/day) when the country has population data. entitystringoptionaldefaultnull- A Knowledge Graph id (
/m/...) or normalized entity name. Annotates each region withhas_entity_activityandentity_impressionsfor that entity. windowstringoptionaldefault24h- Impression window for the entity-activity check. One of
1h,24h,7d,30d. entity_onlybooleanoptionaldefaultfalse- When
entityis set, drop regions with no activity instead of just annotating them.
curl "https://d2tr.com/api/v1/geo/regions?active_only=true&with_stats=true" \
-H "X-API-Key: $D2TR_API_KEY"{
"regions": [
{
"alpha_2": "US",
"name": "United States of America",
"region": "Americas",
"sub_region": "Northern America",
"languages": ["en"],
"cities_count": 12,
"profiles_count": 3,
"is_active": true,
"stats": {
"population": 331000000,
"internet_population": 300000000,
"mobile_chrome_population": 180000000,
"total_discover_impressions_per_day": 540000000
},
"has_entity_activity": true,
"entity_impressions": 40213
},
"…"
],
"total": 9
}#Get a region
/v1/geo/regions/{alpha_2}API keyFetch details for a single region — its ISO codes, languages, cities and population stats.
alpha_2stringrequired- ISO 3166-1 alpha-2 country code. Uppercased server-side, so
usandUSboth resolve toUS.
curl "https://d2tr.com/api/v1/geo/regions/US" \
-H "X-API-Key: $D2TR_API_KEY"{
"alpha_2": "US",
"alpha_3": "USA",
"name": "United States of America",
"region": "Americas",
"sub_region": "Northern America",
"languages": ["en"],
"cities": [
{ "id": 101, "name": "New York", "is_active": true },
{ "id": 102, "name": "Los Angeles", "is_active": true }
],
"stats": {
"alpha_2": "us",
"population": 331000000,
"internet_population": 300000000,
"…": "…"
},
"total_articles": 0,
"articles_last_24h": 0,
"first_data_at": "2025-01-14T08:22:10+00:00"
}#List cities in a region
/v1/geo/regions/{alpha_2}/citiesAPI keyList the cities tracked within a region. If the region has no profiles, the response is an empty cities array.
alpha_2stringrequired- ISO 3166-1 alpha-2 code (uppercased server-side).
active_onlybooleanoptionaldefaultfalse- Keep only active cities.
curl "https://d2tr.com/api/v1/geo/regions/US/cities?active_only=true" \
-H "X-API-Key: $D2TR_API_KEY"{
"region": "US",
"cities": [
{ "id": 101, "name": "New York", "is_active": true },
{ "id": 102, "name": "Los Angeles", "is_active": true }
]
}#List languages
/v1/geo/languagesAPI keyList the languages derived from our Discover profiles, each with the regions it is served in. The language list itself is not region-filtered by your key. Results are sorted by language code ascending.
with_article_countsbooleanoptionaldefaultfalse- Attach an exact
article_count(count ofurlsin that language). This adds one count query per language, so it is slower.
curl "https://d2tr.com/api/v1/geo/languages?with_article_counts=true" \
-H "X-API-Key: $D2TR_API_KEY"{
"languages": [
{
"code": "en",
"name": "English",
"regions": ["AU", "GB", "US"],
"article_count": 1204331
},
{
"code": "es",
"name": "Spanish",
"regions": ["ES", "MX"],
"article_count": 402118
},
"…"
]
}