v1

latestOpenAPI 3.1.02026-07-26294215839.4 KB
Photos
Public API

Upload Employee Photo

Uploads a new photo for an employee. Accepts a multipart/form-data POST with a file field carrying raw binary image bytes (typical browser and SDK usage). An application/json POST with a fileBase64 property is also accepted, but it is not recommended for AI connector use. The base64 payload is too large for an AI model to produce reliably in a single tool call. Supported formats: JPEG, PNG, BMP, GIF. Other formats (HEIC, SVG, AVIF, WebP) are rejected with 415. TIFF is accepted by the format gate but some variants may fail downstream. The image must be square within 1 pixel and at least 150×150 pixels. This endpoint does not perform cropping, so if your source image is not square, you must crop it before uploading. Photo upload through this endpoint is not a viable AI connector workflow. For interactive cropping or any AI-initiated photo change, redirect the user to the BambooHR web UI. Maximum file size is 20MB (applies to the decoded bytes for the JSON variant). The photo replaces the employee's current photo for all size variants. Employees may upload their own photo if the company has self-photo uploads enabled.

OAuth Scopes: employee:photo.write

post/api/v1/employees/{employeeId}/photo

Path parameters

employeeIdinteger required

The internal employee ID of the employee whose photo is being uploaded.

Request body

fileBase64string byte required

Base64-encoded image bytes. Same format, size, and dimension rules as the multipart file field. Supported formats: JPEG, PNG, BMP, GIF. Image must be square within 1 pixel and at least 150×150 pixels. Decoded payload must be no larger than 20MB. This endpoint does not perform cropping, so non-square sources must be cropped before upload. Not recommended for AI connector use, since the base64 payload is too large for an AI model to produce reliably in a single tool call. For AI-initiated photo upload, redirect the user to the BambooHR web UI. Whitespace inside the base64 string is tolerated and stripped before decoding.

Response

The photo was uploaded and processed successfully. No response body is returned.