Google Trends hub

Google Trends Places API

The place tree used by the explore routes: country, subdivision and US metro ids with names and parents.

GET /v1/google-trends/geos

1 credit Failed requests are free

About this endpoint

GET /v1/google-trends/geos returns the places the explore routes accept for geo. The unfiltered tree holds 250 countries, 3,130 subdivisions and 301 US metro areas. Pass language to localise names, country to keep one country's places, and level as country, subdivision or metro.

data.geos[] is flattened, not nested. Each node has id (US, US-CA or US-CA-807), name, level and parentId; parentId is null for a country and otherwise is the parent code. data.total is the number of rows in this answer; a filter that matches no place returns lookupStatus: "not_found" with no rows. The response does not include a derived trendingSupported flag. The trending list serves countries and most subdivisions, and a place it does not serve is a free 400.

Google Trends Places API FAQ

What does a place id look like?

A country is US or DE. A subdivision prefixes its country, such as US-CA or DE-BY. A US metro adds its own code, such as US-CA-807. Send the id as geo on an explore route; the trending list serves countries and most subdivisions.

How do I get only one country's places?

Pass country=US. The answer keeps the country itself and everything whose id starts with US-. Add level=subdivision or level=metro to narrow further.

Are metros available outside the US?

No. The metro level is the US Nielsen DMA list, so it only appears for US places. Other countries stop at the subdivision level.

Is the list nested?

No. geos is a flat array. Use parentId to rebuild the tree, or filter by country and level to avoid walking it.

How much does a place lookup cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.