Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Work with Data Commons, a platform providing programmatic access to public statistical data from global sources. Use this skill when working with demographic data, economic indicators, health statistics, environmental data, or any public datasets available through Data Commons. Applicable for querying population statistics, GDP figures, unemployment rates, disease prevalence, geographic entity resolution, and exploring relationships between statistical entities.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 32% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 56% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 26% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 0% | 0% |
Provides comprehensive access to the Data Commons Python API v2 for querying statistical observations, exploring the knowledge graph, and resolving entity identifiers. Data Commons aggregates data from census bureaus, health organizations, environmental agencies, and other authoritative sources into a unified knowledge graph.
Use this skill when the user explicitly asks for Data Commons/datacommons, Data Commons statistical variables, Data Commons entities/DCIDs, or population/economic indicators that fit the Data Commons knowledge graph.
Generic public data, open data, public dataset search, or public download-link collection by itself is not enough to select this skill. Those requests need a clearer Data Commons/statistical-graph signal before this skill becomes the route owner.
Install the Data Commons Python client with Pandas support:
bashuv pip install "datacommons-client[Pandas]"
For basic usage without Pandas:
bashuv pip install datacommons-client
The Data Commons API consists of three main endpoints, each detailed in dedicated reference files:
Query time-series statistical data for entities. See references/observation.md for comprehensive documentation.
Primary use cases:
Common patterns:
pythonfrom datacommons_client import DataCommonsClient client = DataCommonsClient() # Get latest population data response = client.observation.fetch( variable_dcids=["Count_Person"], entity_dcids=["geoId/06"], # California date="latest" ) # Get time series response = client.observation.fetch( variable_dcids=["UnemploymentRate_Person"], entity_dcids=["country/USA"], date="all" ) # Query by hierarchy response = client.observation.fetch( variable_dcids=["MedianIncome_Household"], entity_expression="geoId/06<-containedInPlace+{typeOf:County}", date="2020" )
Explore entity relationships and properties within the knowledge graph. See references/node.md for comprehensive documentation.
Primary use cases:
Common patterns:
python# Discover properties labels = client.node.fetch_property_labels( node_dcids=["geoId/06"], out=True ) # Navigate hierarchy children = client.node.fetch_place_children( node_dcids=["country/USA"] ) # Get entity names names = client.node.fetch_entity_names( node_dcids=["geoId/06", "geoId/48"] )
Translate entity names, coordinates, or external IDs into Data Commons IDs (DCIDs). See references/resolve.md for comprehensive documentation.
Primary use cases:
Common patterns:
python# Resolve by name response = client.resolve.fetch_dcids_by_name( names=["California", "Texas"], entity_type="State" ) # Resolve by coordinates dcid = client.resolve.fetch_dcid_by_coordinates( latitude=37.7749, longitude=-122.4194 ) # Resolve Wikidata IDs response = client.resolve.fetch_dcids_by_wikidata_id( wikidata_ids=["Q30", "Q99"] )
Most Data Commons queries follow this pattern:
python resolve_response = client.resolve.fetch_dcids_by_name( names=["California", "Texas"] ) dcids = [r["candidates"][0]["dcid"] for r in resolve_response.to_dict().values() if r["candidates"]]
python variables = client.observation.fetch_available_statistical_variables( entity_dcids=dcids )
python response = client.observation.fetch( variable_dcids=["Count_Person", "UnemploymentRate_Person"], entity_dcids=dcids, date="latest" )
python # As dictionary data = response.to_dict()
# As Pandas DataFrame df = response.to_observations_as_records()
Statistical variables use specific naming patterns in Data Commons:
Common variable patterns:
Count_Person - Total populationCount_Person_Female - Female populationUnemploymentRate_Person - Unemployment rateMedian_Income_Household - Median household incomeCount_Death - Death countMedian_Age_Person - Median ageDiscovery methods:
python# Check what variables are available for an entity available = client.observation.fetch_available_statistical_variables( entity_dcids=["geoId/06"] ) # Or explore via the web interface # https://datacommons.org/tools/statvar
All observation responses integrate with Pandas:
pythonresponse = client.observation.fetch( variable_dcids=["Count_Person"], entity_dcids=["geoId/06", "geoId/48"], date="all" ) # Convert to DataFrame df = response.to_observations_as_records() # Columns: date, entity, variable, value # Reshape for analysis pivot = df.pivot_table( values='value', index='date', columns='entity' )
For datacommons.org (default):
export DC_API_KEY="your_key"client = DataCommonsClient(api_key="your_key")For custom Data Commons instances:
client = DataCommonsClient(url="https://custom.datacommons.org")Comprehensive documentation for each endpoint is available in the references/ directory:
references/observation.md: Complete Observation API documentation with all methods, parameters, response formats, and common use casesreferences/node.md: Complete Node API documentation for graph exploration, property queries, and hierarchy navigationreferences/resolve.md: Complete Resolve API documentation for entity identification and DCID resolutionreferences/getting_started.md: Quickstart guide with end-to-end examples and common patternsfetch_available_statistical_variables() to see what's queryablefilter_facet_domains to ensure data from the same sourcereferences/ directoryOther measured skills in the registry, with their headline benchmark lift.