Skip to main content

PyBambooHR

Build Status   Download Stats

This is an unofficial Python API for Bamboo HR. So far it is focusing on managing employee information but you can pretty much do anything you want with a little python.

The library makes use of the requests library for Python and HTTPretty for testing. A huge thank you to both of those excellent projects.

Using this library is very simple:

from PyBambooHR import PyBambooHR

bamboo = PyBambooHR(subdomain='yoursub', api_key='yourapikeyhere')

employees = bamboo.get_employee_directory()

(Note that you have to enable sharing employee directory to use that method.)

This will give you a list of employees with properties on each including their ID.

from PyBambooHR import PyBambooHR

bamboo = PyBambooHR(subdomain='yoursub', api_key='yourapikeyhere')

# Jim's employee ID is 123 and we are not specifying fields so this will get all of them.
jim = bamboo.get_employee(123)

# Pam's employee ID is 222 and we are specifying fields so this will get only the ones we request.
pam = bamboo.get_employee(222, ['city', 'workPhone', 'workEmail'])

Adding an employee

from PyBambooHR import PyBambooHR

bamboo = PyBambooHR(subdomain='yoursub', api_key='yourapikeyhere')

# The firstName and lastName keys are required...
employee = {'firstName': 'Test', 'lastName': 'Person'}

result = bamboo.add_employee(employee)

The result dict will contain id and location. "id" is the numerical BambooHR employee ID. Location is a link to that employee.

Updating an employee

from PyBambooHR import PyBambooHR

bamboo = PyBambooHR(subdomain='yoursub', api_key='yourapikeyhere')

# His name was test person...
employee = {'firstName': 'Another', 'lastName': 'Namenow'}

# Use the ID and then the dict with the new information
result = bamboo.update_employee(333, employee)

result will be True or False depending on if it succeeded.

Requesting a Report

from PyBambooHR import PyBambooHR

bamboo = PyBambooHR(subdomain='yoursub', api_key='yourapikeyhere')

# Use the ID to request json information
result = bamboo.request_company_report(1, format='json', filter_duplicates=True)

# Now do stuff with your results (Will vary by report.)
for employee in result['employees']:
    print(employee)

# Use the ID and save a pdf:
result = bamboo.request_company_report(1, format='pdf', output_file='/tmp/report.pdf', filter_duplicates=True)

Getting information that is scheduled in the future

from PyBambooHR import PyBambooHR

bamboo = PyBambooHR(subdomain='yoursub', api_key='yourapikeyhere', only_current=False)

BambooHR has effective dates for when promotions are scheduled to happen or when new hires are going to join the organization. In order to see these events before they happen using the BambooHR API set only_current to False. As a note, this only works for pulling reports and getting employee information. This does not work on getting the employee directory.

CHANGES

Version 0.4.2 - 03 October 2014

  • Added row_id to row dictionary to keep track of them in case we need them.

Version 0.3.6 - 03 October 2014

  • Improvements by Ng Zhi An

Version 0.3.1 - 24 February 2014

  • Raise errors on non-200 statuses

Version 0.3.0 - 23 February 2014

  • Company Reports
  • Custom Reports

Version 0.2.0 - 05 October 2013

  • Underscore key support
  • Better test coverage

Version 0.1.0 - 02 October 2013

  • Pre-Alpha version
  • Uses Bamboo HR API to get employee info.

Metadata

Release files for PyBambooHR 0.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for PyBambooHR 0.8.1
File Size Uploaded
PyBambooHR-0.8.1.tar.gz 14.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for PyBambooHR 0.8.1
File Interpreter ABI Platform
PyBambooHR-0.8.1-py3-none-any.whl Python 3 none any Details

Total release size: 28.9 kB

Release files / PyBambooHR-0.8.1.tar.gz

Download URL PyBambooHR-0.8.1.tar.gz
Size 14.9 kB
Tags Source
SHA-256 checksum
How to use checksums
af32b36f0049a62e8ba4bedda7223e3cab3e8be548deaddc0ff798facf16da54
BLAKE2b-256 checksum
How to use checksums
81b89ce02508704c3d6bb2c1ccbc98e3eed750383e4492acb6e4b83bf92eba7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.1

Release files / PyBambooHR-0.8.1-py3-none-any.whl

Download URL PyBambooHR-0.8.1-py3-none-any.whl
Size 14.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
31eb7f49dbc7668616401ceaa2548d64d1d147441550c96843884453d5ce932b
BLAKE2b-256 checksum
How to use checksums
446700113f1c0200113e44e4739d739b007b2497ba3f9b3ab682eeae638ed370
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.1

Release history Release notifications | RSS feed

This release

0.8.1 This release

2 release files

0.8.0

2 release files

0.7.2

1 release file

0.7.1

1 release file

0.7.0

1 release file

0.6.9

1 release file

0.6.2

1 release file

0.6.1

1 release file

0.6.0

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.6

1 release file

0.2.5

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page