# calculateUploadFees

> **calculateUploadFees**(`params`): [`OutputType`](/reference/filoz/synapse-core/warm-storage/namespaces/calculateuploadfees/type-aliases/outputtype/)

Defined in: [packages/synapse-core/src/warm-storage/calculate-upload-fees.ts:34](https://github.com/FilOzone/synapse-sdk/blob/0c729dad461472f017e4d84f8e6ac16e6afbe7c0/packages/synapse-core/src/warm-storage/calculate-upload-fees.ts#L34)

Compute the one-time fees an upload incurs.

Scope is intentionally limited to upload-time fees: create-data-set (new
datasets only) and add-pieces. Schedule-removals, terminate, and delete are
post-upload lifecycle operations and are not part of an upload cost preview.

The length of `pieceSizes` determines the per-piece fee and the calculation
includes one add-pieces base fee. Execution batch limits are intentionally
not enforced here because they are independent of fee calculation.

## Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `params` | [`ParamsType`](/reference/filoz/synapse-core/warm-storage/namespaces/calculateuploadfees/type-aliases/paramstype/) | [calculateUploadFees.ParamsType](/reference/filoz/synapse-core/warm-storage/namespaces/calculateuploadfees/type-aliases/paramstype/) |

## Returns

[`OutputType`](/reference/filoz/synapse-core/warm-storage/namespaces/calculateuploadfees/type-aliases/outputtype/)

[calculateUploadFees.OutputType](/reference/filoz/synapse-core/warm-storage/namespaces/calculateuploadfees/type-aliases/outputtype/)

## Throws

ValidationError when `pieceSizes` is invalid