---
title: "PATCH /uploads/{id}/factor-agent/rows/{itemId}"
method: PATCH
path: "/uploads/{id}/factor-agent/rows/{itemId}"
tags: ["Uploads"]
---

# PATCH /uploads/{id}/factor-agent/rows/{itemId}

`PATCH /uploads/{id}/factor-agent/rows/{itemId}`

Edit one review row: its own factor (an override of its group's), a return to its group's factor, and/or its exclusion from every submit. Takes the analysis version the review was read at and answers with the new one, the row as the rows page sends it, and its group's summary.

## Path parameters

- `id` integer, required
- `itemId` string, required

## Request body

- DirectUploadFactorRowPatchRequest
  - `analysisVersionId` string, uuid, required
  - `clearOverride` boolean — Drop the row's own factor so it follows its group again; not with a factor.
  - `excluded` boolean
  - `factorId` string
  - `selectedFactor` DirectUploadFactorCandidate
    - `activityUnit` string
    - `confidence` 'high' | 'medium' | 'low'
    - `factorValue` number, double
    - `id` string, required
    - `libraryId` string
    - `libraryName` string
    - `name` string, required
    - `reason` string
    - `regionCode` string
    - `releaseId` string
    - `releaseYear` integer
    - `scope` integer
    - `unit` string
    - `warnings` string[]

## Response `200`

The new analysis version, the row and its group's summary

- DirectUploadFactorRowPatchResponse
  - `data` object, required
    - `analysisVersionId` string, uuid, required
    - `group` DirectUploadFactorGroup, required
      - `decision` object, required
      - `decisionSource` 'model' | 'memory' | 'reviewer', required
      - `display` object, required
      - `groupKey` string, required
      - `rowCount` integer, required
      - `selectedFactor` DirectUploadFactorCandidate
        - `activityUnit` string
        - `confidence` 'high' | 'medium' | 'low'
        - `factorValue` number, double
        - `id` string, required
        - `libraryId` string
        - `libraryName` string
        - `name` string, required
        - `reason` string
        - `regionCode` string
        - `releaseId` string
        - `releaseYear` integer
        - `scope` integer
        - `unit` string
        - `warnings` string[]
      - `selectedFactorId` string
      - `selections` DirectUploadFactorGroupSelection[], required
        - `regionCode` string
        - `releaseYear` integer
        - `rowCount` integer, required
        - `selectionKey` string, required
        - `unit` string
      - `status` 'processing' | 'completed' | 'needs_input', required
      - `statusCounts` DirectUploadFactorGroupStatusCounts, required — The group's review rows by how the review shows them; each row once: submitted, else excluded, else its decision.
        - `estimated` integer, required
        - `excluded` integer, required
        - `needsInput` integer, required
        - `ready` integer, required
        - `submitted` integer, required
      - `submittedCount` integer, required
      - `totals` DirectUploadFactorGroupTotals, required
        - `emissions` object, required
        - `quantity` object, required
        - `spend` object, required
    - `groupKey` string, required
    - `item` object, required

## Other responses

- `400` — A malformed edit (VALIDATION_ERROR), or a factor whose activity unit the row cannot use (FACTOR_UNIT_MISMATCH): the factor the edit names, or, for a return to its group's factor, the group's; nothing changes
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — The review changed (ANALYSIS_VERSION_CONFLICT), a document job is running (DOCUMENT_JOB_RUNNING), the analysis is not open for edits (ANALYSIS_NOT_REVIEWABLE), is not stored as rows (ANALYSIS_NOT_GROUPED), or the row is submitted (ROW_SUBMITTED)

## Changes

- **2026-10-02** `766c2a40e369` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/greentally/apis/esgai-api/changes/uploads/:id/factor-agent/rows/:itemId/patch.md)

---

[API](https://skmtc.dev/greentally/apis/esgai-api.md) · [All operations](https://skmtc.dev/greentally/apis/esgai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/greentally/apis/esgai-api/revisions/4189686230ca?raw)
