Pulling data from the Harvest API is only the first part of your reporting. You also need to understand the relationships between different endpoints - something that APIs typically fail to convey.
At SyncHub, we not only sync your Harvest API endpoints down into a reportable format, we also describe their relationships (e.g. in terms of foreign keys) so that you can quickly get a grasp of your data and how it fits together. This page is intended as technical documentation of these relationships.
Documentation: https://help.getharvest.com/api-v2/clients-api/clients/clients/
Documentation: https://help.getharvest.com/api-v2/company-api/company/company/
Documentation: https://help.getharvest.com/api-v2/clients-api/clients/contacts/
Column | Type | Relates to | Notes |
---|---|---|---|
RemoteID | string | - | - |
WhenUpsertedIntoDataStore | datetime | - | - |
MirrorRemoteID | int | - | - |
IsDeleted | boolean | - | - |
WhenCreated | datetime | - | - |
WhenModified | datetime | - | - |
ID | long | - | - |
Title | string | - | - |
FirstName | string | - | - |
LastName | string | - | - |
string | - | - | |
PhoneOffice | string | - | - |
PhoneMobile | string | - | - |
Fax | string | - | - |
ClientID | long | Client → ID | - |
CreatedAt | datetime | - | - |
UpdatedAt | datetime | - | - |
Documentation: https://help.getharvest.com/api-v2/estimates-api/estimates/estimates/
Column | Type | Relates to | Notes |
---|---|---|---|
RemoteID | string | - | - |
WhenUpsertedIntoDataStore | datetime | - | - |
MirrorRemoteID | int | - | - |
IsDeleted | boolean | - | - |
WhenCreated | datetime | - | - |
WhenModified | datetime | - | - |
ID | long | - | - |
ClientID | long | Client → ID | - |
CreatedByUserID | long | User → ID | - |
ClientKey | string | - | - |
Number | string | - | - |
PurchaseOrder | string | - | - |
Amount | decimal | - | - |
Tax | decimal | - | - |
TaxAmount | decimal | - | - |
Tax2 | decimal | - | - |
Tax2Amount | decimal | - | - |
Discount | decimal | - | - |
DiscountAmount | decimal | - | - |
Subject | string | - | - |
Notes | string | - | - |
State | string | - | - |
IssueDate | string | - | - |
SentAt | datetime | - | - |
AcceptedAt | datetime | - | - |
DeclinedAt | datetime | - | - |
Currency | string | - | - |
CreatedAt | datetime | - | - |
UpdatedAt | datetime | - | - |
Documentation: https://help.getharvest.com/api-v2/estimates-api/estimates/estimate-item-categories/
Documentation: https://help.getharvest.com/api-v2/expenses-api/expenses/expenses/
Column | Type | Relates to | Notes |
---|---|---|---|
RemoteID | string | - | - |
WhenUpsertedIntoDataStore | datetime | - | - |
MirrorRemoteID | int | - | - |
IsDeleted | boolean | - | - |
WhenCreated | datetime | - | - |
WhenModified | datetime | - | - |
ID | long | - | - |
ReceiptUrl | string | - | - |
ReceiptFileName | string | - | - |
ReceiptFileSize | decimal | - | - |
ReceiptContentType | string | - | - |
UserID | long | User → ID | - |
UserAssignmentID | long | UserAssignment → ID | - |
ProjectID | long | Project → ID | - |
ClientID | long | Client → ID | - |
InvoiceID | long | Invoice → ID | - |
ExpenseCategoryID | long | - | - |
Notes | string | - | - |
TotalCost | decimal | - | - |
Units | decimal | - | - |
IsClosed | boolean | - | - |
IsLocked | boolean | - | - |
IsBilled | boolean | - | - |
LockedReason | string | - | - |
SpentDate | string | - | - |
Billable | boolean | - | - |
CreatedAt | datetime | - | - |
UpdatedAt | datetime | - | - |
Documentation: https://help.getharvest.com/api-v2/expenses-api/expenses/expense-categories/
Documentation: https://help.getharvest.com/api-v2/invoices-api/invoices/invoices/
Column | Type | Relates to | Notes |
---|---|---|---|
RemoteID | string | - | - |
WhenUpsertedIntoDataStore | datetime | - | - |
MirrorRemoteID | int | - | - |
IsDeleted | boolean | - | - |
WhenCreated | datetime | - | - |
WhenModified | datetime | - | - |
ID | long | - | - |
ClientID | long | Client → ID | - |
CreatedByUserID | long | User → ID | - |
ClientKey | string | - | - |
Number | string | - | - |
PurchaseOrder | string | - | - |
Amount | decimal | - | - |
DueAmount | decimal | - | - |
Tax | string | - | - |
TaxAmount | decimal | - | - |
Tax2 | decimal | - | - |
Tax2Amount | decimal | - | - |
Discount | decimal | - | - |
DiscountAmount | decimal | - | - |
Subject | string | - | - |
Notes | string | - | - |
State | string | - | - |
PeriodStart | string | - | - |
PeriodEnd | string | - | - |
IssueDate | string | - | - |
DueDate | string | - | - |
PaymentTerm | string | - | - |
SentAt | datetime | - | - |
PaidAt | datetime | - | - |
PaidDate | string | - | - |
ClosedAt | datetime | - | - |
RecurringInvoiceID | long | Invoice → ID | - |
Currency | string | - | - |
EstimateID | long | Estimate → ID | - |
RetainerID | long | - | - |
CreatedAt | datetime | - | - |
UpdatedAt | datetime | - | - |
Documentation: https://help.getharvest.com/api-v2/invoices-api/invoices/invoice-item-categories/
Documentation: https://help.getharvest.com/api-v2/invoices-api/invoices/invoice-payments/
Column | Type | Relates to | Notes |
---|---|---|---|
RemoteID | string | - | - |
InvoiceRemoteID | string | Invoice → RemoteID | - |
WhenUpsertedIntoDataStore | datetime | - | - |
MirrorRemoteID | int | - | - |
IsDeleted | boolean | - | - |
WhenCreated | datetime | - | - |
WhenModified | datetime | - | - |
ID | long | - | - |
InvoiceID | long | Invoice → ID | - |
PaymentGatewayID | long | - | - |
PaymentGatewayName | string | - | - |
Amount | decimal | - | - |
PaidAt | datetime | - | - |
PaidDate | string | - | - |
RecordedBy | string | - | - |
RecordedByEmail | string | - | - |
Notes | string | - | - |
TransactionID | string | - | - |
CreatedAt | datetime | - | - |
UpdatedAt | datetime | - | - |
Documentation: https://help.getharvest.com/api-v2/projects-api/projects/projects/
Column | Type | Relates to | Notes |
---|---|---|---|
RemoteID | string | - | - |
WhenUpsertedIntoDataStore | datetime | - | - |
MirrorRemoteID | int | - | - |
IsDeleted | boolean | - | - |
WhenCreated | datetime | - | - |
WhenModified | datetime | - | - |
ID | long | - | - |
Name | string | - | - |
ClientID | long | Client → ID | - |
Code | string | - | - |
BillBy | string | - | - |
Budget | decimal | - | - |
BudgetBy | string | - | - |
BudgetIsMonthly | boolean | - | - |
NotifyWhenOverBudget | boolean | - | - |
OverBudgetNotificationPercentage | decimal | - | - |
OverBudgetNotificationDate | datetime | - | - |
ShowBudgetToAll | boolean | - | - |
StartsOn | string | - | - |
EndsOn | string | - | - |
IsBillable | boolean | - | - |
IsFixedFee | boolean | - | - |
Notes | string | - | - |
CostBudget | decimal | - | - |
CostBudgetIncludeExpenses | boolean | - | - |
HourlyRate | decimal | - | - |
Fee | decimal | - | - |
IsActive | boolean | - | - |
CreatedAt | datetime | - | - |
UpdatedAt | datetime | - | - |
Documentation: https://help.getharvest.com/api-v2/roles-api/roles/roles/
Documentation: https://help.getharvest.com/api-v2/tasks-api/tasks/tasks/
Documentation: https://help.getharvest.com/api-v2/projects-api/projects/task-assignments/
Column | Type | Relates to | Notes |
---|---|---|---|
RemoteID | string | - |
|
WhenUpsertedIntoDataStore | datetime | - | - |
MirrorRemoteID | int | - | - |
IsDeleted | boolean | - | - |
WhenCreated | datetime | - | - |
WhenModified | datetime | - | - |
ID | long | - | - |
ProjectID | long | Project → ID | - |
TaskID | long | Task → ID | - |
Billable | boolean | - | - |
HourlyRate | decimal | - | - |
Budget | decimal | - | - |
IsActive | boolean | - | - |
CreatedAt | datetime | - | - |
UpdatedAt | datetime | - | - |
Documentation: https://help.getharvest.com/api-v2/timesheets-api/timesheets/time-entries/
Column | Type | Relates to | Notes |
---|---|---|---|
RemoteID | string | - | - |
WhenUpsertedIntoDataStore | datetime | - | - |
MirrorRemoteID | int | - | - |
IsDeleted | boolean | - | - |
WhenCreated | datetime | - | - |
WhenModified | datetime | - | - |
ID | long | - | - |
SpentDate | string | - | - |
ExternalReferenceID | string | - | - |
ExternalReferenceGroupID | string | - | - |
ExternalReferenceAccountID | string | - | - |
ExternalReferencePermaLink | string | - | - |
ExternalReferenceService | string | - | - |
UserID | long | User → ID | - |
ClientID | long | Client → ID | - |
ProjectID | long | Project → ID | - |
TaskID | long | Task → ID | - |
UserAssignmentID | long | UserAssignment → ID | - |
TaskAssignmentID | long | TaskAssignment → ID | - |
InvoiceID | long | Invoice → ID | - |
Hours | decimal | - | - |
HoursWithoutTimer | decimal | - | - |
RoundedHours | decimal | - | - |
Notes | string | - | - |
IsLocked | boolean | - | - |
LockedReason | string | - | - |
IsClosed | boolean | - | - |
IsBilled | boolean | - | - |
TimerStartedAt | datetime | - |
|
StartedTime | string | - |
|
EndedTime | string | - |
|
IsRunning | boolean | - | - |
Billable | boolean | - | - |
Budgeted | boolean | - | - |
BillableRate | decimal | - | - |
CostRate | decimal | - | - |
CreatedAt | datetime | - | - |
UpdatedAt | datetime | - | - |
Documentation: https://help.getharvest.com/api-v2/users-api/users/users/
Documentation: https://help.getharvest.com/api-v2/projects-api/projects/user-assignments/
Column | Type | Relates to | Notes |
---|---|---|---|
RemoteID | string | - |
|
WhenUpsertedIntoDataStore | datetime | - | - |
MirrorRemoteID | int | - | - |
IsDeleted | boolean | - | - |
WhenCreated | datetime | - | - |
WhenModified | datetime | - | - |
ID | long | - | - |
ProjectID | long | Project → ID | - |
UserID | long | User → ID | - |
IsProjectManager | boolean | - | - |
UseDefaultRates | boolean | - | - |
Budget | decimal | - | - |
HourlyRate | decimal | - | - |
IsActive | boolean | - | - |
CreatedAt | datetime | - | - |
UpdatedAt | datetime | - | - |
Documentation: https://help.getharvest.com/api-v2/users-api/users/billable-rates/
Column | Type | Relates to | Notes |
---|---|---|---|
RemoteID | string | - |
|
UserRemoteID | string | User → RemoteID | - |
WhenUpsertedIntoDataStore | datetime | - | - |
MirrorRemoteID | int | - | - |
IsDeleted | boolean | - | - |
WhenCreated | datetime | - | - |
WhenModified | datetime | - | - |
ID | long | - | - |
UserID | long | User → ID | - |
Amount | decimal | - | - |
StartDate | string | - | - |
EndDate | string | - | - |
CreatedAt | datetime | - | - |
UpdatedAt | datetime | - | - |
Documentation: https://help.getharvest.com/api-v2/users-api/users/cost-rates/
Column | Type | Relates to | Notes |
---|---|---|---|
RemoteID | string | - |
|
UserRemoteID | string | User → RemoteID | - |
WhenUpsertedIntoDataStore | datetime | - | - |
MirrorRemoteID | int | - | - |
IsDeleted | boolean | - | - |
WhenCreated | datetime | - | - |
WhenModified | datetime | - | - |
ID | long | - | - |
UserID | long | User → ID | - |
Amount | decimal | - | - |
StartDate | string | - | - |
EndDate | string | - | - |
CreatedAt | datetime | - | - |
UpdatedAt | datetime | - | - |
Column | Type | Relates to | Notes |
---|---|---|---|
RemoteID | string | - | - |
EstimateRemoteID | string | Estimate → RemoteID | - |
WhenUpsertedIntoDataStore | datetime | - | - |
MirrorRemoteID | int | - | - |
IsDeleted | boolean | - | - |
WhenCreated | datetime | - | - |
WhenModified | datetime | - | - |
ID | long | - | - |
Description | string | - | - |
EstimateID | long | Estimate → ID | - |
LineNumber | int | - | - |
Kind | string | EstimateItemCategory → Name | - |
Quantity | decimal | - | - |
UnitPrice | decimal | - | - |
Amount | decimal | - | - |
Taxed | boolean | - | - |
Taxed2 | boolean | - | - |
Column | Type | Relates to | Notes |
---|---|---|---|
RemoteID | string | - | - |
InvoiceRemoteID | string | Invoice → RemoteID | - |
WhenUpsertedIntoDataStore | datetime | - | - |
MirrorRemoteID | int | - | - |
IsDeleted | boolean | - | - |
WhenCreated | datetime | - | - |
WhenModified | datetime | - | - |
Description | string | - | - |
InvoiceID | long | Invoice → ID | - |
LineNumber | int | - | - |
ProjectID | long | - | - |
Kind | string | InvoiceItemCategory → Name | - |
Quantity | decimal | - | - |
UnitPrice | decimal | - | - |
Amount | decimal | - | - |
Taxed | boolean | - | - |
Taxed2 | boolean | - | - |
Column | Type | Relates to | Notes |
---|---|---|---|
RemoteID | string | - | - |
RoleRemoteID | string | Role → RemoteID | - |
WhenUpsertedIntoDataStore | datetime | - | - |
MirrorRemoteID | int | - | - |
IsDeleted | boolean | - | - |
WhenCreated | datetime | - | - |
WhenModified | datetime | - | - |
UserID | long | User → ID | - |
RoleID | long | Role → ID | - |
SyncHub lives and breathes APIs and data. Keep exploring using the links below.