---
title: "Update Table Row (v1)"
method: POST
path: "/api/v1/employees/{id}/tables/{table}/{rowId}"
tags: ["Employee Tables", "Public API"]
deprecated: true
---

# Update Table Row (v1)

`POST /api/v1/employees/{id}/tables/{table}/{rowId}`

> **Deprecated.**

Deprecated. Use **Update Table Row (v1.1)** instead (`update-table-row-v1-1`). Update an existing row in the specified employee table by submitting field name/value pairs for the fields to change in JSON or XML.

OAuth Scopes: employee.write, employee:assets.write, employee:compensation.write, employee:custom_fields.write, employee:custom_fields_encrypted.write, employee:education.write, employee:emergency_contacts.write, employee:job.write, sensitive_employee:creditcards.write

## Path parameters

- `id` string, required
- `table` string, required — The API name of an employee table. Standard table names: `jobInfo`, `jobInformation`, `compensation`, `employmentStatus`, `contacts`, `emergencyContacts`, `dependents`, `earnings`, `bonus`, `commission`, `benefit_class`, `employeeVisas`, `employeeEducation`, `employeePassports`, `employeeDriverLicenses`, `employeeCertifications`, `employeeStockOptions`, `employeeAssets`, `employeeCreditCards`, `employeeCovidTests`, `employeeCovidVaccinations`, `employeeCovidVaccinationExemptions`, `employeeCovidExposures`, `employeeEquityGrants`, `levelsAndBands`, `employeeProjectPayRates`. Custom company-defined tables also accepted — they use a numeric suffix (e.g., `custom1`, `custom42`). Use the `list-tabular-fields` tool (GET /api/v1/meta/tables) to discover custom table names for a specific company.
- `rowId` string, required

## Request body

- TableRowUpdate — A dictionary of table field names and values for creating or updating a row in an employee table. The listed properties are common examples, but accepted fields depend on the specific table being targeted. Some string-valued fields are backed by lists or lookups, so callers should use valid option values from BambooHR metadata rather than assuming any free-text string will persist as entered.
  - `date` string, date — The effective date for the row in YYYY-MM-DD format.
  - `location` string — The employee location value for the row.
  - `division` string — The division value for the row.
  - `department` string — The department value for the row.
  - `jobTitle` string — The job title value for the row.
  - `reportsTo` string — The manager or reports-to value for the row.
  - `teams` string[] — Team values associated with the row.

## Response `200`

Row updated successfully. A 200 response is returned as long as at least one field was updated, even if some fields were skipped due to permissions. No response body is returned.

## Other responses

- `400` — The posted JSON or XML is malformed, or required fields are missing.
- `403` — Permission denied.
- `404` — The employee, table, or row does not exist.
- `406` — One or more field values are invalid.
- `409` — Conflict. The provided field values conflict with business rules or payroll constraints.
- `412` — Precondition failed. The update requires an active pay schedule or other required prerequisite data.

---

[API](https://skmtc.net/bamboohr/apis/bamboohr-api.md) · [All operations](https://skmtc.net/bamboohr/apis/bamboohr-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bamboohr/bamboohr-api/revisions/19ebf391a399/schema)
