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.
| Connector | harvest/profile |
|---|---|
| Role | enrich |
| Records | person |
| Tier | verified since 2026-09-27 |
| Credential | HARVEST_API_KEY stored once with gtme secret set HARVEST_API_KEY |
| Cost | unset in the manifest; gtme plan prints what the step declares at run time |
| Cache | 30 days: a re-run inside the window reads the ledger instead of paying again |
| Calls | GET https://api.harvestapi.io/linkedin/profile |
| Source | github.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@mainThe 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/profilegtme 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
| Key | Type | What it does |
|---|---|---|
main_only | boolean | Ask for the cheaper main profile version |
cost_per_profile_usd | number | What one profile lookup costs on your HarvestAPI plan Default 0.012. |
base_url | string | Override the API host (testing) Default https://api.harvestapi.io. |
posts_limit | version 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 fileOn this page, connector means what gtme calls an adapter. This one is a binding from the registry. Two adapter tiers explains the difference.