---
title: "Import Compensation Benchmarks From CSV"
method: POST
path: "/api/v1/compensation/benchmarks/import"
tags: ["Compensation Benchmarking", "Public API"]
---

# Import Compensation Benchmarks From CSV

`POST /api/v1/compensation/benchmarks/import`

Parses a CSV of compensation benchmarks uploaded as multipart/form-data and returns the parsed rows together with a suggested column-to-field mapping. The response is a preview payload — callers must follow up with the publish step in the UI/API to persist benchmarks. Returns `400` when no `file` part is provided and `422` when the CSV is malformed.

OAuth Scopes: compensation_benchmarks.write

## Response `200`

Parsed CSV preview containing the raw rows and a suggested column map.

- object
  - `uploadData` array[] — Parsed CSV rows. Each row is an array of cell values as strings.
    - string[]
  - `columnMap` CompensationBenchmarkingColumnMap[] — Suggested mapping between expected benchmark fields and CSV column headers.
    - `expectedColumnKey` string, nullable — Expected column key
    - `columnName` string — Column name

## Other responses

- `400` — The multipart request is missing the `file` part.
- `403` — The authenticated caller lacks permission to import compensation benchmarks.
- `422` — The uploaded CSV could not be parsed (missing columns, invalid data, etc.).
- `500` — Unexpected server error while parsing the CSV upload.

---

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