Skip to main content
POST
/
v1
/
enrichment
/
persons
/
search
Person Search
curl --request POST \
  --url 'https://api.scrapin.io/v1/enrichment/persons/search?apikey=' \
  --header 'Content-Type: application/json' \
  --data '
{
  "firstName": "<string>",
  "lastName": "<string>",
  "headline": "<string>",
  "companyName": "<string>",
  "currentPositionTitle": "<string>",
  "locationCity": "<string>",
  "locationCountryCode": "<string>",
  "currentCompanyId": "google, google-cloud",
  "companyIndustries": "Accommodation and Food Services,Administration of Justice,Accounting",
  "currentCompanyEmployeeCountMin": 50,
  "currentCompanyEmployeeCountMax": 500,
  "page": 1,
  "updateDate": "30d"
}
'
{
"success": true,
"credits_consumed": 0,
"credits_left": 99.9,
"rate_limit_left": 99,
"daily_rate_limit_left": 999,
"minute_rate_limit_left": 19,
"next_minute_rate_limit_reset": "2024-10-31T12:46:00.000Z",
"quotas": {
"credits": {
"total": 10000,
"used": 1234,
"left": 8766
},
"daily_rate_limit": {
"limit": 5000,
"used": 150,
"left": 4850,
"next_reset": "2024-10-31T12:46:00.000Z"
},
"minute_rate_limit": {
"limit": 500,
"used": 12,
"left": 488,
"next_reset": "2024-10-31T12:46:00.000Z"
}
},
"metadata": {
"source": "fresh",
"request_id": "000xcc2a-829a-4200-9704-f6f9cf9a23de"
},
"pagination": {
"currentPage": 1,
"totalPages": 5,
"totalResults": 98,
"resultsPerPage": 20
},
"persons": [
{
"publicIdentifier": "johndoe",
"linkedInUrl": "https://www.linkedin.com/in/johndoe",
"firstName": "John",
"lastName": "Doe",
"headline": "Software Engineer at Google",
"currentPositionTitle": "Senior Software Engineer",
"currentCompanyName": "Google",
"updateDate": "2025-10-02T00:00:00.000Z"
},
{
"publicIdentifier": "janedoe",
"linkedInUrl": "https://www.linkedin.com/in/janedoe",
"firstName": "Jane",
"lastName": "Doe",
"headline": "Product Manager | Tech Enthusiast",
"currentPositionTitle": "Senior Product Manager",
"currentCompanyName": "Microsoft",
"updateDate": "2025-09-15T00:00:00.000Z"
}
]
}
Each search costs 0.10 credits per page (maximum 20 results per page). Perfect for bulk lead generation and talent sourcing.

Overview

Search for profiles in our DataLake using advanced filters. This endpoint allows you to find multiple profiles matching specific criteria from our existing database.
DataLake Search: This endpoint searches our existing database with historical data. Check the updateDate field in each result to see when the profile was last refreshed.

🚀 Need Fresh Data?

The search results include an updateDate field showing when each profile was last updated. If you can’t find profiles recent enough even with the updateDate filter, you can get live, real-time data using:

Person Profile Data

Extract fresh profile data directly in real-time from the profile URL.
Smart Workflow: Use Person Search to discover candidates, then check the updateDate. If the data is recent enough (e.g., within last 30 days), use it directly. If not, fetch fresh data using Person Profile Data for critical contacts.

Use Cases

Search for potential clients or partners based on job title and company:
{
  "currentPositionTitle": "CTO",
  "companyName": "Tech"
}
Find employees at a specific company using company ID (slug or ID):
{
  "currentCompanyId": "google",
  "currentPositionTitle": "Software Engineer"
}
Or using ID:
{
  "currentCompanyId": 1441,
  "currentPositionTitle": "Product Manager"
}
Find candidates with specific skills and location:
{
  "headline": "React Developer",
  "locationCity": "New York",
  "locationCountryCode": "US"
}
Identify professionals in specific industries:
{
  "currentPositionTitle": "Product Manager",
  "companyName": "Startup"
}
Find alumni or people in your network:
{
  "companyName": "Previous Company",
  "locationCity": "Your City"
}
Target professionals working in specific industries. Use comma-separated values for multiple industries:
{
  "currentPositionTitle": "Product Manager",
  "companyIndustries": "Accommodation and Food Services,Administration of Justice,Accounting"
}
The complete list of available industries can be found in the Scrapin application.
Target professionals working at companies of a specific size range using employee count filters:
{
  "currentPositionTitle": "CTO",
  "currentCompanyEmployeeCountMin": 50,
  "currentCompanyEmployeeCountMax": 500
}
This example finds CTOs at mid-sized companies (50-500 employees). You can use either parameter alone or both together.
The updateDate field indicates when the profile was last refreshed in our database. For fresher data, use the Person Profile Data endpoint.

Best Practices

Efficient Searching

  • Be specific: Use multiple filters to narrow down results and improve relevance
  • Monitor costs: Each page costs 0.10 credits (20 results per page). Accessing multiple pages will consume additional credits.
  • Filter by freshness: Use the updateDate parameter to only retrieve profiles updated within your required time frame (e.g., "updateDate": "30d" for last 30 days).

Hybrid Approach: Search + Live Enrichment

Maximize efficiency and accuracy with this workflow:
  1. Search - Use this endpoint with the updateDate parameter to find relevant profiles with recent data
  2. Review - Check if the returned profiles meet your freshness requirements
  3. Enrich - Use Person Profile Data only for profiles that need even fresher data

Credit Consumption

Per Page

0.10 credits per page (maximum 20 results per page)
Cost-effective for finding multiple profiles. Each page costs 0.10 credits regardless of the number of results (up to 20). Use pagination wisely to manage your credit consumption.

Request Tracking & Reporting

Found incorrect or missing data? Visit your API Logs to view all requests and report issues directly from the web interface.
How to report an issue:
  1. Go to app.scrapin.io/api-logs
  2. Find the request you want to report in the logs table
  3. Click the “Report” button in the Actions column
  4. Select the issue type and add a description
The request_id helps our team investigate and resolve issues quickly. All enrichment requests are automatically logged for your convenience.

Authorizations

apikey
string
query
required

This required parameter is a string. It represents the APIKEY obtained from the developer dashboard. You must use it in the query string of your request as ?apikey=YOUR_API_KEY or in the headers as x-api-key: YOUR_API_KEY

Body

application/json
firstName
string

First name of the person (starts with matching). Optional but at least one filter must be provided.

lastName
string

Last name of the person (starts with matching). Optional but at least one filter must be provided.

headline
string

Headline (contains matching). Optional but at least one filter must be provided.

companyName
string

Current company name (starts with matching). Optional but at least one filter must be provided.

currentPositionTitle
string

Current job title (contains matching). Optional but at least one filter must be provided.

locationCity
string

City location (starts with matching). Optional but at least one filter must be provided.

locationCountryCode
string

Country code(s), comma-separated (e.g., 'US,GB,FR'). Optional but at least one filter must be provided.

currentCompanyId

Company identifier - can be either the company slug (string) or ID (number or string). Filter profiles by their current company. Optional but at least one filter must be provided.

Example:

"google, google-cloud"

companyIndustries
string

Filter by company industry/industries. Use comma-separated values for multiple industries (e.g., 'Accommodation and Food Services,Administration of Justice,Accounting'). The complete list of available industries can be found in the Scrapin application. Optional but at least one filter must be provided.

Example:

"Accommodation and Food Services,Administration of Justice,Accounting"

currentCompanyEmployeeCountMin
integer

Minimum number of employees at the person's current company. Use this to filter profiles working at companies with at least this many employees.

Example:

50

currentCompanyEmployeeCountMax
integer

Maximum number of employees at the person's current company. Use this to filter profiles working at companies with at most this many employees.

Example:

500

page
integer
default:1

Page number for pagination (default: 1). Results are limited to 20 per page.

updateDate
string

Optional parameter to filter by last update date. Only profiles updated within this duration will be returned. Accepts duration strings like '4h', '2d', '1w', '2mo', '1y'. We use the parse-duration library internally to parse these values.

Example:

"30d"

Response

The endpoint returns a list of persons matching the search criteria.

success
boolean

Indicates if the request was successful.

credits_consumed
number

Represents the number of credits consumed by this query.

credits_left
number

Represents the usable credits available for the user account after this query.

rate_limit_left
number

Represents the usable daily request limit available for the user account after this query.

daily_rate_limit_left
number

Represents the usable daily request limit available for the user account after this query.

minute_rate_limit_left
number

Represents the usable minute request limit available for the user account after this query.

next_minute_rate_limit_reset
string

Represents the next minute rate limit reset for the user account after this query. Datetime in ISO 8601 format (e.g., 2025-11-14T14:34:43.000Z).

quotas
object

Structured quota information for the user account. Provides the same data as the flat fields above in a more organized format.

metadata
object
pagination
object
persons
object[]

Array of person results.