🧪 Get Vehicle Carbon Emissions
Estimate a vehicle’s CO2 emissions over a date window from odometer-derived miles traveled and an emission factor based on the vehicle’s GVWR class and fuel type, decoded from its VIN via the NHTSA vPIC registry.
Method: Tank-to-wheel (tailpipe combustion) only — does not include upstream well-to-tank fuel-production emissions. See method on the response.
Factors: kg CO2/vehicle-mile by GVWR class, from the EPA GHG Emission Factors Hub (Table 8, distance-based method, January 2025 edition): Class 1 (Passenger Car) 0.297, Class 1-2a (Light-Duty Truck) 0.394, Class 2b-8 (Medium-/Heavy-Duty Truck) 1.298 — https://www.epa.gov/system/files/documents/2025-01/ghg-emission-factors-hub-2025.pdf . See factor_version on the response for which table version produced a given figure. Electric and CNG vehicles aren’t covered by this table and return a null factor/co2.
Window: Defaults to the trailing 30 days. Supply from_date and to_date to request a custom range (max 90 days).
Nullability: miles_traveled/co2_kg are null when an odometer reading isn’t available at both boundaries of the window. gvwr_class/fuel_type/vehicle_class_bucket/emission_factor_kg_per_mile are null when the vehicle has no VIN on file or the VIN couldn’t be decoded. vehicle_class_bucket/emission_factor_kg_per_mile/co2_kg are also null when fuel_type isn’t covered by the factor table (electric, CNG). These are independent of each other.
This endpoint is available for early access. The core schema is stable, but minor details — such as field names or added fields — may change before it becomes generally available. Backward compatibility is not guaranteed.
See API Stability & Versioning for details on provisional endpoints.
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
Query Parameters
Inclusive start of the emissions window. Format: YYYY-MM-DD Default: 30 days before yesterday. Restriction: to_date - from_date cannot exceed 90 days.
null
Inclusive end of the emissions window. Format: YYYY-MM-DD Default: yesterday. Restriction: to_date - from_date cannot exceed 90 days.
null
Response
Successful Response
Estimated CO2 emissions for a single vehicle over a date window.
Estimate is miles_traveled x emission_factor_kg_per_mile, where miles_traveled comes from
odometer readings and emission_factor_kg_per_mile is derived from the vehicle's GVWR class
(decoded from its VIN via the NHTSA vPIC registry). method and factor_version always
identify which methodology and factor table produced (or would have produced) the figure,
regardless of whether this particular estimate could be computed.
method is tank-to-wheel (tailpipe combustion) only — it does not include upstream
well-to-tank fuel-production emissions (roughly another 15-25% under GLEC/ISO 14083).
miles_traveled and co2_kg are null when an odometer reading isn't available at both
boundaries of the window. gvwr_class, fuel_type, vehicle_class_bucket, and
emission_factor_kg_per_mile are null when the vehicle has no VIN on file or the VIN can't be
decoded (NHTSA timeout/error, or VIN not recognized). vehicle_class_bucket,
emission_factor_kg_per_mile, and co2_kg are also null when gvwr_class doesn't map to a
recognized class, or when fuel_type is one this factor table doesn't cover (electric, CNG) —
fuel_type itself stays populated in that case so the reason is visible. These are
independent: e.g. class/factor can be populated while miles/co2 are null, or vice versa. No
field being null ever produces an error response — an estimate is only computed when every
required input is available and supported.
Catena vehicle identifier.
Date range used for the estimate.
VIN on file for the vehicle. Null if none is recorded.
Odometer-derived miles traveled over the window. Null if an odometer reading is missing at either boundary.
Raw GVWR value decoded from the VIN via NHTSA vPIC (e.g. 'Class 8: 33,001 lb and above'). Null if the VIN is missing/undecodable or NHTSA is unavailable.
Raw FuelTypePrimary value decoded from the VIN via NHTSA vPIC (e.g. 'Diesel', 'Electric'). Null under the same conditions as gvwr_class.
Emission-factor bucket the GVWR class mapped to. Null under the same conditions as gvwr_class, if GVWR didn't match a recognized class, or if fuel_type isn't covered by this factor table (electric, CNG).
1, 1-2a, 2b-8 Emission factor applied (kg CO2 / vehicle-mile). Null under the same conditions as vehicle_class_bucket.
Estimated CO2 emissions in kg: miles_traveled x emission_factor_kg_per_mile. Null if either input is null.
Emissions accounting method used. v1: always tank-to-wheel tailpipe combustion, no upstream fuel-production emissions.
"tailpipe_only"Version identifier for the emission-factor table used to compute this estimate.