---
title: "Upload Assets"
method: POST
path: "/v1/assets/upload"
tags: ["assets", "public"]
---

# Upload Assets

`POST /v1/assets/upload`

## Headers

- `API-Version` string — Pass in an API version to guarantee a consistent response format. The latest version should be used for all new API calls. Existing API calls should be updated to the latest version when possible. **Valid versions:** - Latest API version (recommended): `2025-03` - Previous API version (maintenance mode): `2025-02` If no API version header is included, the response format is considered unstable and could change without notice (not recommended).

## Request body

- UploadAssetRequestBody
  - `proj_id` string — The ID of the project to which the assets will be uploaded and assigned.
  - `transform_id` string — Specify if the uploaded assets should be processed exclusively by a particular transformation.
  - `entity_id` string — The ID of the entity to which the assets will be uploaded and assigned.
  - `urls` string[], required — A list of file URLs to be downloaded and processed during the upload.
  - `file_types` string[] — Optional. Specify the file types for each URL (e.g., 'csv', 'xlsx'). If not provided, defaults will be used based on content.
  - `ext_ids` string[] — Optional. External identifiers for the files, useful for mapping or reference.
  - `ext_file_names` string[] — Optional. Names for the files to be uploaded. If not provided, names will be derived from the URLs.
  - `chunk_strategy` string — Optional. Define how files should be split during processing. Supported values are `new_line` (split rows by newline for CSV/Excel) or `None` (no splitting).
  - `include_header` boolean — Specify whether the input files include a header row. This applies to CSV or Excel files only.
  - `main_keys` string[] — Optional. Column names to be used as unique identifiers when chunking data. If not provided, all columns will be combined to generate unique identifiers.
  - `file_type` string — Default file type to apply to all files if individual types are not specified.
  - `parse_strategy` string — Optional. Strategy to be used for parsing files during processing.
  - `cells` UploadAssetCell[] — Optional. If provided, must also provide transform_id. Additionally, every url required a cell to upload the file into.
    - `row_id` string, required
    - `op_id` string
    - `field_id` string
  - `process_with_workflow` boolean — Optional. If true, the assets will be processed with the workflow configured on your project.

## Response `200`

Successful Response

- AssetsResponse
  - `message` string, required
  - `metadata` AssetsResponseMetadata
    - `total_results_count` integer, required
    - `total_filtered_results_count` integer, required
  - `data` AssetsBaseResponse[], required
    - `asset_id` string, required
    - `ext_file_name` string
    - `ext_file_id` string
    - `file_type` string
    - `url` string
    - `status` 'uploading' | 'uploaded' | 'failed_upload' | 'processing' | 'not_processed' | 'processed', required — An enumeration.
    - `proj_id` string
    - `transform_id` string
    - `entity_id` string
    - `created_at` string, date-time, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `408` — Request Timeout
- `422` — Unprocessable Entity
- `429` — Too Many Requests
- `500` — Internal Server Error

---

[API](https://skmtc.dev/runtrellis/apis/trellis.md) · [All operations](https://skmtc.dev/runtrellis/apis/trellis/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/runtrellis/trellis/revisions/b7d8570ff3cc/schema)
