---
title: "Scan a BOM file for the product it describes"
method: POST
path: "/pcf/bom-scan"
---

# Scan a BOM file for the product it describes

`POST /pcf/bom-scan`

A quick first read of a BOM file (xlsx, csv, pdf or image, at most 10 MiB) for the product details the new-product form needs: name, product code, declared quantity and unit, where it is made. Nothing is stored; the file is uploaded again when the product is created. 503 AI_GATEWAY_UNAVAILABLE when the gateway is not configured. Requires org.write_data.

## Response `200`

What the file says about the product

- PcfBomScanResponse
  - `data` PcfBomScan, required
    - `declaredQuantity` number, double, nullable, required
    - `declaredUnit` string, nullable, required
    - `description` string, nullable, required
    - `estimatedLineCount` integer, nullable, required
    - `isBom` boolean, required
    - `productCode` string, nullable, required
    - `productName` string, nullable, required
    - `regionCode` string, nullable, required
    - `warnings` string[], required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `413` — Payload Too Large
- `415` — Unsupported Media Type

## Changes

- **2026-10-01** `b4751fd15397` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/greentally/apis/esgai-api/changes/pcf/bom-scan/post.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/b4751fd15397?raw)
