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

# Create Table Row (v1)

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

> **Deprecated.**

Deprecated. Use **Create Table Row (v1.1)** instead (`create-table-row-v1-1`). Add a new row to the specified employee table by submitting field name/value pairs in JSON or XML. Use this endpoint to append records to tabular employee data such as job information or compensation history.

OAuth Scopes: employee, 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, 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.

## 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 added successfully. 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 or table 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)
