---
title: "Get one carbon factor version"
method: GET
path: "/api/v1/carbon-factors/{version}"
tags: ["Factors"]
---

# Get one carbon factor version

`GET /api/v1/carbon-factors/{version}`

## Request

- Base URL: `https://api.crbonfree.com`
- URL: `https://api.crbonfree.com/api/v1/carbon-factors/{version}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`
- TypeScript: <https://skmtc.dev/crbonfree/apis/crbonfree-api/docs/api/v1/carbon-factors/:version/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns the full factor set for a specific version, e.g. `v1.1`.

## Path parameters

- `version` string, required

## Response `200`

Factor set for the version

- object
  - `success` true, required
  - `data` CarbonFactorSet, required
    - `version` string, required
    - `active` boolean, required: True when this is the version the pipeline currently writes with.
    - `layered` boolean, required: True when the version carries the v1.2 layered-emissions factors.
    - `factors` CarbonFactor[], required
      - `version` string, required
      - `modelTier` string, required
      - `modelPatterns` string[], required: Case-insensitive glob patterns; first match wins, most specific tier first. A leading `vendor/` segment is stripped from the model id before matching (`openai/gpt-4o-mini` matches as `gpt-4o-mini`); an `arn:` id is matched whole.
      - `energyPerTokenPrefillJ` number, required
      - `energyPerTokenDecodeJ` number, required
      - `energyPerTokenCachedJ` number, required
      - `pue` number, required
      - `gridIntensityKgPerKwh` number, required
      - `uncertaintyPct` number, required
      - `wueLPerKwh` number, required: Water-use effectiveness; 0 on carbon-only v1.0 rows.
      - `gridWaterLPerKwh` number, required
      - `waterUncertaintyPct` number, required
      - `hostPowerFactor` number, nullable, required: v1.2 layered-emissions factor; null on legacy v1.0/v1.1 rows.
      - `clusterUtilization` number, nullable, required: v1.2 layered-emissions factor; null on legacy v1.0/v1.1 rows.
      - `embodiedKgPerMtok` number, nullable, required: v1.2 layered-emissions factor; null on legacy v1.0/v1.1 rows.
      - `trainingKgPerMtok` number, nullable, required: v1.2 layered-emissions factor; null on legacy v1.0/v1.1 rows.
      - `activityUncertaintyPct` number, nullable, required: v1.2 layered-emissions factor; null on legacy v1.0/v1.1 rows.
      - `emissionFactorUncertaintyPct` number, nullable, required: v1.2 layered-emissions factor; null on legacy v1.0/v1.1 rows.
      - `createdAt` string, required: ISO-8601; when the version was seeded.

## Other responses

- `400`: Bad request — validation failed or malformed JSON body
- `401`: Unauthorized — token missing, expired, or invalid
- `404`: Resource not found
- `429`: Too many requests — rate limit exceeded
- `500`: Internal server error
- `503`: Factor configuration is inconsistent or the active version is not seeded

## Changes

- **2026-09-08** `7703acd56f0a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/crbonfree/apis/crbonfree-api/changes/api/v1/carbon-factors/:version/get.md)

---

[API](https://skmtc.dev/crbonfree/apis/crbonfree-api.md) - [All operations](https://skmtc.dev/crbonfree/apis/crbonfree-api/llms.txt) - [OpenAPI document](https://skmtc.dev/crbonfree/apis/crbonfree-api/revisions/a21ffdb80e67?raw)
