---
title: "Update an editable canonical emission and recalculate it with a managed factor"
method: PATCH
path: "/emissions/canonical/{id}"
tags: ["Emissions"]
---

# Update an editable canonical emission and recalculate it with a managed factor

`PATCH /emissions/canonical/{id}`

## Path parameters

- `id` string, required

## Request body

- CanonicalEmissionUpdateRequest
  - `factorEntryId` string, required
  - `rawValue` number, double, required

## Response `200`

Updated canonical emission

- CanonicalEmissionResponse
  - `data` CanonicalEmissionItem, required
    - `activityType` string, nullable
    - `amountUnit` string, nullable
    - `categoryName` string, nullable
    - `createdAt` string, date-time, required
    - `description` string, nullable
    - `editable` boolean, required
    - `endDate` string, date-time, nullable
    - `factorArchived` boolean, required — True when the linked factor entry was archived after this emission was created.
    - `factorDisplayName` string, nullable
    - `factorEntryId` string, nullable
    - `factorLibraryId` string, nullable
    - `factorProvenance` CanonicalFactorProvenance
    - `factorReleaseId` string, nullable
    - `factorValue` number, double, nullable
    - `id` string, required
    - `isCarbon` boolean, required
    - `locationDisplay` string, nullable
    - `locationId` string, nullable
    - `metricKind` 'emission_output', required
    - `name` string, required
    - `origin` 'template' | 'direct_upload', required
    - `provenanceStatus` 'authoritative', required
    - `rawValue` number, double, nullable
    - `scope` integer, nullable
    - `sourceFile` CanonicalEmissionSourceFile
      - `contentType` string, nullable
      - `fileName` string, required
      - `uploadId` string, required
    - `sourceRecordId` string, nullable
    - `sourceType` string, required
    - `spendCurrency` string, nullable
    - `spendValue` number, double, nullable
    - `startDate` string, date-time, required
    - `subCategoryName` string, nullable
    - `supplierDisplay` string, nullable
    - `supplierId` string, nullable
    - `unit` string, required
    - `value` number, double, required
  - `meta` object

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict

---

[API](https://skmtc.dev/greentally/apis/esgai-api.md) · [All operations](https://skmtc.dev/greentally/apis/esgai-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/greentally/esgai-api/revisions/4fccdcaa5e57/schema)
