---
title: "Update a data table's row data without uploading a file."
method: PUT
path: "/api/v1/DataTables/{DataTableId}/Data"
tags: ["DataTables"]
---

# Update a data table's row data without uploading a file.

`PUT /api/v1/DataTables/{DataTableId}/Data`

## Request

- Base URL: `https://api.slopesoftware.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.slopesoftware.com/api/v1/DataTables/{DataTableId}/Data`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/slopesoftware/apis/akur8-life-api/docs/api/v1/DataTables/:DataTableId/Data/put.ts> (a function with typed inputs; its response is checked against the schema)

Pass row data directly to update the data table without needing to upload a file first. Rows should be formatted as arrays of string values matching the column order from the GET /Data endpoint. Index columns come first (sorted by SortOrder), then data columns (sorted by SortOrder). For MortalityTable columns, pass two values: DecrementTableId and ImprovementScaleId. Maximum of 100,000 rows. Note: There is also a 10MB request size limit. A successful request might cause the table to be versioned if it has been used in a projection since the last modification.

## Path parameters

- `DataTableId` integer, required: Data Table Id

## Request body

- UpdateDataTableDataRequestV1: Request model for updating data table row data without a file upload.
  - `rows` array[], required: Row data to replace existing table data. Each row is an array of string values matching the column order from GET /Data endpoint. Index columns first (sorted by SortOrder), then data columns (sorted by SortOrder).
    - string[]
  - `indexes` DataTableIndexV1[], nullable: Optional - Update index read methods while updating data. If not provided, existing index read methods are preserved.
    - `columnName` string, nullable, required
    - `indexReadMethod` 'ExactMatch' | 'RangeLowerBound'

## Response `200`

Data table data updated successfully.

- UpdateDataTableDataResponseV1: Response model for successful data table data update.
  - `id` integer: The data table ID (may differ from request if table was versioned).
  - `version` integer: The current version number of the data table.

## Other responses

- `201`: Created
- `400`: Invalid request (file-only table, validation errors, row limit exceeded).
- `401`: Unauthorized
- `403`: Cannot update data tables on production models or no model access.
- `404`: Data table not found.
- `429`: Too Many Requests

---

[API](https://skmtc.dev/slopesoftware/apis/akur8-life-api.md) - [All operations](https://skmtc.dev/slopesoftware/apis/akur8-life-api/llms.txt) - [OpenAPI document](https://skmtc.dev/slopesoftware/apis/akur8-life-api/revisions/9771b2c79880?raw)
