---
title: "Accept, reject or override an item (extraction stays immutable)"
method: PATCH
path: "/takeoffs/{takeoff_id}/items/{item_id}"
tags: ["Takeoffs"]
---

# Accept, reject or override an item (extraction stays immutable)

`PATCH /takeoffs/{takeoff_id}/items/{item_id}`

## Request

- Base URL: `https://api.aginera.ai/partner/v1`
- URL: `https://api.aginera.ai/partner/v1/takeoffs/{takeoff_id}/items/{item_id}`
- Auth: OAuth 2 (authorization code, authorization URL `https://auth.aginera.ai/oauth/authorize`, token URL `https://auth.aginera.ai/oauth/token`; client credentials, token URL `https://login.microsoftonline.com/65f567a9-6e6a-4f81-863c-aea4ece1f8eb/oauth2/v2.0/token`, scopes: `takeoffs:review`)

## Path parameters

- `takeoff_id` string, required
- `item_id` string, required

## Request body

- TakeoffItemUpdate: Review an item. The extracted quantity is never changed; set quantity_override instead.
  - `review_status` 'accepted' | 'rejected' | 'modified'
  - `quantity_override` number, nullable
  - `note` string

## Response `200`

OK

- TakeoffItem
  - `id` string, required
  - `takeoff_id` string, required
  - `group_id` string, nullable
  - `description` string, required
  - `trade` 'electrical' | 'mechanical' | 'plumbing' | 'fire_protection' | 'structural' | 'architectural' | 'civil' | 'process' | 'other', required
  - `category` string, required
  - `item_type` string, required
  - `measure_type` 'count' | 'length' | 'area' | 'volume' | 'weight' | 'time', required
  - `extracted_quantity` number, required
  - `quantity_override` number, nullable, required
  - `effective_quantity` number, required
  - `unit` string, required: Canonical unit code from /reference/units (extensible; not a closed enum). Examples EA, LF, FT, IN, SF, SY, CF, CY, LB, TON, HR, GAL, M, MM, M2, M3, KG, T, L, LS.
  - `tag` string, nullable, required
  - `attributes` object, required
  - `sheet` object, required
    - `number` string, nullable, required
    - `title` string, nullable, required
  - `page_number` integer, required
  - `geometry` union: Measured shape in page_normalized space (x, y in 0..1, origin top-left, page as displayed after rotation). bbox = [x_min, y_min, x_max, y_max].
    - object
      - `type` 'point', required
      - `page_number` integer, required
      - `coordinate_space` 'page_normalized', required
      - `coordinates` unknown[], required
        - unknown
    - object
      - `type` 'bbox', required
      - `page_number` integer, required
      - `coordinate_space` 'page_normalized', required
      - `coordinates` unknown[], required
        - unknown
    - object
      - `type` 'polyline', required
      - `page_number` integer, required
      - `coordinate_space` 'page_normalized', required
      - `coordinates` NormPoint[], required
        - unknown[]
          - unknown
      - `scale` Scale
        - `units_per_normalized_x` number, required: Real-world units spanned by the full normalized page width.
        - `unit` string, required: Canonical unit code from /reference/units (extensible; not a closed enum). Examples EA, LF, FT, IN, SF, SY, CF, CY, LB, TON, HR, GAL, M, MM, M2, M3, KG, T, L, LS.
        - `source` 'title_block' | 'scale_bar' | 'declared', required
    - object
      - `type` 'polygon', required
      - `page_number` integer, required
      - `coordinate_space` 'page_normalized', required
      - `coordinates` NormPoint[], required
        - unknown[]
          - unknown
      - `holes` array[]
        - NormPoint[]
          - unknown[]
            - unknown
      - `scale` Scale
        - `units_per_normalized_x` number, required: Real-world units spanned by the full normalized page width.
        - `unit` string, required: Canonical unit code from /reference/units (extensible; not a closed enum). Examples EA, LF, FT, IN, SF, SY, CF, CY, LB, TON, HR, GAL, M, MM, M2, M3, KG, T, L, LS.
        - `source` 'title_block' | 'scale_bar' | 'declared', required
  - `evidence` Evidence[], required
    - `page_number` integer, required
    - `bbox` unknown[], required: [x_min, y_min, x_max, y_max] normalised to page size, origin top-left.
      - unknown
  - `confidence` 'high' | 'medium' | 'low', required
  - `review_status` 'extracted' | 'accepted' | 'rejected' | 'modified', required
  - `source` 'plan' | 'schedule' | 'legend' | 'manual', required
  - `note` string, nullable, required

## Other responses

- `default`: Error (RFC 7807)

---

[API](https://skmtc.dev/aginera/apis/aginera-takeoff-estimation-api.md) · [All operations](https://skmtc.dev/aginera/apis/aginera-takeoff-estimation-api/llms.txt) · [OpenAPI document](https://skmtc.dev/aginera/apis/aginera-takeoff-estimation-api/revisions/39115958da1e?raw)
