Import BambooHR Data to Google Sheets

In this guide, we’ll walk through how to pull data from the BambooHR API directly into Google Sheets, using the API Connector add-on for Sheets.

We'll first get an API key from BambooHR, and then set up a request to pull in human resources data to your spreadsheet.


Before You Begin

Click here to install the API Connector add-on from the Google Marketplace.

Part 1: Get Your BambooHR API Key

  1. While logged into your BambooHR account, click your Profile icon > API keys from the header bar.
  2. Click the Add New Key button
  3. Give your API key a name and click Generate Key.
  4. One last step: Because the BambooHR API requires Basic Authentication, we need to encode our authentication info to base 64. You can do this by entering your your credentials in the format YOUR_API_KEY:x into this form (i.e. your API key, then a colon, and then an 'x').

    The encoding script runs in your browser, and none of your credentials are seen or stored by this site.


Part 2: Pull Data from BambooHR to Sheets

The easiest way to get started with the BambooHR API is through API Connector’s built-in integration.

  1. In Sheets, open API Connector and create a new request (Extensions > API Connector > Open > Create request)
  2. Select BambooHR from the drop-down list of applications
  3. Under Authorization, enter your credentials from above, with the word Basic in front.
  4. Choose an endpoint of interest.
  5. Fill in the companyDomain parameter. You can get your domain name from the URL when you're logged into BambooHR.bamboohr-img0
  6. Select a destination sheet, name your request, and hit Run.

Part 3: Create a Custom API Request

Alternatively, you can run your own custom requests instead of using API Connector’s pre-built integration, using any of the URLs shown in the API documentation. Here's an example request setup.

Make sure to include the Accept: application/json header. Without this, BambooHR sometimes returns XML instead of JSON, which processes more slowly and doesn't allow for JSON-based adjustments like the force rows option mentioned below.

  • ApplicationCustom
  • MethodGET
  • Request URL
  • OAuthNone
  • Headers:
    • Authorization: Basic your_encoded_key
    • Accept: application/json
  • Report style: grid
By default, some endpoints like /v1/employees/directory return data in columns rather than rows. To adjust for this, select grid mode and toggle on the force rows option.

Part 4: Handle Pagination

By default, BambooHR will return 50 records at a time. To get more, use pagination handling:

  • Pagination typepage parameter
  • Page parameterpage
  • Run untilchoose when to stop fetching data

Part 5: API Documentation

Official documentation:

11 thoughts on “Import BambooHR Data to Google Sheets”

  1. I did use the suggested API call and It indeed worked , I would like to know whether there is a way I could get the dates each of the applicats did apply at.
    Really Appreciate this .

    • Hi there, this question refers to the /api/gateway.php/your_site/v1/applicant_tracking/jobs endpoint, correct? That endpoint doesn't return the application date, but I believe this one does: Please check if that works for you!

  2. Yes , It did return the application date for the applications but till the 31/03/23, is there a way I could have access to applicants for the past three months . I tried including a date range but did not work . I would like to have access to applicants for the past three months or year . The suggested end point does work ( Please check if that works for you) . I am grateful for this . Thanks a million.

  3. Good evening ! A bit of some advice,
    I am trying to retrieve pay groups for our employees but I am getting issues with this custom created request .
    Could you kindly advice me on how best I can proceed

    Thanks a million

    • Hey Mugisha, where did that endpoint come from? I checked their API documentation and don't see anything about paygroups in there, so unfortunately I'm not sure how to construct this request URL (or if it's even available).

    • I do agree that it’s not part of the documentation , I actually thought I could create a custom request without strictly having to follow the documentation word by word .

      • Ah, I see. Sometimes there are undocumented endpoints, but generally it's not something we can guess at. Is it possible for you to contact BambooHR's tech support and ask if they provide an API endpoint for paygroups?

  4. I did contact them sometime back , I didn’t really get informative feedback though . So I guess I will have to manually save group data files via a csv format .


Leave a Comment

Jump To