harvest_api_client

A client for the Harvest API (getharvest.com)


Keywords
harvest-api, api, harvest, com, getharvest, client
License
MIT
Install
pip install harvest_api_client==1.0.17

Documentation

Harvest API client

A Python library for Harvest's API (getharvest.com) which supports OAuth2 authentication. It's inspired by https://github.com/lann/Harvest and has some distinctions:

  • Supports Python 3x
  • Supports Oauth2
  • Has tests coverage

It doesn't support the basic authentication.

How to install

$ pip3 install harvest_api_client

How to use it

Get the access and refresh tokens and put them in a file:

  {
    "access_token": {
       "last_refresh_time": "2015-04-20T00:18:52.494946", 
       "value": "[your access token]"
    }, "refresh_token": {
        "last_refresh_time": "2015-04-20T16:02:30.831858", 
        "value": "[your refresh token]"
    }
  }

And you're ready to go:

from datetime import datetime, timedelta
from harvest_api_client import Harvest

client_secret = 'your secret token'
client_id = 'your client id'
tokens_file_name = 'tokens.json'

h = Harvest(client_secret=client_secret, client_id=client_id, tokens_file_name=tokens_file_name)
u1 = h.find_user('user1_first_name', 'user1_last_name') 
# => <harvest_api_client.harvest.User object at 0x108cb2da0>

u2 = h.find_user('aaa', 'bbb') # <class 'NoneType'>
# => <class 'NoneType'>

print("\nProjects...")
for p in h.projects():
  print(p)

print("\nUsers...")
for u in h.users():
  print(u)
  date1 = datetime(2013, 1, 1)
  date2 = datetime(2015, 11, 11)
  
  print("\nEntries...")
  for e in u.entries(date1, date2):
    print(e)

Source

The source is available at https://github.com/GildedHonour/harvest-api-client

License

The MIT License (MIT)