You can export your Carbon Footprint data to BigQuery in order to perform data analysis, or to create custom dashboards and reports.
The Carbon Footprint export captures estimated greenhouse gas emissions associated with the usage of covered Google Cloud services for the selected billing account.
After configuring an export, you are charged for the BigQuery resources used to store and query the exported data.
To create a Carbon Footprint export, we recommend having the following IAM roles:
More precisely, you must have the following IAM permissions on the Google Cloud project:
resourcemanager.projects.updateserviceusage.services.enablebigquery.transfers.updateAnd the following IAM permission on the billing account:
billing.accounts.getCarbonInformationIf your organization is using VPC Service Controls, an ingress rule needs to be defined for the BigQuery API and BigQuery Data Transfer Service API.
For your Ingress policy rule:
els-da-carbon@gcp-carbon-footprint-exports.iam.gserviceaccount.com.Carbon Footprint data is exported via the
BigQuery Data Transfer Service.
The data transfer creates a
monthly partitioned table
called carbon_footprint in the BigQuery dataset of your choice.
Carbon Footprint exports each month's data on the 15th day of the following month. For example, carbon data for September 2022 will be exported on October 15, 2022.
Once a Carbon Footprint transfer config has been created, it will automatically export future carbon reports on the 15th of every month. You will also be able to run a backfill to request historical data back to January 2021.
Take the following steps to initiate the export:
XXXXXX-XXXXXX-XXXXXX.Use the bq mk --transfer_config command
to initiate the export:
bq mk \ --transfer_config \ --target_dataset=DATASET \ --display_name=NAME \ --params='{"billing_accounts":"BILLING_ACCOUNT_IDS"}' \ --data_source='61cede5a-0000-2440-ad42-883d24f8f7b8'
Where:
XXXXXX-XXXXXX-XXXXXX,XXXXXX-XXXXXX-XXXXXXUse the bigquery_data_transfer_config Terraform resource to create an export:
resource "google_bigquery_data_transfer_config" "RESOURCE_NAME" { display_name = "NAME" data_source_id = "61cede5a-0000-2440-ad42-883d24f8f7b8" destination_dataset_id = google_bigquery_dataset.DATASET.dataset_id params = { billing_accounts = "BILLING_ACCOUNT_IDS" } }
Where:
carbon_export.DATASET is the name of the google_bigquery_dataset Terraform
resource to use as the target dataset for the export.
BILLING_ACCOUNT_IDS is your billing account ID or a
comma-separated list of billing account IDs. For example:
XXXXXX-XXXXXX-XXXXXX,XXXXXX-XXXXXX-XXXXXX
The transfer config has now been created and will export data on the 15th of every future month.
Note: If you are using a method other than the console for exporting the data, the data source will not be automatically enrolled in your project. So, please use the Enroll Data Sources API to enroll the data source in your project before running the export operation.
The transfer config does not automatically export historical data. To request historical data back to January 2021, schedule a data backfill using the following steps.
Take the following steps to schedule the data backfill:
Data backfills will be created for the selected range, exporting historical monthly data to the destination dataset.
Use the bq mk --transfer_run command
to create a backfill:
bq mk \ --transfer_run \ --start_time=START_TIME \ --end_time=END_TIME \ CONFIG
Where:
2021-02-15T00:00:00Z.
Note that February 15, 2021 is the earliest date you can specify here,
as it contains the January 2021 data.2022-09-15T00:00:00Z.
You can use the current date.projects/0000000000000/locations/us/transferConfigs/00000000-0000-0000-0000-000000000000.Once the data is exported, you can use BigQuery to view and query the data. Read more about the data schema.
You can share the exported data to others in your organization by granting them the BigQuery User IAM role on the project selected earlier. Alternatively, you can grant fine-grained access at the dataset or table level using the BigQuery Data Viewer IAM role.
You can see all existing Carbon Footprint exports by clicking on Data export and opening the side-panel.
You can then manage each Carbon Footprint export by clicking on the transfer name to visit the BigQuery Data Transfer Service or dataset name to see the destination dataset. Learn more about Working with transfers.
After you've configured your carbon footprint export to BigQuery and the scheduled export has completed, you can export that data from BigQuery to Google Sheets or CSV.
The following query lets you save the entire contents of the exported table:
SELECT
usage_month,
billing_account_id,
project.number AS project_number,
project.id AS project_id,
service.id AS service_id,
service.description AS service_description,
location.location AS location,
location.region AS region,
carbon_model_version,
carbon_footprint_kgCO2e.scope1 AS carbon_footprint_scope1,
carbon_footprint_kgCO2e.scope2.location_based AS carbon_footprint_scope2_location_based,
carbon_footprint_kgCO2e.scope3 AS carbon_footprint_scope3,
carbon_footprint_total_kgCO2e.location_based AS carbon_footprint_total_location_based
FROM
`PROJECT.DATASET.carbon_footprint`
ORDER BY
usage_month DESC,
carbon_footprint_total_location_based DESC
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-07-17 UTC.