Migrating from Greenhouse (Legacy) to Greenhouse
Greenhouse retires Harvest API v1 and v2 on August 31, 2026. Harvest v1 and v3 are separate APIs, not two versions of the same API. Harvest v3 uses a different endpoint and doesn't accept v1 credentials or v1 field names. There's no dual-stack period: once Greenhouse turns off v1, every Data Flow using a Greenhouse (Legacy) connection returns 401 Unauthorized and stops pulling data. Migrate before August 31, 2026.
Prerequisites
- An existing Data Flow using a Greenhouse (Legacy) connection.
- A Client ID and Client Secret issued by Greenhouse for Harvest API v3. See Greenhouse connection.
Key changes in Harvest API v3
Authentication
Harvest v3 replaces the Harvest v1 API key with OAuth 2.0 Client Credentials. The two credential types aren't interchangeable: you can't use a v1 API key against the v3 endpoint, and you can't use v3 credentials against the v1 endpoint.
| Harvest v1 | Harvest v3 |
|---|---|
| API key (Basic auth) | OAuth Client ID and Client Secret |
Renamed fields
Harvest v3 renamed the following fields. The old names don't exist in v3 responses, so any downstream mapping, transformation, or dashboard that references them breaks silently after you re-run Automapping.
| Old field (v1) | New field (v3) |
|---|---|
applied_at | created_at |
credited_to | referrer_id |
source | source_id |
Removed reports
Harvest v3 removes the following report with no replacement:
| v1 report | v3 status |
|---|---|
| Activity Feed | Not supported |
All other v1 reports have a v3 equivalent.
Incremental filter change on Applications
Harvest v3 no longer exposes an applied_at field on Applications, so the legacy Created Date incremental type is replaced by Updated (filters by updated_at). Last Activity (filters by last_activity_at) is unchanged.
| Old incremental type (v1) | New incremental type (v3) |
|---|---|
Created Date (filtered by applied_at) | Updated (filtered by updated_at) |
Last Activity (filtered by last_activity_at) | Last Activity (filtered by last_activity_at) |
If you leave an Applications Data Flow configured with Created Date, it emits no incremental filter against v3 and always runs a full scan. Reconfigure it to Updated.
Procedure
The new Greenhouse connector is a separate source from Greenhouse (Legacy), so you can't redirect an existing Greenhouse (Legacy) Data Flow to it. You'll recreate each affected flow on the new connector.
- In Greenhouse, navigate to Configure → Dev Center → API Credential Management and create a Harvest API credential. Grant it read access to the reports you use, then copy the Client ID and Client Secret. Greenhouse shows the secret only once.
- In the Data Integration Console, create a new Greenhouse connection using the OAuth Client ID and Client Secret, then click Test Connection.
- Click + Create Data Flow, choose Source to Target Flow, search for Greenhouse, and select it.
- Select your new Greenhouse connection, then choose the Report (data stream) and configure any status filters, incremental type, and time period to match your legacy flow. For the Applications report, set the incremental type to Updated — Created Date no longer exists in v3.
- On the Schema tab, click Auto Mapping to generate your source-to-target mapping, and update your target for the v3 field renames.
- Click Save and run your Data Flow to confirm data is flowing correctly. Once the new flow is validated, deactivate or delete the equivalent Greenhouse (Legacy) Data Flow.