---
title: "Replace upload data"
method: PUT
path: "/v1/uploads/{uploadId}"
tags: ["Uploads"]
---

# Replace upload data

`PUT /v1/uploads/{uploadId}`

## Request

- Base URL: `https://blobsrus.omniapp.co/api`
- URL: `https://blobsrus.omniapp.co/api/v1/uploads/{uploadId}`
- Auth: HTTP bearer

<Note>
  **Organization Admin** permissions are required to use this endpoint.
</Note>

Replace the data in an existing CSV upload.

The view's [`uploaded_table_name`](/modeling/views/parameters/uploaded-table-name) property and references to it (returned as `refreshedModelIds`) will automatically update, but the upload's ID will remain unchanged. This means that any documents, queries, views, etc. using the upload will be re-pointed to the new data. The previous data's artifacts are left untouched.

## Path parameters

- `uploadId` string, uuid, required

## Request body `multipart/form-data`

- object
  - `file` string, binary, required: The replacement CSV file (must have `.csv` extension). Fully replaces the existing data; existing columns keep their saved type and date format. Column renames/removals may break content referencing the old columns.

## Response `200`

Upload data replaced successfully

- object
  - `id` string, uuid, required: The upload ID. This will not change after uploading new data.
  - `fileName` string, required: File name of the replacement upload
  - `viewName` string, required: View name. This will not change after uploading new data.
  - `inDbAsTableName` string, required: Database table name in the table upload (scratch) schema. This will be empty if the underlying connection doesn't have a table upload schema configured.
  - `refreshedModelIds` string[], required: Models whose view of this upload was re-pointed at the new data, including the upload's workbook model, or the connection's shared models holding a view backed by this upload.
  - `rowCount` integer, required: Number of rows in the replacement file
  - `truncated` boolean, required: Whether the file was truncated due to row limit

## Other responses

- `400`: Invalid request. Possible causes: - Missing file - Non-CSV file - Parse failure - A value that doesn't adhere to its column's saved type - Attempting to replace a non-CSV upload
- `401`: Missing or invalid authentication
- `403`: Insufficient permissions. Requires permissions to upload data.
- `404`: Upload not found or already deleted
- `429`: Too Many Requests - Rate limit exceeded (60 requests/minute)

## Changes

- **2026-11-03** `43290040f88f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/omni/apis/omni-api/changes/v1/uploads/:uploadId/put.md)

---

[API](https://skmtc.dev/omni/apis/omni-api.md) - [All operations](https://skmtc.dev/omni/apis/omni-api/llms.txt) - [OpenAPI document](https://skmtc.dev/omni/apis/omni-api/revisions/43290040f88f?raw)
