Connectors › Harvest API

Harvest API profile

Enrich a person from their LinkedIn profile via HarvestAPI, by any LinkedIn URL shape: headline, about, location, current role and company, role history.

Connectorharvest/profile
Roleenrich
Recordsperson
Tierverified since 2026-09-27
CredentialHARVEST_API_KEY stored once with gtme secret set HARVEST_API_KEY
Costunset in the manifest; gtme plan prints what the step declares at run time
Cache30 days: a re-run inside the window reads the ledger instead of paying again
CallsGET https://api.harvestapi.io/linkedin/profile
Sourcegithub.com/gtme-run/gtme-bindings/harvest-profile

Use it

Install it from the registry. Nothing installs unverified: the fixtures run offline first.

gtme adapters add github.com/gtme-run/gtme-bindings/harvest-profile@main

The command prints the hosts the binding will call and the credentials it will ask for, then pins the commit it fetched. Then, in a pipeline file:

steps:
  - id: profile
    use: harvest/profile

gtme plan pipeline.yaml checks the credential is set and that every field this step needs is provided by a step before it, without calling anyone.

Needs

linkedin_url, linkedin_internal_url, linkedin_sales_nav_url

Provides

linkedin_url, headline, about, location, current_role, current_company, follower_count, open_to_work, role_history

Config

KeyTypeWhat it does
main_onlybooleanAsk for the cheaper main profile version
cost_per_profile_usdnumberWhat one profile lookup costs on your HarvestAPI plan Default 0.012.
base_urlstringOverride the API host (testing) Default https://api.harvestapi.io.
posts_limitversion 2 fetches no posts; add a harvest/recent-posts step after this one and set posts_limit there

What a response looks like

Recorded from a real response to GET /linkedin/profile, status 200. The conformance kit proves this payload in produces canonical records out, and gtme run --simulate serves it in place of the network.

{
  "element": {
    "id": "ACoAAA",
    "publicIdentifier": "jane-doe",
    "linkedinUrl": "https://www.linkedin.com/in/jane-doe",
    "firstName": "Jane",
    "lastName": "Doe",
    "headline": "VP Marketing at Acme — demand gen, lifecycle, and the occasional spreadsheet",
    "about": "I run marketing at Acme.",
    "followerCount": 4210,
    "openToWork": false,
    "location": {
      "linkedinText": "Austin, Texas, United States"
    },
    "currentPosition": [
      {
        "companyName": "Acme Inc",
        "position": "VP Marketing"
      }
    ],
    "experience": [
      {
        "companyName": "Acme Inc",
        "position": "VP Marketing",
        "startDate": {
          "year": 2022,
          "month": 3,
          "text": "Mar 2022"
        },
        "endDate": {
          "text": ""
        },
        "duration": "2 yrs"
      },
      {
        "companyName": "Initech",
        "position": "Director of Demand Gen",
        "startDate": {
          "year": "2019",
          "month": "6"
… 9 more lines in the fixture file

On this page, connector means what gtme calls an adapter. This one is a binding from the registry. Two adapter tiers explains the difference.