---
title: "Delete Employee Table Row"
method: DELETE
path: "/api/v1/employees/{id}/tables/{table}/{rowId}"
tags: ["Employee Tables", "Public API"]
---

# Delete Employee Table Row

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

Deletes a specific row from an employee's tabular data. The table name identifies which tabular dataset to target (e.g., jobInfo, compensation, customTabularField). Returns `success: true` if the row was deleted, or `success: false` with an error message if the row was not found or could not be deleted. Deletion will fail with a 409 if the row has pending approval changes, or a 412 if the row is tied to an active pay schedule. Per-table field schemas are available as named OpenAPI components (e.g., `JobInfoTableRowRequest`, `CompensationTableRowRequest`). See the components/schemas section of this spec for the full list.

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

## Response `200`

Returns `success: true` if the row was deleted. Returns `success: false` with an error message if the row was not found or could not be deleted.

- TableRowDeleteResponse — Response from deleting an employee table row.
  - `success` boolean — Whether the row was successfully deleted.
  - `error` string — Error message when success is false. Absent when success is true.

## Other responses

- `400` — Bad request. Invalid employee ID or table name.
- `401` — Unauthorized.
- `403` — Permission denied. The caller lacks write access to this table for the specified employee.
- `409` — Conflict. The row has pending approval changes and cannot be deleted until they are resolved.
- `412` — Precondition failed. The row cannot be deleted because it is tied to an active pay schedule.

---

[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)
