People Search API
People Search Crustdata v3 API
Find up to 100 professional profiles by company domain and title keywords.
POST/v1/run/people_search.crustdata_v3
Uptime
100.00%
30d · 3 calls
Requests
3
30d
Response
0.8s
median · 30d
Call it
Make your first request
import os, requests res = requests.post( "https://api.getanyapi.com/v1/run/people_search.crustdata_v3", headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"}, json={ "companyDomain": "", "titleKeywords": "" }, ) print(res.json())
Sample response
{
"data": {
"hasMore": true,
"profiles": [
{
"allEmployers": [
{
"businessEmailVerified": true,
"companyDomain": "example.com",
"companyHeadcount": 12500,
"companyHeadcountRange": "Acme Inc",
"companyHeadquartersCountry": "Acme Inc",
"companyHqLocation": "Acme Inc",
"companyHqLocationAddressComponents": [
null
],
"companyId": "Acme Inc",
"companyIndustries": [
null
],
"companyIndustry": "Acme Inc",
"companyLinkedinId": "https://example.com/page",
"companyLinkedinUrl": "https://example.com/page",
"companyName": "Acme Inc",
"companyType": "Acme Inc",
"companyWebsite": "https://example.com/page",
"description": "A short example description of this item.",
"employmentType": "general",
"endUtc": 42,
"functionCategory": "general",
"linkedinId": "https://example.com/page",
"location": "example",
"positionId": "a1b2c3d4",
"primaryEmployer": true,
"seniority": "example",
"startUtc": 42,
"title": "Example title",
"updatedUtc": 42,
"yearsAtCompany": 2024,
"yearsAtCompanyRange": "Acme Inc"
}
],
"certifications": [
{
"certificationId": "a1b2c3d4",
"expiresUtc": 42,
"issuedUtc": 42,
"issuer": "example",
"issuerLinkedinId": "https://example.com/page",
"name": "Example title",
"url": "https://example.com/page"
}
],
"city": "San Francisco",
"connectionCount": 12500,
"contactUpdatedUtc": 42,
"continent": "example",
"country": "US",
"currentEmployers": [
{
"businessEmailVerified": true,
"companyDomain": "example.com",
"companyHeadcount": 12500,
"companyHeadcountRange": "Acme Inc",
"companyHeadquartersCountry": "Acme Inc",
"companyHqLocation": "Acme Inc",
"companyHqLocationAddressComponents": [
null
],
"companyId": "Acme Inc",
"companyIndustries": [
null
],
"companyIndustry": "Acme Inc",
"companyLinkedinId": "https://example.com/page",
"companyLinkedinUrl": "https://example.com/page",
"companyName": "Acme Inc",
"companyType": "Acme Inc",
"companyWebsite": "https://example.com/page",
"description": "A short example description of this item.",
"employmentType": "general",
"functionCategory": "general",
"linkedinId": "https://example.com/page",
"location": "example",
"positionId": "a1b2c3d4",
"primaryEmployer": true,
"seniority": "example",
"startUtc": 42,
"title": "Example title",
"updatedUtc": 42,
"yearsAtCompany": 2024,
"yearsAtCompanyRange": "Acme Inc"
}
],
"educationBackground": null,
"educationUpdatedUtc": 42,
"emails": [
"alex@example.com"
],
"employerUpdatedUtc": 42,
"firstName": "Alex",
"flagshipProfileUrl": "https://example.com/page",
"followerCount": 12500,
"headline": "Example title",
"honors": null,
"image": "https://example.com/image.jpg",
"indexedUtc": 1,
"languages": [
"en"
],
"lastName": "Rivera",
"linkedinUrl": "https://example.com/page",
"name": "Example title",
"openToCards": null,
"pastEmployers": [
{
"businessEmailVerified": true,
"companyDomain": "example.com",
"companyHeadcount": 12500,
"companyHeadcountRange": "Acme Inc",
"companyHeadquartersCountry": "Acme Inc",
"companyHqLocation": "Acme Inc",
"companyHqLocationAddressComponents": [
null
],
"companyId": "Acme Inc",
"companyIndustries": [
null
],
"companyIndustry": "Acme Inc",
"companyLinkedinId": "https://example.com/page",
"companyLinkedinUrl": "https://example.com/page",
"companyName": "Acme Inc",
"companyType": "Acme Inc",
"companyWebsite": "https://example.com/page",
"description": "A short example description of this item.",
"employmentType": "general",
"endUtc": 42,
"functionCategory": "general",
"linkedinId": "https://example.com/page",
"location": "example",
"positionId": "a1b2c3d4",
"primaryEmployer": true,
"seniority": "example",
"startUtc": 42,
"title": "Example title",
"updatedUtc": 42,
"yearsAtCompany": 2024,
"yearsAtCompanyRange": "Acme Inc"
}
],
"personId": "a1b2c3d4",
"profileLanguage": "en",
"profilePictureUrl": "https://example.com/image.jpg",
"profileUpdatedUtc": 42,
"recentlyChangedJobs": true,
"recordUpdatedUtc": 42,
"region": "CA",
"regionAddressComponents": [
"CA"
],
"skills": [
"example"
],
"state": "CA",
"summary": "A short example description of this item.",
"twitterHandle": "alex_rivera",
"updatedUtc": 42,
"yearsOfExperience": 2024,
"yearsOfExperienceRange": "example"
}
],
"totalCount": 12500
},
"found": true,
"reason": "not_found"
}Response interface
interface PeopleSearchCrustdataV3Response {
data: {
hasMore?: boolean;
profiles: {
allEmployers?: {
businessEmailVerified?: boolean;
companyDomain?: string;
companyHeadcount?: number;
companyHeadcountRange?: string;
companyHeadquartersCountry?: string;
companyHqLocation?: string;
companyHqLocationAddressComponents?: string[];
companyId?: string;
companyIndustries?: string[];
companyIndustry?: string;
companyLinkedinId?: string;
companyLinkedinUrl?: string;
companyName?: string;
companyType?: string;
companyWebsite?: string;
description?: string;
employmentType?: string;
endUtc?: number;
functionCategory?: string;
linkedinId?: string;
location?: string;
positionId?: string;
primaryEmployer?: boolean;
seniority?: string;
startUtc?: number;
title?: string;
updatedUtc?: number;
yearsAtCompany?: number;
yearsAtCompanyRange?: string;
}[];
certifications?: {
certificationId?: string;
expiresUtc?: number;
issuedUtc?: number;
issuer?: string;
issuerLinkedinId?: string;
name?: string;
url?: string;
}[];
city?: string;
connectionCount?: number;
contactUpdatedUtc?: number;
continent?: string;
country?: string;
currentEmployers?: {
businessEmailVerified?: boolean;
companyDomain?: string;
companyHeadcount?: number;
companyHeadcountRange?: string;
companyHeadquartersCountry?: string;
companyHqLocation?: string;
companyHqLocationAddressComponents?: string[];
companyId?: string;
companyIndustries?: string[];
companyIndustry?: string;
companyLinkedinId?: string;
companyLinkedinUrl?: string;
companyName?: string;
companyType?: string;
companyWebsite?: string;
description?: string;
employmentType?: string;
functionCategory?: string;
linkedinId?: string;
location?: string;
positionId?: string;
primaryEmployer?: boolean;
seniority?: string;
startUtc?: number;
title?: string;
updatedUtc?: number;
yearsAtCompany?: number;
yearsAtCompanyRange?: string;
}[];
educationBackground?: any;
educationUpdatedUtc?: number;
emails?: string[];
employerUpdatedUtc?: number;
firstName?: string;
flagshipProfileUrl?: string;
followerCount?: number;
headline?: string;
honors?: any;
image?: string;
indexedUtc?: number;
languages?: string[];
lastName?: string;
linkedinUrl?: string;
name: string;
openToCards?: any;
pastEmployers?: {
businessEmailVerified?: boolean;
companyDomain?: string;
companyHeadcount?: number;
companyHeadcountRange?: string;
companyHeadquartersCountry?: string;
companyHqLocation?: string;
companyHqLocationAddressComponents?: string[];
companyId?: string;
companyIndustries?: string[];
companyIndustry?: string;
companyLinkedinId?: string;
companyLinkedinUrl?: string;
companyName?: string;
companyType?: string;
companyWebsite?: string;
description?: string;
employmentType?: string;
endUtc?: number;
functionCategory?: string;
linkedinId?: string;
location?: string;
positionId?: string;
primaryEmployer?: boolean;
seniority?: string;
startUtc?: number;
title?: string;
updatedUtc?: number;
yearsAtCompany?: number;
yearsAtCompanyRange?: string;
}[];
personId?: string;
profileLanguage?: string;
profilePictureUrl?: string;
profileUpdatedUtc?: number;
recentlyChangedJobs?: boolean;
recordUpdatedUtc?: number;
region?: string;
regionAddressComponents?: string[];
skills?: string[];
state?: string;
summary?: string;
twitterHandle?: string;
updatedUtc?: number;
yearsOfExperience?: number;
yearsOfExperienceRange?: string;
}[];
totalCount?: number;
} | null;
found: boolean;
reason?: "not_found";
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
Request, response, and price
Last verified 2026-09-20 · uptime and latency measured over 30dPOST /v1/run/people_search.crustdata_v3
curl -X POST https://api.getanyapi.com/v1/run/people_search.crustdata_v3 \
-H "Authorization: Bearer $ANYAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"companyDomain":"posthog.com","limit":1,"titleKeywords":"engineer"}'| Field | Type | Example value |
|---|---|---|
| Request body | ||
| companyDomain | string | "posthog.com"Company domain without a path. |
| titleKeywords | string | "engineer" |
| country | string | |
| fuzzyTitle | boolean | |
| limit | integer | 1 |
| profileKeywords | string | |
| requireVerifiedEmail | boolean | |
| seniority | string | |
| Response | ||
| data | object | |
| data.hasMore | boolean | True when more profiles exist beyond this page. |
| data.profiles | object[] | Matching professional profiles. |
| data.profiles[].allEmployers | object[] | Every employer on the profile, current and past. Duplicates the contents of currentEmployers and pastEmployers in one combined list. |
| data.profiles[].allEmployers[].businessEmailVerified | boolean | True when a business email at this employer has been verified. |
| data.profiles[].allEmployers[].companyDomain | string | Employer website domain. |
| data.profiles[].allEmployers[].companyHeadcount | integer | Latest observed employee count at the employer. |
| data.profiles[].allEmployers[].companyHeadcountRange | string | Employer headcount band, e.g. 51-200. |
| data.profiles[].allEmployers[].companyHeadquartersCountry | string | Country of the employer's headquarters. |
| data.profiles[].allEmployers[].companyHqLocation | string | Full headquarters location of the employer. |
| data.profiles[].allEmployers[].companyHqLocationAddressComponents | string[] | The employer's headquarters location split into address components (city, county, state, country). Restates companyHqLocation in parts. |
| data.profiles[].allEmployers[].companyId | string | Crustdata company identifier for this employer, accepted by the Company Enrichment endpoint. |
| data.profiles[].allEmployers[].companyIndustries | string[] | All LinkedIn industries listed for the employer. |
| data.profiles[].allEmployers[].companyIndustry | string | Primary LinkedIn industry of the employer. |
| data.profiles[].allEmployers[].companyLinkedinId | string | LinkedIn's own numeric identifier for the employer company page. |
| data.profiles[].allEmployers[].companyLinkedinUrl | string | Employer LinkedIn company page URL. |
| data.profiles[].allEmployers[].companyName | string | Employer name. |
| data.profiles[].allEmployers[].companyType | string | Employer company type, e.g. Privately Held or Public Company. |
| data.profiles[].allEmployers[].companyWebsite | string | Employer website URL. |
| data.profiles[].allEmployers[].description | string | Role description as written on the profile. |
| data.profiles[].allEmployers[].employmentType | string | Employment type, e.g. Full-time or Contract. |
| data.profiles[].allEmployers[].endUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. End of the role. |
| data.profiles[].allEmployers[].functionCategory | string | Job function category, e.g. Engineering or Sales. |
| data.profiles[].allEmployers[].linkedinId | string | LinkedIn's own numeric identifier for the employer page. Crustdata returns the same value as companyLinkedinId on this record. |
| data.profiles[].allEmployers[].location | string | Location of the role. |
| data.profiles[].allEmployers[].positionId | string | Crustdata identifier for this specific position record. |
| data.profiles[].allEmployers[].primaryEmployer | boolean | True when this is the profile's primary listed position. |
| data.profiles[].allEmployers[].seniority | string | Seniority level of the role, e.g. Entry Level or Owner / Partner. |
| data.profiles[].allEmployers[].startUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Start of the role. |
| data.profiles[].allEmployers[].title | string | Job title held at this employer. |
| data.profiles[].allEmployers[].updatedUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Last time this employment record was refreshed. |
| data.profiles[].allEmployers[].yearsAtCompany | integer | Whole years spent at this employer. |
| data.profiles[].allEmployers[].yearsAtCompanyRange | string | Human-readable tenure band, e.g. 3 to 5 years. |
| data.profiles[].certifications | object[] | Certifications listed on the profile. |
| data.profiles[].certifications[].certificationId | string | Crustdata identifier for this certification record. |
| data.profiles[].certifications[].expiresUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the certification expires. |
| data.profiles[].certifications[].issuedUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the certification was issued. |
| data.profiles[].certifications[].issuer | string | Organization that issued the certification. |
| data.profiles[].certifications[].issuerLinkedinId | string | LinkedIn's own numeric identifier for the issuing organization page. |
| data.profiles[].certifications[].name | string | Certification name. |
| data.profiles[].certifications[].url | string | Link to the certification. |
| data.profiles[].city | string | City of residence. |
| data.profiles[].connectionCount | integer | Number of LinkedIn connections. |
| data.profiles[].contactUpdatedUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Last time the contact section was refreshed. |
| data.profiles[].continent | string | Continent of residence. |
| data.profiles[].country | string | Country of residence. |
| data.profiles[].currentEmployers | object[] | Positions the person currently holds. |
| data.profiles[].currentEmployers[].businessEmailVerified | boolean | True when a business email at this employer has been verified. |
| data.profiles[].currentEmployers[].companyDomain | string | Employer website domain. |
| data.profiles[].currentEmployers[].companyHeadcount | integer | Latest observed employee count at the employer. |
| data.profiles[].currentEmployers[].companyHeadcountRange | string | Employer headcount band, e.g. 51-200. |
| data.profiles[].currentEmployers[].companyHeadquartersCountry | string | Country of the employer's headquarters. |
| data.profiles[].currentEmployers[].companyHqLocation | string | Full headquarters location of the employer. |
| data.profiles[].currentEmployers[].companyHqLocationAddressComponents | string[] | The employer's headquarters location split into address components (city, county, state, country). Restates companyHqLocation in parts. |
| data.profiles[].currentEmployers[].companyId | string | Crustdata company identifier for this employer, accepted by the Company Enrichment endpoint. |
| data.profiles[].currentEmployers[].companyIndustries | string[] | All LinkedIn industries listed for the employer. |
| data.profiles[].currentEmployers[].companyIndustry | string | Primary LinkedIn industry of the employer. |
| data.profiles[].currentEmployers[].companyLinkedinId | string | LinkedIn's own numeric identifier for the employer company page. |
| data.profiles[].currentEmployers[].companyLinkedinUrl | string | Employer LinkedIn company page URL. |
| data.profiles[].currentEmployers[].companyName | string | Employer name. |
| data.profiles[].currentEmployers[].companyType | string | Employer company type, e.g. Privately Held or Public Company. |
| data.profiles[].currentEmployers[].companyWebsite | string | Employer website URL. |
| data.profiles[].currentEmployers[].description | string | Role description as written on the profile. |
| data.profiles[].currentEmployers[].employmentType | string | Employment type, e.g. Full-time or Contract. |
| data.profiles[].currentEmployers[].functionCategory | string | Job function category, e.g. Engineering or Sales. |
| data.profiles[].currentEmployers[].linkedinId | string | LinkedIn's own numeric identifier for the employer page. Crustdata returns the same value as companyLinkedinId on this record. |
| data.profiles[].currentEmployers[].location | string | Location of the role. |
| data.profiles[].currentEmployers[].positionId | string | Crustdata identifier for this specific position record. |
| data.profiles[].currentEmployers[].primaryEmployer | boolean | True when this is the profile's primary listed position. |
| data.profiles[].currentEmployers[].seniority | string | Seniority level of the role, e.g. Entry Level or Owner / Partner. |
| data.profiles[].currentEmployers[].startUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Start of the role. |
| data.profiles[].currentEmployers[].title | string | Job title held at this employer. |
| data.profiles[].currentEmployers[].updatedUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Last time this employment record was refreshed. |
| data.profiles[].currentEmployers[].yearsAtCompany | integer | Whole years spent at this employer. |
| data.profiles[].currentEmployers[].yearsAtCompanyRange | string | Human-readable tenure band, e.g. 3 to 5 years. |
| data.profiles[].educationBackground | any | Education history exactly as Crustdata returns it. Untyped passthrough: the structure ships verbatim and is not validated, because it was empty for every profile we captured. |
| data.profiles[].educationUpdatedUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Last time the education section was refreshed. |
| data.profiles[].emails | string[] | Email addresses found for the person. |
| data.profiles[].employerUpdatedUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Last time the employment section was refreshed. |
| data.profiles[].firstName | string | Given name of the person. |
| data.profiles[].flagshipProfileUrl | string | LinkedIn flagship profile URL. Usually the same value as linkedinUrl; Crustdata returns both and they can differ when the profile has a vanity URL. |
| data.profiles[].followerCount | integer | Number of LinkedIn followers. |
| data.profiles[].headline | string | LinkedIn headline. |
| data.profiles[].honors | any | Honors and awards exactly as Crustdata returns them. Untyped passthrough: the structure ships verbatim and is not validated, because it was empty for every profile we captured. |
| data.profiles[].image | string | Profile picture URL. |
| data.profiles[].indexedUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When Crustdata last indexed the record for search, which is usually just after recordUpdatedUtc. |
| data.profiles[].languages | string[] | Languages listed on the profile. |
| data.profiles[].lastName | string | Family name of the person. |
| data.profiles[].linkedinUrl | string | LinkedIn profile URL. |
| data.profiles[].name | string | Full name of the person. |
| data.profiles[].openToCards | any | LinkedIn open-to cards (open to work, hiring, providing services) exactly as Crustdata returns them. Untyped passthrough: the structure ships verbatim and is not validated, because it was empty for every profile we captured. |
| data.profiles[].pastEmployers | object[] | Positions the person previously held. |
| data.profiles[].pastEmployers[].businessEmailVerified | boolean | True when a business email at this employer has been verified. |
| data.profiles[].pastEmployers[].companyDomain | string | Employer website domain. |
| data.profiles[].pastEmployers[].companyHeadcount | integer | Latest observed employee count at the employer. |
| data.profiles[].pastEmployers[].companyHeadcountRange | string | Employer headcount band, e.g. 51-200. |
| data.profiles[].pastEmployers[].companyHeadquartersCountry | string | Country of the employer's headquarters. |
| data.profiles[].pastEmployers[].companyHqLocation | string | Full headquarters location of the employer. |
| data.profiles[].pastEmployers[].companyHqLocationAddressComponents | string[] | The employer's headquarters location split into address components (city, county, state, country). Restates companyHqLocation in parts. |
| data.profiles[].pastEmployers[].companyId | string | Crustdata company identifier for this employer, accepted by the Company Enrichment endpoint. |
| data.profiles[].pastEmployers[].companyIndustries | string[] | All LinkedIn industries listed for the employer. |
| data.profiles[].pastEmployers[].companyIndustry | string | Primary LinkedIn industry of the employer. |
| data.profiles[].pastEmployers[].companyLinkedinId | string | LinkedIn's own numeric identifier for the employer company page. |
| data.profiles[].pastEmployers[].companyLinkedinUrl | string | Employer LinkedIn company page URL. |
| data.profiles[].pastEmployers[].companyName | string | Employer name. |
| data.profiles[].pastEmployers[].companyType | string | Employer company type, e.g. Privately Held or Public Company. |
| data.profiles[].pastEmployers[].companyWebsite | string | Employer website URL. |
| data.profiles[].pastEmployers[].description | string | Role description as written on the profile. |
| data.profiles[].pastEmployers[].employmentType | string | Employment type, e.g. Full-time or Contract. |
| data.profiles[].pastEmployers[].endUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. End of the role. |
| data.profiles[].pastEmployers[].functionCategory | string | Job function category, e.g. Engineering or Sales. |
| data.profiles[].pastEmployers[].linkedinId | string | LinkedIn's own numeric identifier for the employer page. Crustdata returns the same value as companyLinkedinId on this record. |
| data.profiles[].pastEmployers[].location | string | Location of the role. |
| data.profiles[].pastEmployers[].positionId | string | Crustdata identifier for this specific position record. |
| data.profiles[].pastEmployers[].primaryEmployer | boolean | True when this is the profile's primary listed position. |
| data.profiles[].pastEmployers[].seniority | string | Seniority level of the role, e.g. Entry Level or Owner / Partner. |
| data.profiles[].pastEmployers[].startUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Start of the role. |
| data.profiles[].pastEmployers[].title | string | Job title held at this employer. |
| data.profiles[].pastEmployers[].updatedUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Last time this employment record was refreshed. |
| data.profiles[].pastEmployers[].yearsAtCompany | integer | Whole years spent at this employer. |
| data.profiles[].pastEmployers[].yearsAtCompanyRange | string | Human-readable tenure band, e.g. 3 to 5 years. |
| data.profiles[].personId | string | Crustdata identifier for this person. |
| data.profiles[].profileLanguage | string | Language the profile itself is written in. |
| data.profiles[].profilePictureUrl | string | Profile photo URL as LinkedIn serves it, query string intact because LinkedIn signs these URLs. The image field carries Crustdata's cached copy of the same photo, which does not expire. |
| data.profiles[].profileUpdatedUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Last time the profile section was refreshed. |
| data.profiles[].recentlyChangedJobs | boolean | True when the person changed employer recently. |
| data.profiles[].recordUpdatedUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When Crustdata last wrote the record. Differs from updatedUtc, which reports the profile's own last-updated stamp. |
| data.profiles[].region | string | Region string as published on the profile. |
| data.profiles[].regionAddressComponents | string[] | The region string split into address components (city, county, state, country). Restates region in parts. |
| data.profiles[].skills | string[] | Skills listed on the profile. |
| data.profiles[].state | string | State or province of residence. |
| data.profiles[].summary | string | Profile summary or About section text. |
| data.profiles[].twitterHandle | string | X (Twitter) handle listed on the profile. |
| data.profiles[].updatedUtc | integer | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Last time any part of this profile record was refreshed. |
| data.profiles[].yearsOfExperience | integer | Total whole years of professional experience. |
| data.profiles[].yearsOfExperienceRange | string | Human-readable experience band, e.g. More than 10 years. |
| data.totalCount | integer | Total number of profiles matching the search. |
| found | boolean | False when the search matched no professional profiles. |
| reason | "not_found" | Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost. |
| Price | ||
| Price per request | USD | $0.144 |
| Price /1k req | USD | $144.00 |
FAQ
About the People Search Crustdata v3 API
The AnyAPI People Search Crustdata v3 API returns People Search crustdata v3 data as normalized JSON from one POST call to /v1/run/people_search.crustdata_v3. Find up to 100 professional profiles by company domain and title keywords. AnyAPI returns one normalized schema whichever source serves it. It costs from $144 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 100.0% of People Search crustdata v3 calls through AnyAPI succeeded, with a median response time of 0.8 seconds across 3 measured calls.
It costs from $144 per 1,000 requests, in US dollars with no subscription and no monthly minimum. You fund one USD wallet, each call draws it down, and a failed request costs $0.
Find up to 100 professional profiles by company domain and title keywords. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.
Over the last 30 days, 100.0% of People Search crustdata v3 calls through AnyAPI succeeded, with a median response time of 0.8 seconds across 3 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.