---
title: "Create Employee Training Record"
method: POST
path: "/api/v1/training/record/employee/{employeeId}"
tags: ["Training", "Public API"]
---

# Create Employee Training Record

`POST /api/v1/training/record/employee/{employeeId}`

## Request

- Base URL: `https://companySubDomain.bamboohr.com`
- URL: `https://companySubDomain.bamboohr.com/api/v1/training/record/employee/{employeeId}`
- Auth: one of:
  - HTTP basic
  - OAuth 2
    - Authorization code: `/authorize.php`
    - Token URL: `/token.php` scopes: `training.write`
- TypeScript: <https://skmtc.dev/bamboohr/apis/bamboohr-api/docs/api/v1/training/record/employee/:employeeId/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a new training record for the specified employee. The 'completed' date (yyyy-mm-dd) and 'type' (training type ID) are required. Optional fields include instructor, hours, credits, notes, and cost. The authenticated caller must have permission to add trainings for the employee.

OAuth Scopes: training.write

## Path parameters

- `employeeId` integer, required

## Request body

- object
  - `completed` string, required: Completed is a required field and must be in yyyy-mm-dd format.
  - `cost` object: Optional cost for the training record.
    - `currency` string: ISO 4217 currency code (e.g. 'USD').
    - `amount` string: Monetary amount as a decimal string (e.g. '100.00').
  - `instructor` string: Name of the training instructor.
  - `hours` number: Number of hours for the training.
  - `credits` number: Credits earned for the training.
  - `notes` string: Optional notes about the training record.
  - `type` integer, required: This must be an existing training type ID.

## Response `201`

Created

- TrainingRecord
  - `id` integer: The ID of the training record.
  - `employeeId` string: The internal employee ID of the employee associated with the training, returned as a string.
  - `completed` string, date: Completed is a date in the format yyyy-mm-dd.
  - `notes` string, nullable: Notes left on the training record. Null when not set.
  - `instructor` string, nullable: Name of the instructor. Null when not set or when disabled by company training settings.
  - `credits` string, nullable: Credits earned for the training record, returned as a string. Null when not set or when disabled by company training settings.
  - `hours` string, nullable: Hours associated with the training record, returned as a string. Null when not set or when disabled by company training settings.
  - `cost` string, nullable: The cost in the format '{amount} {currency}', e.g. '50.00 USD'. May be null or empty string when not set.
  - `type` union: The training type ID. Returned as a string on update/list responses, and as an integer on create responses.
    - string: String form
    - integer: Integer form

## Other responses

- `400`: Bad request parameters.
- `401`: Unauthorized. Invalid API credentials.
- `403`: Insufficient user permissions or API access is not turned on.
- `404`: Bad request url.
- `500`: Internal server error.

---

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