# LinkedIn Profile Search API

> Search LinkedIn profiles by keyword with optional location and job-title filters. Each match returns a full profile record: name, headline, location, current position, work experience, education, and skills, plus the profile URL, handle, and id. For a cheaper name/headline/URL-only search use linkedin.search_profiles_thin; add emails with linkedin.search_profiles_email.

Source: https://www.sandbase.ai/apis/linkedin/search-profiles
API reference: https://www.sandbase.ai/apis/linkedin/search-profiles/docs

## Facts

- Provider: LinkedIn
- Type: Data API
- Endpoint: `POST https://api.sandbase.ai/v1/api/linkedin/search-profiles`
- Price: From $0.20 per call
- Capabilities: api, linkedin, social media
- Billing: pay per use from one SandBase balance; no provider account or subscription needed

## Call it

`POST https://api.sandbase.ai/v1/api/linkedin/search-profiles` with `Authorization: Bearer $SANDBASE_API_KEY` and the parameters as a JSON body.

| Parameter | Type | Required | Allowed values |
| --- | --- | --- | --- |
| `query` | string | yes |  |
| `limit` | integer | no |  |
| `schools` | array | no |  |
| `jobTitle` | string | no |  |
| `location` | string | no |  |
| `lastNames` | array | no |  |
| `firstNames` | array | no |  |
| `functionIds` | array | no |  |
| `pastCompanies` | array | no |  |
| `pastJobTitles` | array | no |  |
| `excludeSchools` | array | no |  |
| `companyHeadcount` | array | no |  |
| `currentCompanies` | array | no |  |
| `excludeLocations` | array | no |  |
| `profileLanguages` | array | no |  |
| `seniorityLevelIds` | array | no |  |
| `excludeFunctionIds` | array | no |  |
| `recentlyChangedJobs` | boolean | no |  |
| `excludePastCompanies` | array | no |  |
| `excludePastJobTitles` | array | no |  |
| `yearsOfExperienceIds` | array | no |  |
| `excludeCurrentCompanies` | array | no |  |
| `excludeCurrentJobTitles` | array | no |  |
| `excludeSeniorityLevelIds` | array | no |  |
| `recentlyPostedOnLinkedIn` | boolean | no |  |
| `yearsAtCurrentCompanyIds` | array | no |  |
| `companyHeadquarterLocations` | array | no |  |
| `excludeCompanyHeadquarterLocations` | array | no |  |

## FAQ

### How do I use the LinkedIn Profile Search API?

Send a POST request to https://api.sandbase.ai/v1/api/linkedin/search-profiles with your SandBase API key in the Authorization header (Bearer) and the parameters as a JSON body. You can also try it in the Playground on this page without writing code.

### How much does the LinkedIn Profile Search API cost?

From $0.20 per call, billed from your SandBase balance. You are only charged for calls you make; there is no subscription.

### What parameters does the LinkedIn Profile Search API accept?

Required: query (string). Optional: limit (integer), schools (array), jobTitle (string), location (string), lastNames (array) and firstNames (array) and 21 more. The Parameters table and the Playground on this page list every field.

### What does the LinkedIn Profile Search API return?

A JSON response returned in the same HTTP request (synchronous).

### Do I need a LinkedIn developer account or API key?

No. LinkedIn Profile Search runs through SandBase, so one SandBase API key covers this endpoint and every other API and model in the catalog. You do not need to apply for LinkedIn API access separately.

## README

### LinkedIn Profile Search API

Search LinkedIn profiles by keyword with optional location and job-title filters. Each match returns a full profile record: name, headline, location, current position, work experience, education, and skills, plus the profile URL, handle, and id. For a cheaper name/headline/URL-only search use linkedin.search_profiles_thin; add emails with linkedin.search_profiles_email.

#### Request

```bash
curl -X POST "https://api.sandbase.ai/v1/run" \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "linkedin/search-profiles", "limit": 3, "query": "engineer", "currentCompanies": ["Google"]}'
```

The result is returned in `outputs[0].data`. A lookup that finds nothing still succeeds and returns `found: false`.

#### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `query` | string | Yes | Search query for LinkedIn profiles: a role, name, or keywords (e.g. 'Marketing Manager'). |
| `companyHeadcount` | array | No | Filter by current company size (employee count). Codes: A=Self-Employed, B=1-10, C=11-50, D=51-200, E=201-500, F=501-1,000, G=1,001-5,000, H=5,001-10,000, I=10,001+. |
| `companyHeadquarterLocations` | array | No | Filter by the location of the person's current company headquarters, by place name (e.g. ['United States']). |
| `currentCompanies` | array | No | Filter to people who currently work at any of these companies, by name (e.g. ['Google','Meta']). Multiple names widen the match (OR). |
| `excludeCompanyHeadquarterLocations` | array | No | Exclude people whose current company is headquartered in any of these locations. |
| `excludeCurrentCompanies` | array | No | Exclude people who currently work at any of these companies, by name. |
| `excludeCurrentJobTitles` | array | No | Exclude people whose current job title matches any of these. |
| `excludeFunctionIds` | array | No | Exclude these job functions (same codes as functionIds). |
| `excludeLocations` | array | No | Exclude people in any of these locations, by place name. |
| `excludePastCompanies` | array | No | Exclude people who previously worked at any of these companies, by name. |
| `excludePastJobTitles` | array | No | Exclude people who held any of these past job titles. |
| `excludeSchools` | array | No | Exclude people who attended any of these schools, by name. |
| `excludeSeniorityLevelIds` | array | No | Exclude these seniority levels (same codes as seniorityLevelIds). |
| `firstNames` | array | No | Filter to people whose first name matches any of these. |
| `functionIds` | array | No | Filter by job function. Codes: 1=Accounting, 2=Administrative, 3=Arts and Design, 4=Business Development, 5=Community and Social Services, 6=Consulting, 7=Education, 8=Engineering, 9=Entrepreneurship, 10=Finance, 11=Heal |
| `jobTitle` | string | No | Optional current job title filter (e.g. 'Software Engineer'). |
| `lastNames` | array | No | Filter to people whose last name matches any of these. |
| `limit` | integer | No | Maximum number of full profiles to return (1-25, default 10). You are billed per profile returned, so a lower limit costs less. |
| `location` | string | No | Optional location filter (e.g. 'San Francisco'). |
| `pastCompanies` | array | No | Filter to people who previously worked at any of these companies, by name. |
| `pastJobTitles` | array | No | Filter by a past job title the person held (e.g. ['Product Manager']). |
| `profileLanguages` | array | No | Filter by the profile's primary language. |
| `recentlyChangedJobs` | boolean | No | When true, only return people who recently changed jobs (a strong sales/recruiting signal). |
| `recentlyPostedOnLinkedIn` | boolean | No | When true, only return people who recently posted on LinkedIn (an activity signal). |
| `schools` | array | No | Filter to people who attended any of these schools, by name. |
| `seniorityLevelIds` | array | No | Filter by seniority level. Codes: 100=In Training, 110=Entry Level, 120=Senior, 130=Strategic, 200=Entry Level Manager, 210=Experienced Manager, 220=Director, 300=Vice President, 310=CXO, 320=Owner/Partner. |
| `yearsAtCurrentCompanyIds` | array | No | Filter by tenure at the current company. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years. |
| `yearsOfExperienceIds` | array | No | Filter by total years of experience. Codes: 1=Less than 1 year, 2=1 to 2 years, 3=3 to 5 years, 4=6 to 10 years, 5=More than 10 years. |

#### Pricing

Billed at the actual cost of each call, usually $0.198 per request. A call can cost more when the first data source fails and another one answers. Failed calls are not charged. Lookups that find nothing and searches with no results are billed at their actual cost, which is often lower and can be $0.
