---
title: "POST /uploads/{id}/submit"
method: POST
path: "/uploads/{id}/submit"
---

# POST /uploads/{id}/submit

`POST /uploads/{id}/submit`

## Path parameters

- `id` string, required

## Request body

- UploadSubmitRequest
  - `emissions` UploadSubmitEmissionItem[], required
    - `emissions` UploadSubmitEmissionRow[], required
      - `activityType` string
      - `amount` number, required
      - `attachments` object[]
      - `calculationMethod` string
      - `categoryName` string, required
      - `country` string
      - `currency` string
      - `departmentId` string
      - `endDate` string, date-time, required
      - `factorSelection` DirectFactorSelection, required
        - `factorId` string, required
        - `mode` 'emission_factor_id', required
      - `id` string
      - `locationId` string
      - `metadata` object
      - `productId` string
      - `startDate` string, date-time, required
      - `subCategoryName` string, required
      - `supplierId` string
      - `type` 'activity' | 'spend', required
      - `unit` string
      - `waterCategory` string
    - `error` string
    - `fileId` integer, required
    - `remotePath` string
    - `status` 'finished' | 'processing' | 'error', required
  - `metadata` object
    - `currency` string — Managed factor currency (e.g. EUR, GBP). Typed replacement for the legacy currency metadata key.
    - `departmentId` string
    - `locationId` string
    - `sourceRegion` string — Managed factor source region (e.g. IE, UK). Typed replacement for the legacy sourceRegion/source_region/region metadata keys.
  - `sheets` UploadSubmitSheet[] — Optional reviewed template sheets submitted from the UI instead of the stored worker preview.
    - `activityType` 'stationary_energy' | 'electricity' | 'mobile_transport_passenger' | 'water' | 'purchased_goods_and_services' | 'freight_transport' | 'refrigerant_and_other', required
    - `headers` string[], required
    - `rowCount` integer, required
    - `rows` UploadSubmitSheetRow[], required
      - `factorId` string
      - `review` UploadSubmitRowReview
        - `editedInApp` boolean — Whether the user edited this row inline before submit.
        - `fileName` string — Source workbook file name shown to the user.
        - `origin` 'workbook' — Upload origin for reviewed template rows.
      - `rowNumber` integer, required
      - `values` object, required
    - `sheetName` string, required
    - `warnings` string[]

## Response `200`

OK

- SubmitResponse
  - `data` object, required
  - `meta` object

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found

---

[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/09945036a28b/schema)
