# Harvest (v1)

Information note **Harvest (v1) end of life**

This version of Harvest reached end of life on **December 1, 2019** and is no longer functioning.

[Upgrade to the latest version (v3) to continue replicating data.](https://help.qlik.com/en-US/stitch/integrations/saas/harvest)

## Harvest integration summary

Stitch’s Harvest integration replicates data using the [Harvest REST API V1](https://help.getharvest.com/api-v1/). Refer to the [Schema](https://help.qlik.com/en-US/stitch/integrations/saas/harvest/v1#schema) section for a list of objects available for replication.

## Harvest feature snapshot

A high-level look at Stitch's Harvest (v1) integration, including release status, useful links, and the features supported in Stitch.

| **STITCH** |  |  |  |
| --- | --- | --- | --- |
| **[Release status](https://help.qlik.com/en-US/stitch/integrations/identify-an-integration-version)** | Sunset on December 1, 2019 | **Supported by**<br><br>the Info icon<br><br>Indicates if the integration is supported by Stitch or the Singer community. | [Singer Community](https://www.singer.io/) |
| **Stitch plan**<br><br>the Info icon<br><br>The type of Stitch plan required to use the integration. | Standard | **[API availability](https://help.qlik.com/en-US/stitch/developers/stitch-connect/guides/source-destination-reference)**<br><br>the Info icon<br><br>Indicates if the integration is available as a source in Stitch Connect. | the Remove icon<br><br>This version of the integration isn't available via the API.<br><br><br>Not available |
| **Singer GitHub repository** | [singer-io/tap-harvest](https://github.com/singer-io/tap-harvest) |  |  |
| **REPLICATION SETTINGS** |  |  |  |
| **[Anchor Scheduling](https://help.qlik.com/en-US/stitch/replication/replication-scheduling/anchor-scheduling)**<br><br>the Info icon<br><br>A type of replication scheduling where an integration's Replication Frequency is anchored to a time you select. | the Success icon<br><br>This feature is supported for this version of the integration.<br><br><br>Supported | **[Advanced Scheduling](https://help.qlik.com/en-US/stitch/replication/replication-scheduling/advanced-scheduling)**<br><br>the Info icon<br><br>A type of replication scheduling that allows you to specify granular start times for data extraction using cron expressions. | the Remove icon<br><br>Advanced Scheduling is not supported for this integration.<br><br><br>Unsupported |
| **Table-level reset**<br><br>the Info icon<br><br>Indicates if data can be reset at the table level. If unsupported, data can only be reset at the integration level. | the Remove icon<br><br>Table-level resets are not supported for this integration. Resets are only supported at the integration level.<br><br><br>Unsupported | **[Configurable Replication Methods](https://help.qlik.com/en-US/stitch/replication/replication-methods)**<br><br>the Info icon<br><br>Indicates if Replication Methods can be defined by you for tables in the integration. | the Remove icon<br><br>Configurable Replication Methods are not supported for this integration. Stitch will use pre-defined replication methods for tables you set to replicate.<br><br><br>Unsupported |
| **DATA SELECTION** |  |  |  |
| **Table selection**<br><br>the Info icon<br><br>The ability to select individual tables for replication in the Stitch interface. If table selection is unavailable, all tables and all the columns they contain will be set to replicate by default. | the Remove icon<br><br>Table selection is not supported for this integration. All available table and fields will be automatically selected for replication.<br><br><br>Unsupported | **Column selection**<br><br>the Info icon<br><br>The ability to select individual columns for replication in the Stitch interface. If column selection is unavailable, all columns will be set to replicate by default. | the Remove icon<br><br>Column selection is not supported for this integration. All available columns in tables set to replicate will be selected.<br><br><br>Unsupported |
| **Select all**<br><br>the Info icon<br><br>Indicates if the integration supports selecting all available tables and columns. | the Remove icon<br><br>As this integration doesn't support table or column selection, all available tables and columns are automatically replicated.<br><br><br>Unsupported |  |  |
| **TRANSPARENCY** |  |  |  |
| **[Extraction Logs](https://help.qlik.com/en-US/stitch/replication/extractions/integration-extraction-logs)**<br><br>the Info icon<br><br>Logs detailing the Extraction phase of the replication process for a given integration. Includes error info, should an error occur. | the Success icon<br><br>This feature is supported for this version of the integration.<br><br><br>Supported | **[Loading Reports](https://help.qlik.com/en-US/stitch/replication/integration-loading-reports)**<br><br>the Info icon<br><br>Reports detailing the Loading phase of the replication process for a given integration. Includes the number of rows loaded for each table and error info, should an error occur. | the Success icon<br><br>This feature is supported for this version of the integration.<br><br><br>Supported |

## Harvest table reference

Information note

**Schemas and versioning**

Schemas and naming conventions can change from version to version, so we recommend verifying your integration’s version before continuing.

The schema and info displayed below is for **version 1** of this integration.

Information note

**Table and column names in your destination**

Depending on your destination, table and column names may not appear as they are outlined below.

For example: Object names are lowercased in Redshift (`CusTomERs` &gt; `customers`), while case is maintained in PostgreSQL destinations (`CusTomERs` &gt; `CusTomERs`). Refer to the [Loading Guide](https://help.qlik.com/en-US/stitch/replication/loading/destination-guides) for your destination for more info.

### clients

The `clients` table contains info about the clients in your Harvest account.

| **Replication Method [](https://help.qlik.com/en-US/stitch/replication/replication-methods)[the Info icon](https://help.qlik.com/en-US/stitch/replication/replication-methods)[](https://help.qlik.com/en-US/stitch/replication/replication-methods)** | Key-based Incremental |
| --- | --- |
| **Primary Key ![](https://help.qlik.com/en-US/stitch/images/replication/primary-key-icon.svg)** | id |
| **Replication Key ![](https://help.qlik.com/en-US/stitch/images/replication/replication-key-icon.svg)** | updated\_at |
| **Useful links** | [Harvest documentation](http://help.getharvest.com/api-v1/clients-api/clients/using-the-clients-api/ "Opens in new tab: Harvest documentation")<br><br><br>[clients schema on GitHub](https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/clients.json "Opens in new tab: clients schema on GitHub")<br><br><br>[Harvest API method](http://help.getharvest.com/api-v1/clients-api/clients/using-the-clients-api/#get-all-clients "Opens in new tab: Harvest API method") |

clients table schema

| **active**<br><br><br>BOOLEAN |
| --- |
| **cache\_version**<br><br><br>INTEGER |
| **created\_at**<br><br><br>DATE-TIME |
| **currency**<br><br><br>STRING |
| **currency\_symbol**<br><br><br>STRING |
| **default\_invoice\_timeframe**<br><br><br>STRING |
| **details**<br><br><br>STRING |
| **highrise\_id**<br><br><br>BOOLEAN |
| **id**<br><br><br>INTEGER |
| **last\_invoice\_kind**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **updated\_at**<br><br><br>DATE-TIME |

### contacts

The `contacts` table contains info about the client contacts in your Harvest account.

| **Replication Method [](https://help.qlik.com/en-US/stitch/replication/replication-methods)[the Info icon](https://help.qlik.com/en-US/stitch/replication/replication-methods)[](https://help.qlik.com/en-US/stitch/replication/replication-methods)** | Key-based Incremental |
| --- | --- |
| **Primary Key ![](https://help.qlik.com/en-US/stitch/images/replication/primary-key-icon.svg)** | id |
| **Replication Key ![](https://help.qlik.com/en-US/stitch/images/replication/replication-key-icon.svg)** | updated\_at |
| **Useful links** | [Harvest documentation](http://help.getharvest.com/api-v1/clients-api/clients/using-the-client-contacts-api/ "Opens in new tab: Harvest documentation")<br><br><br>[contacts schema on GitHub](https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/contacts.json "Opens in new tab: contacts schema on GitHub")<br><br><br>[Harvest API method](http://help.getharvest.com/api-v1/clients-api/clients/using-the-client-contacts-api/#get-all-contacts "Opens in new tab: Harvest API method") |

contacts table schema

| **client\_id**<br><br><br>INTEGER |
| --- |
| **created\_at**<br><br><br>DATE-TIME |
| **email**<br><br><br>STRING |
| **fax**<br><br><br>STRING |
| **first\_name**<br><br><br>STRING |
| **id**<br><br><br>INTEGER |
| **last\_name**<br><br><br>STRING |
| **phone\_mobile**<br><br><br>STRING |
| **phone\_office**<br><br><br>STRING |
| **title**<br><br><br>STRING |
| **updated\_at**<br><br><br>DATE-TIME |

### expense\_categories

The `expense_categories` table contains info about the expense categories in your Harvest account.

| **Replication Method [](https://help.qlik.com/en-US/stitch/replication/replication-methods)[the Info icon](https://help.qlik.com/en-US/stitch/replication/replication-methods)[](https://help.qlik.com/en-US/stitch/replication/replication-methods)** | Key-based Incremental |
| --- | --- |
| **Primary Key ![](https://help.qlik.com/en-US/stitch/images/replication/primary-key-icon.svg)** | id |
| **Replication Key ![](https://help.qlik.com/en-US/stitch/images/replication/replication-key-icon.svg)** | updated\_at |
| **Useful links** | [Harvest documentation](http://help.getharvest.com/api-v1/expenses-api/expenses/expense-categories/ "Opens in new tab: Harvest documentation")<br><br><br>[expense_categories schema on GitHub](https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/expense_categories.json "Opens in new tab: expense_categories schema on GitHub")<br><br><br>[Harvest API method](http://help.getharvest.com/api-v1/expenses-api/expenses/expense-categories/#show-all-categories "Opens in new tab: Harvest API method") |

expense\_categories table schema

| **created\_at**<br><br><br>DATE-TIME |
| --- |
| **deactivated**<br><br><br>BOOLEAN |
| **id**<br><br><br>INTEGER |
| **name**<br><br><br>STRING |
| **unit\_name**<br><br><br>STRING |
| **unit\_price**<br><br><br>NUMBER |
| **updated\_at**<br><br><br>DATE-TIME |

### expenses

The `expenses` table contains info about the expenses recorded in your Harvest account.

| **Replication Method [](https://help.qlik.com/en-US/stitch/replication/replication-methods)[the Info icon](https://help.qlik.com/en-US/stitch/replication/replication-methods)[](https://help.qlik.com/en-US/stitch/replication/replication-methods)** | Key-based Incremental |
| --- | --- |
| **Primary Key ![](https://help.qlik.com/en-US/stitch/images/replication/primary-key-icon.svg)** | id |
| **Replication Key ![](https://help.qlik.com/en-US/stitch/images/replication/replication-key-icon.svg)** | updated\_at |
| **Useful links** | [Harvest documentation](http://help.getharvest.com/api-v1/expenses-api/expenses/add-update-expenses/ "Opens in new tab: Harvest documentation")<br><br><br>[expenses schema on GitHub](https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/expenses.json "Opens in new tab: expenses schema on GitHub")<br><br><br>[Harvest API method](http://help.getharvest.com/api-v1/expenses-api/expenses/add-update-expenses/#show-an-expense "Opens in new tab: Harvest API method") |

expenses table schema

| **billable**<br><br><br>BOOLEAN |
| --- |
| **company\_id**<br><br><br>INTEGER |
| **created\_at**<br><br><br>DATE-TIME |
| **expense\_category\_id**<br><br><br>INTEGER |
| **has\_receipt**<br><br><br>BOOLEAN |
| **id**<br><br><br>INTEGER |
| **invoice\_id**<br><br><br>INTEGER |
| **is\_closed**<br><br><br>BOOLEAN |
| **is\_locked**<br><br><br>BOOLEAN |
| **locked\_reason**<br><br><br>STRING |
| **notes**<br><br><br>STRING |
| **project\_id**<br><br><br>INTEGER |
| **receipt\_url**<br><br><br>STRING |
| **spent\_at**<br><br><br>STRING |
| **total\_cost**<br><br><br>NUMBER |
| **units**<br><br><br>NUMBER |
| **updated\_at**<br><br><br>DATE-TIME |
| **user\_id**<br><br><br>INTEGER |

### invoice\_item\_categories

The `invoice_item_categories` table contains info about the various categories that can be applied to invoice line items.

Note: Harvest includes two non-removable categories by default for the hours and expenses you bill.

| **Replication Method [](https://help.qlik.com/en-US/stitch/replication/replication-methods)[the Info icon](https://help.qlik.com/en-US/stitch/replication/replication-methods)[](https://help.qlik.com/en-US/stitch/replication/replication-methods)** | Key-based Incremental |
| --- | --- |
| **Primary Key ![](https://help.qlik.com/en-US/stitch/images/replication/primary-key-icon.svg)** | id |
| **Replication Key ![](https://help.qlik.com/en-US/stitch/images/replication/replication-key-icon.svg)** | updated\_at |
| **Useful links** | [Harvest documentation](http://help.getharvest.com/api-v1/invoices-api/invoices/invoice-messages-payments#invoice-categories "Opens in new tab: Harvest documentation")<br><br><br>[invoice_item_categories schema on GitHub](https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoice_item_categories.json "Opens in new tab: invoice_item_categories schema on GitHub")<br><br><br>[Harvest API method](http://help.getharvest.com/api-v1/invoices-api/invoices/invoice-messages-payments/#show-all-categories "Opens in new tab: Harvest API method") |

invoice\_item\_categories table schema

| **created\_at**<br><br><br>DATE-TIME |
| --- |
| **id**<br><br><br>INTEGER |
| **name**<br><br><br>STRING |
| **updated\_at**<br><br><br>DATE-TIME |
| **use\_as\_expense**<br><br><br>BOOLEAN |
| **use\_as\_service**<br><br><br>BOOLEAN |

### invoice\_messages

The `invoice_messages` table contains info about invoice messages, or emails sent to clients about invoices.

| **Replication Method [](https://help.qlik.com/en-US/stitch/replication/replication-methods)[the Info icon](https://help.qlik.com/en-US/stitch/replication/replication-methods)[](https://help.qlik.com/en-US/stitch/replication/replication-methods)** | Key-based Incremental |
| --- | --- |
| **Primary Key ![](https://help.qlik.com/en-US/stitch/images/replication/primary-key-icon.svg)** | id |
| **Replication Key ![](https://help.qlik.com/en-US/stitch/images/replication/replication-key-icon.svg)** | updated\_at |
| **Useful links** | [Harvest documentation](http://help.getharvest.com/api-v1/invoices-api/invoices/invoice-messages-payments/ "Opens in new tab: Harvest documentation")<br><br><br>[invoice_messages schema on GitHub](https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoice_messages.json "Opens in new tab: invoice_messages schema on GitHub")<br><br><br>[Harvest API method](http://help.getharvest.com/api-v1/invoices-api/invoices/invoice-messages-payments/#show-invoice-messages "Opens in new tab: Harvest API method") |

invoice\_messages table schema

| **body**<br><br><br>STRING |
| --- |
| **created\_at**<br><br><br>DATE-TIME |
| **full\_recipient\_list**<br><br><br>STRING |
| **id**<br><br><br>INTEGER |
| **include\_pay\_pal\_link**<br><br><br>BOOLEAN |
| **invoice\_id**<br><br><br>INTEGER |
| **send\_me\_a\_copy**<br><br><br>BOOLEAN |
| **send\_reminder\_on**<br><br><br>DATE-TIME |
| **sent\_by**<br><br><br>STRING |
| **sent\_by\_email**<br><br><br>STRING |
| **sent\_from**<br><br><br>STRING |
| **sent\_from\_email**<br><br><br>STRING |
| **subject**<br><br><br>STRING |
| **thank\_you**<br><br><br>BOOLEAN |
| **updated\_at**<br><br><br>DATE-TIME |

### invoice\_payments

The `invoice_payments` table contains info about the payments applied to invoices in your Harvest account.

| **Replication Method [](https://help.qlik.com/en-US/stitch/replication/replication-methods)[the Info icon](https://help.qlik.com/en-US/stitch/replication/replication-methods)[](https://help.qlik.com/en-US/stitch/replication/replication-methods)** | Key-based Incremental |
| --- | --- |
| **Primary Key ![](https://help.qlik.com/en-US/stitch/images/replication/primary-key-icon.svg)** | id |
| **Replication Key ![](https://help.qlik.com/en-US/stitch/images/replication/replication-key-icon.svg)** | updated\_at |
| **Useful links** | [Harvest documentation](http://help.getharvest.com/api-v1/invoices-api/invoices/invoice-messages-payments#show-payments-for-an-invoice "Opens in new tab: Harvest documentation")<br><br><br>[invoice_payments schema on GitHub](https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoice_payments.json "Opens in new tab: invoice_payments schema on GitHub")<br><br><br>[Harvest API method](http://help.getharvest.com/api-v1/invoices-api/invoices/invoice-messages-payments/#show-payments-for-an-invoice "Opens in new tab: Harvest API method") |

invoice\_payments table schema

| **amount**<br><br><br>NUMBER |
| --- |
| **authorization**<br><br><br>STRING |
| **created\_at**<br><br><br>DATE-TIME |
| **id**<br><br><br>INTEGER |
| **invoice\_id**<br><br><br>INTEGER |
| **notes**<br><br><br>STRING |
| **paid\_at**<br><br><br>DATE-TIME |
| **payment\_gateway\_id**<br><br><br>INTEGER |
| **paypal\_transaction\_id**<br><br><br>INTEGER |
| **recorded\_by**<br><br><br>STRING |
| **recorded\_by\_email**<br><br><br>STRING |
| **updated\_at**<br><br><br>DATE-TIME |

### invoices

The `invoices` table contains info about the invoices in your Harvest account.

| **Replication Method [](https://help.qlik.com/en-US/stitch/replication/replication-methods)[the Info icon](https://help.qlik.com/en-US/stitch/replication/replication-methods)[](https://help.qlik.com/en-US/stitch/replication/replication-methods)** | Key-based Incremental |
| --- | --- |
| **Primary Key ![](https://help.qlik.com/en-US/stitch/images/replication/primary-key-icon.svg)** | id |
| **Replication Key ![](https://help.qlik.com/en-US/stitch/images/replication/replication-key-icon.svg)** | updated\_at |
| **Useful links** | [Harvest documentation](http://help.getharvest.com/api-v1/invoices-api/invoices/show-invoices#show-a-single-invoice "Opens in new tab: Harvest documentation")<br><br><br>[invoices schema on GitHub](https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoices.json "Opens in new tab: invoices schema on GitHub") |

invoices table schema

| **amount**<br><br><br>NUMBER |
| --- |
| **client\_id**<br><br><br>INTEGER |
| **client\_key**<br><br><br>STRING |
| **client\_name**<br><br><br>STRING |
| **created\_at**<br><br><br>DATE-TIME |
| **created\_by\_id**<br><br><br>INTEGER |
| **currency**<br><br><br>STRING |
| **discount**<br><br><br>STRING, NUMBER |
| **discount\_amount**<br><br><br>NUMBER |
| **due\_amount**<br><br><br>NUMBER |
| **due\_at**<br><br><br>STRING |
| **due\_at\_human\_format**<br><br><br>STRING |
| **estimate\_id**<br><br><br>INTEGER |
| **id**<br><br><br>INTEGER |
| **issued\_at**<br><br><br>STRING |
| **notes**<br><br><br>STRING |
| **number**<br><br><br>STRING |
| **period\_end**<br><br><br>STRING |
| **period\_start**<br><br><br>STRING |
| **purchase\_order**<br><br><br>STRING |
| **recurring\_invoice\_id**<br><br><br>INTEGER |
| **retainer\_id**<br><br><br>INTEGER |
| **state**<br><br><br>STRING |
| **subject**<br><br><br>STRING |
| **tax**<br><br><br>STRING, NUMBER |
| **tax2**<br><br><br>STRING, NUMBER |
| **tax2\_amount**<br><br><br>NUMBER |
| **tax\_amount**<br><br><br>NUMBER |
| **updated\_at**<br><br><br>DATE-TIME |

### people

The `people` table contains info about the people - or users - in your Harvest account.

**Note**: These are **internal** users. Info about external users, or clients, is in the `clients` table.

| **Replication Method [](https://help.qlik.com/en-US/stitch/replication/replication-methods)[the Info icon](https://help.qlik.com/en-US/stitch/replication/replication-methods)[](https://help.qlik.com/en-US/stitch/replication/replication-methods)** | Key-based Incremental |
| --- | --- |
| **Primary Key ![](https://help.qlik.com/en-US/stitch/images/replication/primary-key-icon.svg)** | id |
| **Replication Key ![](https://help.qlik.com/en-US/stitch/images/replication/replication-key-icon.svg)** | updated\_at |
| **Useful links** | [Harvest documentation](http://help.getharvest.com/api-v1/users-api/users/managing-users/ "Opens in new tab: Harvest documentation")<br><br><br>[people schema on GitHub](https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/people.json "Opens in new tab: people schema on GitHub")<br><br><br>[Harvest API method](http://help.getharvest.com/api-v1/users-api/users/managing-users/#show-all-users "Opens in new tab: Harvest API method") |

people table schema

| **cost\_rate**<br><br><br>NUMBER |
| --- |
| **created\_at**<br><br><br>DATE-TIME |
| **default\_hourly\_rate**<br><br><br>NUMBER |
| **department**<br><br><br>STRING |
| **email**<br><br><br>STRING |
| **first\_name**<br><br><br>STRING |
| **has\_access\_to\_all\_future\_projects**<br><br><br>BOOLEAN |
| **id**<br><br><br>INTEGER |
| **identity\_account\_id**<br><br><br>INTEGER |
| **indentity\_user\_id**<br><br><br>INTEGER |
| **is\_active**<br><br><br>BOOLEAN |
| **is\_admin**<br><br><br>BOOLEAN |
| **is\_contractor**<br><br><br>BOOLEAN |
| **last\_name**<br><br><br>STRING |
| **telephone**<br><br><br>STRING |
| **timezone**<br><br><br>STRING |
| **updated\_at**<br><br><br>DATE-TIME |
| **wants\_newsletter**<br><br><br>BOOLEAN |

### project\_tasks

The `project_tasks` table contains info about the tasks assigned to projects.

| **Replication Method [](https://help.qlik.com/en-US/stitch/replication/replication-methods)[the Info icon](https://help.qlik.com/en-US/stitch/replication/replication-methods)[](https://help.qlik.com/en-US/stitch/replication/replication-methods)** | Key-based Incremental |
| --- | --- |
| **Primary Key ![](https://help.qlik.com/en-US/stitch/images/replication/primary-key-icon.svg)** | id |
| **Replication Key ![](https://help.qlik.com/en-US/stitch/images/replication/replication-key-icon.svg)** | updated\_at |
| **Useful links** | [Harvest documentation](http://help.getharvest.com/api-v1/tasks-api/tasks/task-assignments#all-assigned-tasks-to-project "Opens in new tab: Harvest documentation")<br><br><br>[project_tasks schema on GitHub](https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/project_tasks.json "Opens in new tab: project_tasks schema on GitHub")<br><br><br>[Harvest API method](http://help.getharvest.com/api-v1/tasks-api/tasks/task-assignments/#all-assigned-tasks-to-project "Opens in new tab: Harvest API method") |

project\_tasks table schema

| **billable**<br><br><br>BOOLEAN |
| --- |
| **budget**<br><br><br>NUMBER |
| **created\_at**<br><br><br>DATE-TIME |
| **deactivated**<br><br><br>BOOLEAN |
| **estimate**<br><br><br>NUMBER |
| **hourly\_rate**<br><br><br>NUMBER |
| **id**<br><br><br>INTEGER |
| **project\_id**<br><br><br>INTEGER |
| **task\_id**<br><br><br>INTEGER |
| **updated\_at**<br><br><br>DATE-TIME |

### project\_users

The `project_users` table contains info about the users assigned to projects.

| **Replication Method [](https://help.qlik.com/en-US/stitch/replication/replication-methods)[the Info icon](https://help.qlik.com/en-US/stitch/replication/replication-methods)[](https://help.qlik.com/en-US/stitch/replication/replication-methods)** | Key-based Incremental |
| --- | --- |
| **Primary Key ![](https://help.qlik.com/en-US/stitch/images/replication/primary-key-icon.svg)** | id |
| **Replication Key ![](https://help.qlik.com/en-US/stitch/images/replication/replication-key-icon.svg)** | updated\_at |
| **Useful links** | [Harvest documentation](http://help.getharvest.com/api-v1/users-api/users/user-assignments#get-users-assigned-to-projects "Opens in new tab: Harvest documentation")<br><br><br>[project_users schema on GitHub](https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/project_users.json "Opens in new tab: project_users schema on GitHub")<br><br><br>[Harvest API method](http://help.getharvest.com/api-v1/users-api/users/user-assignments/#get-users-assigned-to-projects "Opens in new tab: Harvest API method") |

project\_users table schema

| **budget**<br><br><br>NUMBER |
| --- |
| **created\_at**<br><br><br>DATE-TIME |
| **deactivated**<br><br><br>BOOLEAN |
| **estimate**<br><br><br>NUMBER |
| **hourly\_rate**<br><br><br>NUMBER |
| **id**<br><br><br>INTEGER |
| **is\_project\_manager**<br><br><br>BOOLEAN |
| **project\_id**<br><br><br>INTEGER |
| **updated\_at**<br><br><br>DATE-TIME |
| **user\_id**<br><br><br>INTEGER |

### projects

The `projects` table contains info about the projects in your Harvest account.

| **Replication Method [](https://help.qlik.com/en-US/stitch/replication/replication-methods)[the Info icon](https://help.qlik.com/en-US/stitch/replication/replication-methods)[](https://help.qlik.com/en-US/stitch/replication/replication-methods)** | Key-based Incremental |
| --- | --- |
| **Primary Key ![](https://help.qlik.com/en-US/stitch/images/replication/primary-key-icon.svg)** | id |
| **Replication Key ![](https://help.qlik.com/en-US/stitch/images/replication/replication-key-icon.svg)** | updated\_at |
| **Useful links** | [Harvest documentation](http://help.getharvest.com/api-v1/projects-api/projects/create-and-show-projects#projects-parameters "Opens in new tab: Harvest documentation")<br><br><br>[projects schema on GitHub](https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/projects.json "Opens in new tab: projects schema on GitHub")<br><br><br>[Harvest API method](http://help.getharvest.com/api-v1/projects-api/projects/create-and-show-projects/#show-all-projects "Opens in new tab: Harvest API method") |

projects table schema

| **active**<br><br><br>BOOLEAN |
| --- |
| **bill\_by**<br><br><br>STRING |
| **billable**<br><br><br>BOOLEAN |
| **budget**<br><br><br>NUMBER |
| **budget\_by**<br><br><br>STRING |
| **client\_id**<br><br><br>INTEGER |
| **code**<br><br><br>STRING |
| **cost\_budget**<br><br><br>NUMBER |
| **cost\_budget\_include\_expenses**<br><br><br>BOOLEAN |
| **created\_at**<br><br><br>DATE-TIME |
| **ends\_on**<br><br><br>STRING |
| **estimate**<br><br><br>NUMBER |
| **estimate\_by**<br><br><br>STRING |
| **hint\_earliest\_record\_at**<br><br><br>STRING |
| **hint\_latest\_record\_at**<br><br><br>STRING |
| **hourly\_rate**<br><br><br>NUMBER |
| **id**<br><br><br>INTEGER |
| **name**<br><br><br>STRING |
| **notes**<br><br><br>STRING |
| **notify\_when\_over\_budget**<br><br><br>BOOLEAN |
| **over\_budget\_notification\_percetange**<br><br><br>INTEGER |
| **over\_budget\_notified\_at**<br><br><br>STRING |
| **show\_budget\_to\_all**<br><br><br>BOOLEAN |
| **starts\_on**<br><br><br>STRING |
| **updated\_at**<br><br><br>DATE-TIME |

### tasks

The `tasks` table contains info about the tasks in your Harvest account.

| **Replication Method [](https://help.qlik.com/en-US/stitch/replication/replication-methods)[the Info icon](https://help.qlik.com/en-US/stitch/replication/replication-methods)[](https://help.qlik.com/en-US/stitch/replication/replication-methods)** | Key-based Incremental |
| --- | --- |
| **Primary Key ![](https://help.qlik.com/en-US/stitch/images/replication/primary-key-icon.svg)** | id |
| **Replication Key ![](https://help.qlik.com/en-US/stitch/images/replication/replication-key-icon.svg)** | updated\_at |
| **Useful links** | [Harvest documentation](http://help.getharvest.com/api-v1/tasks-api/tasks/create-show-tasks/ "Opens in new tab: Harvest documentation")<br><br><br>[tasks schema on GitHub](https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/tasks.json "Opens in new tab: tasks schema on GitHub")<br><br><br>[Harvest API method](http://help.getharvest.com/api-v1/tasks-api/tasks/create-show-tasks/#show-all-tasks "Opens in new tab: Harvest API method") |

tasks table schema

| **billable\_by\_default**<br><br><br>BOOLEAN |
| --- |
| **created\_at**<br><br><br>DATE-TIME |
| **deactivated**<br><br><br>BOOLEAN |
| **default\_hourly\_rate**<br><br><br>NUMBER |
| **id**<br><br><br>INTEGER |
| **is\_default**<br><br><br>BOOLEAN |
| **name**<br><br><br>STRING |
| **updated\_at**<br><br><br>DATE-TIME |

### time\_entries

The `time_entries` table contains info about the time entries in your Harvest account.

| **Replication Method [](https://help.qlik.com/en-US/stitch/replication/replication-methods)[the Info icon](https://help.qlik.com/en-US/stitch/replication/replication-methods)[](https://help.qlik.com/en-US/stitch/replication/replication-methods)** | Key-based Incremental |
| --- | --- |
| **Primary Key ![](https://help.qlik.com/en-US/stitch/images/replication/primary-key-icon.svg)** | id |
| **Replication Key ![](https://help.qlik.com/en-US/stitch/images/replication/replication-key-icon.svg)** | updated\_at |
| **Useful links** | [Harvest documentation](http://help.getharvest.com/api-v1/timesheets-api/timesheets/retrieving-time-entries#retrieving-a-single-entry "Opens in new tab: Harvest documentation")<br><br><br>[time_entries schema on GitHub](https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/time_entries.json "Opens in new tab: time_entries schema on GitHub") |

time\_entries table schema

| **adjustment\_record**<br><br><br>BOOLEAN |
| --- |
| **created\_at**<br><br><br>DATE-TIME |
| **hours**<br><br><br>NUMBER |
| **hours\_with\_timer**<br><br><br>NUMBER |
| **id**<br><br><br>INTEGER |
| **is\_billed**<br><br><br>BOOLEAN |
| **is\_closed**<br><br><br>BOOLEAN |
| **notes**<br><br><br>STRING |
| **project\_id**<br><br><br>INTEGER |
| **spent\_at**<br><br><br>STRING |
| **task\_id**<br><br><br>INTEGER |
| **timer\_started\_at**<br><br><br>DATE-TIME |
| **updated\_at**<br><br><br>DATE-TIME |
| **user\_id**<br><br><br>INTEGER |