---
title: "Upload Company File"
method: POST
path: "/api/v1/files"
tags: ["Company Files", "Public API"]
---

# Upload Company File

`POST /api/v1/files`

Uploads a file to a company file category. The request must be a `multipart/form-data` POST. On success, a `Location` header is returned with the URL of the newly created file resource. The file must be under 20MB and use a supported extension. Uploading to read-only categories is not permitted. Uploading to implementation categories is not permitted on companies that have completed implementation.

OAuth Scopes: company_file.write

## Response `201`

The file was uploaded successfully. The `Location` header contains the URL of the new file resource.

## Other responses

- `400` — The request is invalid: missing file name, missing file, zero-byte file, or unsupported file extension.
- `403` — The API user does not have permission to upload files, or the target category is read-only.
- `404` — The specified category ID was not found.
- `413` — The file exceeds the 20MB limit or the company's storage limit.
- `503` — The file storage API is temporarily unavailable.

---

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