An up to date PHP client for Harvest's API

v6.0.1 2022-08-08 08:08 UTC


example workflow

Harvest is a time tracking and invoicing tool.

This PHP SDK is generated automatically with JanePHP using a Harvest OpenAPI specification generated from the HTML documentation. It means that:

  • all the API endpoints and parameters are supported. See the list of available endpoints;
  • when the documentation changes, it is easy to update the library and keep up-to-date.

The API is tested against the examples provided by the Harvest API documentation.


This library is built atop of PSR-7 and PSR-18. So you will need to install some implementations for those interfaces.

If no PSR-18 client or PSR-7 message factory is available yet in your project or you don't know or don't care which one to use, just install some default:

composer require symfony/http-client nyholm/psr7

You can now install the Harvest client:

composer require jolicode/harvest-php-api


First, you need to retrieve an access token. Please checkout Harvest's documentation about the OAuth2 Authorization Flow.

Then, use the factory that is provided to create the client:

// $harvestClient contains all the methods to interact with the API
$harvestClient = JoliCode\Harvest\ClientFactory::create(

$clients = $harvestClient->listClients([
  'is_active' => true,


Want more example or documentation? See the documentation, which lists all the available methods.


Got some problems using this library? Need a missing feature? Do not hesitate to open an issue and share it with us.

Further documentation

You can see the current and past versions using one of the following:

And finally some meta documentation:


This library is licensed under the MIT License - see the LICENSE file for details.