Harvest
This page contains the setup guide and reference information for the Harvest source connector.
Prerequisites
- A Harvest account
- Your Harvest Account ID
- One of the following authentication methods:
- OAuth (Airbyte Cloud): A Harvest developer application with a Client ID, Client Secret, and Refresh Token
- Personal Access Token (Airbyte Open Source): A Personal Access Token created in the Developers section of Harvest ID
Setup guide
For Airbyte Cloud:
- Log into your Airbyte Cloud.
- Click Sources and then click + New source.
- On the Set up the source page, select Harvest from the Source type dropdown.
- Enter the name for the Harvest connector.
- Enter your Harvest Account ID.
- For Start Date, enter the date in YYYY-MM-DDTHH:mm:ssZ format. The data added on and after this date will be replicated.
- For Authentication mechanism, select Authenticate via Harvest (OAuth) from the dropdown and click Authenticate your Harvest account. Log in and authorize your Harvest account.
- Click Set up source.
For Airbyte Open Source:
- Navigate to the Airbyte Open Source dashboard.
- Click Sources and then click + New source.
- On the Set up the source page, select Harvest from the Source type dropdown.
- Enter the name for the Harvest connector.
- Enter your Harvest Account ID.
- For Start Date, enter the date in YYYY-MM-DDTHH:mm:ssZ format. The data added on and after this date will be replicated.
- For Authentication mechanism, select Authenticate with Personal Access Token from the dropdown. Enter your Personal Access Token.
- Click Set up source.
Supported sync modes
The Harvest source connector supports the following sync modes:
Supported streams
- Client Contacts (Incremental)
- Clients (Incremental)
- Company
- Invoice Messages (Incremental)
- Invoice Payments (Incremental)
- Invoices (Incremental)
- Invoice Item Categories (Incremental)
- Estimate Messages (Incremental)
- Estimates (Incremental)
- Estimate Item Categories (Incremental)
- Expenses (Incremental)
- Expense Categories (Incremental)
- Tasks (Incremental)
- Time Entries (Incremental)
- Project User Assignments (Incremental)
- Project Task Assignments (Incremental)
- Projects (Incremental)
- Roles (Incremental)
- Users (Incremental)
- User Billable Rates
- User Cost Rates
- User Project Assignments (Incremental)
- Expense Clients Report (Incremental)
- Expense Projects Report (Incremental)
- Expense Categories Report (Incremental)
- Expense Team Report (Incremental)
- Uninvoiced Report (Incremental)
- Time Clients Report (Incremental)
- Time Projects Report (Incremental)
- Time Tasks Report (Incremental)
- Time Team Report (Incremental)
- Project Budget Report
Performance considerations
The connector is restricted by Harvest rate limits. Harvest enforces two separate rate limits:
- General API requests: 100 requests per 15 seconds
- Reports API requests: 100 requests per 15 minutes
The connector automatically enforces these limits using a built-in HTTP API budget and retries throttled requests using the Retry-After header provided by the API.
You can configure the number of concurrent workers using the Number of Concurrent Workers field. Higher values can speed up syncs but increase API rate limit usage. The default is 4 workers, and the maximum is 10. Adjust this based on whether other applications share your Harvest API quota.
Report streams (Expense Reports, Time Reports, Uninvoiced Report, and Project Budget Report) retrieve data in 365-day date windows. For accounts with a long history, initial syncs of these streams may take longer.
Limitations and troubleshooting
This connector uses Harvest's granular permission model. If your credentials lack access to a specific resource, the corresponding stream produces zero records instead of failing the sync. If a stream returns no data, verify that your Harvest user has the required permissions for that resource.
Reference
Config fields reference
Changelog
Expand to review
| Version | Date | Pull Request | Subject |
|---|---|---|---|
| 1.2.35 | 2026-04-28 | 75371 | Update dependencies |
| 1.2.34 | 2026-04-21 | 76845 | Bump SDM base image to stable 7.17.2 |
| 1.2.33 | 2026-04-13 | 76276 | Rename "concurrent workers" to "concurrent threads" in connector spec |
| 1.2.32 | 2026-04-10 | 76247 | Promoted release candidate to GA |
| 1.2.32-rc.4 | 2026-04-08 | 75543 | Added configurable concurrency level with num_workers parameter and HTTP API budget rate limiting |
| 1.2.32-rc.4 | 2026-03-27 | 75543 | Added configurable concurrency level with num_workers parameter and HTTP API budget rate limiting |
| 1.2.32-rc.1 | 2026-03-24 | 75409 | Test dev image of source-declarative-manifest (7.13.0.post6.dev23497311155) |
| 1.2.31 | 2026-03-10 | 74687 | Update dependencies |
| 1.2.30 | 2026-02-24 | 73930 | Update dependencies |
| 1.2.29 | 2026-02-10 | 73113 | Update dependencies |
| 1.2.28 | 2026-02-03 | 72645 | Update dependencies |
| 1.2.27 | 2026-01-20 | 71880 | Update dependencies |
| 1.2.26 | 2026-01-14 | 71693 | Update dependencies |
| 1.2.25 | 2025-12-18 | 70496 | Update dependencies |
| 1.2.24 | 2025-11-25 | 70061 | Update dependencies |
| 1.2.23 | 2025-11-18 | 69372 | Update dependencies |
| 1.2.22 | 2025-10-29 | 68814 | Update dependencies |
| 1.2.21 | 2025-10-22 | 68591 | Add suggestedStreams |
| 1.2.20 | 2025-10-21 | 61157 | Update dependencies |
| 1.2.19 | 2025-10-14 | 66013 | Update to CDK v7 |
| 1.2.18 | 2025-05-24 | 60670 | Update dependencies |
| 1.2.17 | 2025-05-10 | 59910 | Update dependencies |
| 1.2.16 | 2025-05-05 | 59215 | Fix missing schema for time_team, users, time_entries, company, & project_assignments streams. |
| 1.2.15 | 2025-05-03 | 59254 | Update dependencies |
| 1.2.14 | 2025-04-26 | 58767 | Update dependencies |
| 1.2.13 | 2025-04-19 | 58170 | Update dependencies |
| 1.2.12 | 2025-04-12 | 57717 | Update dependencies |
| 1.2.11 | 2025-04-05 | 57034 | Update dependencies |
| 1.2.10 | 2025-03-29 | 56653 | Update dependencies |
| 1.2.9 | 2025-03-22 | 56066 | Update dependencies |
| 1.2.8 | 2025-03-08 | 55483 | Update dependencies |
| 1.2.7 | 2025-03-01 | 54796 | Update dependencies |
| 1.2.6 | 2025-02-22 | 54327 | Update dependencies |
| 1.2.5 | 2025-02-15 | 53860 | Update dependencies |
| 1.2.4 | 2025-02-08 | 53282 | Update dependencies |
| 1.2.3 | 2025-02-01 | 52747 | Update dependencies |
| 1.2.2 | 2025-01-25 | 52254 | Update dependencies |
| 1.2.1 | 2025-01-24 | 52139 | Fix low-code state migration |
| 1.2.0 | 2025-01-23 | 52109 | Make incremental per-partition streams concurrent |
| 1.1.9 | 2025-01-18 | 51792 | Update dependencies |
| 1.1.8 | 2025-01-11 | 51155 | Update dependencies |
| 1.1.7 | 2025-01-04 | 50629 | Update dependencies |
| 1.1.6 | 2024-12-21 | 50081 | Update dependencies |
| 1.1.5 | 2024-12-14 | 49634 | Update dependencies |
| 1.1.4 | 2024-12-12 | 49213 | Update dependencies |
| 1.1.3 | 2024-12-11 | 48159 | Starting with this version, the Docker image is now rootless. Please note that this and future versions will not be compatible with Airbyte versions earlier than 0.64 |
| 1.1.2 | 2024-10-29 | 47817 | Update dependencies |
| 1.1.1 | 2024-10-28 | 47670 | Update dependencies |
| 1.1.0 | 2024-10-14 | 46898 | Promoting release candidate 1.1.0-rc1 to a main version. |
| 1.1.0-rc1 | 2024-10-09 | 46685 | Migrate to Manifest-only |
| 1.0.19 | 2024-10-05 | 46470 | Update dependencies |
| 1.0.18 | 2024-09-28 | 46143 | Update dependencies |
| 1.0.17 | 2024-09-21 | 45835 | Update dependencies |
| 1.0.16 | 2024-09-14 | 45537 | Update dependencies |
| 1.0.15 | 2024-09-07 | 44986 | Update dependencies |
| 1.0.14 | 2024-08-24 | 44681 | Update dependencies |
| 1.0.13 | 2024-08-17 | 44263 | Update dependencies |
| 1.0.12 | 2024-08-10 | 43463 | Update dependencies |
| 1.0.11 | 2024-08-03 | 43123 | Update dependencies |
| 1.0.10 | 2024-07-27 | 42831 | Update dependencies |
| 1.0.9 | 2024-07-20 | 42326 | Update dependencies |
| 1.0.8 | 2024-07-13 | 41841 | Update dependencies |
| 1.0.7 | 2024-07-10 | 41381 | Update dependencies |
| 1.0.6 | 2024-07-09 | 41303 | Update dependencies |
| 1.0.5 | 2024-07-06 | 41002 | Update dependencies |
| 1.0.4 | 2024-06-25 | 40475 | Update dependencies |
| 1.0.3 | 2024-06-22 | 40169 | Update dependencies |
| 1.0.2 | 2024-05-08 | 38055 | Fix error handler for retriable errors |
| 1.0.1 | 2024-04-24 | 36641 | Schema descriptions and CDK 0.80.0 |
| 1.0.0 | 2024-04-15 | 35863 | Migrates connector to Low Code CDK, Updates incremental substream state to per-partition state |
| 0.2.0 | 2024-04-08 | 36889 | Unpin CDK version |
| 0.1.24 | 2024-02-26 | 35541 | Improve check command to avoid missing alerts |
| 0.1.23 | 2024-02-19 | 35305 | Fix pendulum parsing error |
| 0.1.22 | 2024-02-12 | 35154 | Manage dependencies with Poetry. |
| 0.1.21 | 2023-11-30 | 33003 | Update expected records |
| 0.1.20 | 2023-10-19 | 31599 | Base image migration: remove Dockerfile and use the python-connector-base image |
| 0.1.19 | 2023-07-26 | 28755 | Changed parameters for Time Reports to use 365 days as opposed to 1 year |
| 0.1.18 | 2023-05-29 | 26714 | Remove authSpecification from spec in favour of advancedAuth |
| 0.1.17 | 2023-03-03 | 22983 | Specified date formatting in specification |
| 0.1.16 | 2023-02-07 | 22417 | Turn on default HttpAvailabilityStrategy |
| 0.1.15 | 2023-01-27 | 22008 | Set AvailabilityStrategy for streams explicitly to None |
| 0.1.14 | 2023-01-09 | 21151 | Skip 403 FORBIDDEN for all stream |
| 0.1.13 | 2022-12-22 | 20810 | Skip 403 FORBIDDEN for EstimateItemCategories stream |
| 0.1.12 | 2022-12-16 | 20572 | Introduce replication end date |
| 0.1.11 | 2022-09-28 | 17326 | Migrate to per-stream states. |
| 0.1.10 | 2022-08-08 | 15221 | Added parent_id for all streams which have parent stream |
| 0.1.9 | 2022-08-04 | 15312 | Fix started_time and ended_time format schema error and updated report slicing |
| 0.1.8 | 2021-12-14 | 8429 | Update titles and descriptions |
| 0.1.6 | 2021-11-14 | 7952 | Implement OAuth 2.0 support |
| 0.1.5 | 2021-09-28 | 5747 | Update schema date-time fields |
| 0.1.4 | 2021-06-22 | 5071 | Harvest normalization failure: fixing the schemas |
| 0.1.3 | 2021-06-22 | 4274 | Fix wrong data type on statement_key in clients stream |
| 0.1.2 | 2021-06-07 | 4222 | Correct specification parameter name |
| 0.1.1 | 2021-06-09 | 3973 | Add AIRBYTE_ENTRYPOINT for Kubernetes support |
| 0.1.0 | 2021-06-07 | 3709 | Release Harvest connector! |