Person Search API
Person Endpoints
Person Search API
Search for people in the LinkedIn index using Elasticsearch Query DSL
POST
Person Search API
Endpoint
Authentication
Bearer token with your API key:
Bearer YOUR_API_KEYBilling
Per-Result Billing: This endpoint charges 1 credit per result returned, not per request. If you request 10 results and get 10 back, you’re charged 10 credits. If only 3 match, you’re charged 3 credits.
credits_charged to show exactly how many credits were used, and response headers provide quota information:
Pagination
This endpoint uses cursor-based pagination for efficient deep pagination through large result sets.- First request: Omit the
cursorparameter - Subsequent requests: Use the
next_cursorvalue from the previous response - Last page: When
next_cursorisnull, there are no more results
Request Parameters
Request Body (JSON)
Elasticsearch Query DSL object. Supports all standard Elasticsearch queries including
match, term, bool, range, and more.Example:Number of results to return per page. Maximum 100.Example:
20Pagination cursor from a previous response’s
next_cursor field. Omit for the first page.Example: "eyJ2IjoxLCJzb3J0IjpbMS4wLCJqb2huZG9lIl19"Sort criteria as an array of sort objects. If omitted, results are sorted by relevance (
_score descending).Example:Fields to include or exclude from the response. Use an array of field names to include only those fields, or
false to exclude _source entirely.Example: ["profile.full_name", "profile.headline", "linkedin_url"]Response
Success Response (200 OK)
Total number of matching documents in the index.
Array of LinkedIn person profiles matching the query.
Full LinkedIn profile URL
LinkedIn username (profile slug)
LinkedIn internal profile ID
When the profile was last updated
Core profile information including
first_name, last_name, full_name, headline, summary, image_url, connections, followers, location, and personal_emailArray of work experience entries with
title, company_name, company_id, company_url, location, description, start_date, end_date, and is_currentArray of education entries with
school_name, school_id, school_url, degree, field_of_study, start_date, and end_dateArray of certifications with
name, issuer, and issue_dateArray of languages with
language and proficiencyCursor for the next page of results.
null if there are no more results.Number of credits charged for this request (1 per result returned).
Error Responses
Error Status Codes:- 400 Bad Request - Invalid query syntax or invalid cursor
- 401 Unauthorized - Missing or invalid API key
- 403 Forbidden - Organization is inactive
- 429 Too Many Requests - Rate limit exceeded or insufficient credits
Examples
Sample Response
Query Examples
Search by Name
Search by Company
Search by Job Title (Current Only)
Search by Location
Combined Search with Filters
Best Practices
Keyword Fields: For exact matching on text fields, use the
.keyword suffix (e.g., profile.location.country.keyword). Without it, text is analyzed and may not match exactly.Related
- LinkedIn Webset Guide - Overview of LinkedIn data
- Person Enrichment API - Enrich profiles by identifier
- Authentication Guide - API key setup