---
title: "Get the active carbon factor set"
method: GET
path: "/api/v1/carbon-factors/current"
tags: ["Factors"]
---

# Get the active carbon factor set

`GET /api/v1/carbon-factors/current`

## Request

- Base URL: `https://api.crbonfree.com`
- URL: `https://api.crbonfree.com/api/v1/carbon-factors/current`
- 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/current/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns the factor set the pipeline currently writes new calculations with. Responds 503 if that version is not seeded, rather than falling back to another version.

## Response `200`

Active factor set

- 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
- `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/current/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)
