Skip to main content
POST
https://api.gtmapis.com
/
v1
/
people
/
lookup
Person Lookup
curl --request POST \
  --url https://api.gtmapis.com/v1/people/lookup \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "first_name": "<string>",
  "last_name": "<string>",
  "company_domain": "<string>",
  "title": "<string>",
  "location": "<string>",
  "enrich_profile": true
}
'
{
  "linkedin_url": "<string>",
  "profile": {},
  "similarity_scores": {},
  "found": true,
  "confidence": 123,
  "source_provider": "<string>",
  "credits_charged": 123,
  "cache_hit": true,
  "latency_ms": 123
}

Person Lookup

Find a LinkedIn profile for a person given their name and company domain. Optionally enrich with full profile data.

Endpoint

POST /v1/people/lookup

Request

first_name
string
required
The person’s first name
last_name
string
The person’s last name (recommended for better accuracy)
company_domain
string
required
Company domain (e.g., “acme.com”)
title
string
Job title hint for better matching
location
string
Location hint (city, state, or country)
enrich_profile
boolean
default:"false"
If true, returns full profile data (adds 1 credit)

Example Request

curl -X POST https://api.gtmapis.com/v1/people/lookup \
  -H "Content-Type: application/json" \
  -H "X-API-Key: gtm_test_your_key_here" \
  -d '{
    "first_name": "John",
    "last_name": "Doe",
    "company_domain": "acme.com",
    "enrich_profile": true
  }'

Response

linkedin_url
string
The person’s LinkedIn profile URL
profile
object
Full profile data (only if enrich_profile: true). See Profile Enrichment for fields.
similarity_scores
object
Fuzzy match confidence scores:
  • name: Name similarity (0-1)
  • company: Company match score (0-1)
  • title: Title similarity (0-1)
  • location: Location match score (0-1)
found
boolean
Whether a matching person was found
confidence
integer
Overall confidence score (0-100)
source_provider
string
Data provider that returned the result
credits_charged
integer
Credits charged for this request
cache_hit
boolean
Whether result was served from cache
latency_ms
integer
Request time in milliseconds

Success Response

{
  "linkedin_url": "https://linkedin.com/in/johndoe",
  "profile": {
    "first_name": "John",
    "last_name": "Doe",
    "full_name": "John Doe",
    "title": "VP of Sales",
    "company": "Acme Inc",
    "company_domain": "acme.com",
    "linkedin_url": "https://linkedin.com/in/johndoe",
    "location": "San Francisco, CA",
    "seniority": "VP"
  },
  "similarity_scores": {
    "name": 1.0,
    "company": 0.95,
    "title": 0.0,
    "location": 0.0
  },
  "found": true,
  "confidence": 92,
  "source_provider": "peopledatalabs",
  "credits_charged": 3,
  "cache_hit": false,
  "latency_ms": 456
}

Not Found Response

{
  "linkedin_url": "",
  "found": false,
  "confidence": 0,
  "credits_charged": 0,
  "cache_hit": false,
  "latency_ms": 234,
  "error": "No matching person found"
}

Credit Pricing

ResultCredits Charged
LinkedIn URL found2 credits
LinkedIn URL found + profile enrichment3 credits
Not found0 credits
Error / failure0 credits
Cache hits are charged at the same rate. Results are cached for 7 days.

Error Responses

400 Bad Request

{
  "error": "Bad Request",
  "message": "first_name is required"
}

401 Unauthorized

{
  "error": "Unauthorized",
  "message": "Invalid API key"
}

503 Service Unavailable

{
  "error": "Service Unavailable",
  "message": "person lookup not configured"
}

Use Cases

Look up prospects before sales calls to understand their background, tenure, and career trajectory.
Enhance your CRM records with LinkedIn URLs for better contact management and social selling.
Verify that contacts match expected job titles and companies before outreach.
Find LinkedIn profiles for contacts you only have name + company for.