/v2/lookup/peopleKey features:
Returns only successfully matched people in the response.
| Endpoint | POST /v2/lookup/people |
| Credit cost | 0.05 credits / result |
| Response | Synchronous |
| Max per request | 1,000 combined identifiers |
LinkedIn handle format
Use the URL slug only — the part after
linkedin.com/in/. Forhttps://linkedin.com/in/jane-doe-123, pass"jane-doe-123".
curl -X POST "https://api.ocean.io/v2/lookup/people" \
-H "X-Api-Token: YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"linkedinHandles": ["jane-doe-123", "john-smith-456"],
"oceanIds": ["ocean-id-abc"]
}'import requests
response = requests.post(
'https://api.ocean.io/v2/lookup/people',
headers={'X-Api-Token': 'YOUR_API_TOKEN'},
json={
'linkedinHandles': ['jane-doe-123', 'john-smith-456'],
'oceanIds': ['ocean-id-abc'],
},
)
data = response.json()const response = await fetch('https://api.ocean.io/v2/lookup/people', {
method: 'POST',
headers: { 'X-Api-Token': 'YOUR_API_TOKEN', 'Content-Type': 'application/json' },
body: JSON.stringify({
linkedinHandles: ['jane-doe-123', 'john-smith-456'],
oceanIds: ['ocean-id-abc'],
}),
});
const data = await response.json();Example response:
{
"people": [
{
"id": "abc123",
"name": "Jane Doe",
"jobTitle": "Head of Product",
"domain": "example.com",
"linkedinUrl": "https://linkedin.com/in/jane-doe-123"
}
],
"totalRequested": 3,
"totalFound": 2
}Unmatched identifiers are silently omitted. Compare totalRequested vs totalFound to identify gaps.
apiToken string x-api-token string 200 Successful Responseid string Required domain string Required name string firstName string lastName string country string state string location string linkedinUrl string "Owner""Founder""Board Member""C-Level""Partner""VP""Head""Director""Manager""Other""Accounting and Finance""Board""Business Support""Customer Relations""Design""Editorial Personnel""Engineering""Founder/Owner""Healthcare""HR""Legal""Management""Manufacturing""Marketing and Advertising""Operations""PR and Communications""Procurement""Product""Quality Control""R&D""Sales""Security""Supply Chain""Other"photo string jobTitle string jobTitleEnglish string currentJobDescription string domain string jobTitle string dateFrom string dateTo string description string linkedinCompanyHandle string summary string status enum Required "verified""notFound""inProgress"address string Required status enum Required "verified""guessed""catchAll""notFound"updatedAt string connectionsCount integer followersCount integer headline string "0-1""2-10""11-50""51-200""201-500""501-1000""1001-5000""5001-10000""10001-50000""50001-100000""100001-500000""500000+"logo string name string "0-1M""1-10M""10-50M""50-100M""100-500M""500-1000M"">1000M"employeeCountOcean integer date string "Seed""Series A""Angel""Series B""Series Unknown""Pre-Seed""Grant""Series C""Convertible Note""Debt Financing""Non-Equity Assistance""Undisclosed""Series D""Corporate Round""Equity Crowdfunding""Product Crowdfunding""Series E""Private Equity""Secondary Market""Initial Coin Offering""Post-IPO Equity""Series F""Post-IPO Debt""Series H""Series G""Post-IPO Secondary""Series I""Series J"moneyRaisedInUsd integer cbUrl string relevance enum "A""B""C"totalRequested integer Required totalFound integer Required creditsUsed number Required 400 Bad Requestdetail enum Required "Conflicting API tokens provided in query parameters and headers"402 Payment Requireddetail enum Required "Insufficient credits"403 Forbiddendetail enum Required "API token should be provided in headers or query parameters""Current API token is not registered in our database"404 Not found422 Validation Errormsg string Required type string Required input any Can I mix LinkedIn handles and Ocean IDs in the same request?
Yes. Both parameters are optional individually, but at least one must be provided. Combined total must not exceed 1,000.
Can I get email addresses from this endpoint?
No. Lookup People returns profile data only. To get emails, pass the returned id values to Reveal Emails.