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

Pricing

One price, in dollars

Providers
Crustdata3 served100.00% uptime665ms p50$144.00/1k reqflat

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())
Open in
Get a free key
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 30d
POST /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"}'
FieldTypeExample value
Request body
companyDomainstring"posthog.com"Company domain without a path.
titleKeywordsstring"engineer"
countrystring
fuzzyTitleboolean
limitinteger1
profileKeywordsstring
requireVerifiedEmailboolean
senioritystring
Response
dataobject
data.hasMorebooleanTrue when more profiles exist beyond this page.
data.profilesobject[]Matching professional profiles.
data.profiles[].allEmployersobject[]Every employer on the profile, current and past. Duplicates the contents of currentEmployers and pastEmployers in one combined list.
data.profiles[].allEmployers[].businessEmailVerifiedbooleanTrue when a business email at this employer has been verified.
data.profiles[].allEmployers[].companyDomainstringEmployer website domain.
data.profiles[].allEmployers[].companyHeadcountintegerLatest observed employee count at the employer.
data.profiles[].allEmployers[].companyHeadcountRangestringEmployer headcount band, e.g. 51-200.
data.profiles[].allEmployers[].companyHeadquartersCountrystringCountry of the employer's headquarters.
data.profiles[].allEmployers[].companyHqLocationstringFull headquarters location of the employer.
data.profiles[].allEmployers[].companyHqLocationAddressComponentsstring[]The employer's headquarters location split into address components (city, county, state, country). Restates companyHqLocation in parts.
data.profiles[].allEmployers[].companyIdstringCrustdata company identifier for this employer, accepted by the Company Enrichment endpoint.
data.profiles[].allEmployers[].companyIndustriesstring[]All LinkedIn industries listed for the employer.
data.profiles[].allEmployers[].companyIndustrystringPrimary LinkedIn industry of the employer.
data.profiles[].allEmployers[].companyLinkedinIdstringLinkedIn's own numeric identifier for the employer company page.
data.profiles[].allEmployers[].companyLinkedinUrlstringEmployer LinkedIn company page URL.
data.profiles[].allEmployers[].companyNamestringEmployer name.
data.profiles[].allEmployers[].companyTypestringEmployer company type, e.g. Privately Held or Public Company.
data.profiles[].allEmployers[].companyWebsitestringEmployer website URL.
data.profiles[].allEmployers[].descriptionstringRole description as written on the profile.
data.profiles[].allEmployers[].employmentTypestringEmployment type, e.g. Full-time or Contract.
data.profiles[].allEmployers[].endUtcintegerUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. End of the role.
data.profiles[].allEmployers[].functionCategorystringJob function category, e.g. Engineering or Sales.
data.profiles[].allEmployers[].linkedinIdstringLinkedIn's own numeric identifier for the employer page. Crustdata returns the same value as companyLinkedinId on this record.
data.profiles[].allEmployers[].locationstringLocation of the role.
data.profiles[].allEmployers[].positionIdstringCrustdata identifier for this specific position record.
data.profiles[].allEmployers[].primaryEmployerbooleanTrue when this is the profile's primary listed position.
data.profiles[].allEmployers[].senioritystringSeniority level of the role, e.g. Entry Level or Owner / Partner.
data.profiles[].allEmployers[].startUtcintegerUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Start of the role.
data.profiles[].allEmployers[].titlestringJob title held at this employer.
data.profiles[].allEmployers[].updatedUtcintegerUTC 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[].yearsAtCompanyintegerWhole years spent at this employer.
data.profiles[].allEmployers[].yearsAtCompanyRangestringHuman-readable tenure band, e.g. 3 to 5 years.
data.profiles[].certificationsobject[]Certifications listed on the profile.
data.profiles[].certifications[].certificationIdstringCrustdata identifier for this certification record.
data.profiles[].certifications[].expiresUtcintegerUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the certification expires.
data.profiles[].certifications[].issuedUtcintegerUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. When the certification was issued.
data.profiles[].certifications[].issuerstringOrganization that issued the certification.
data.profiles[].certifications[].issuerLinkedinIdstringLinkedIn's own numeric identifier for the issuing organization page.
data.profiles[].certifications[].namestringCertification name.
data.profiles[].certifications[].urlstringLink to the certification.
data.profiles[].citystringCity of residence.
data.profiles[].connectionCountintegerNumber of LinkedIn connections.
data.profiles[].contactUpdatedUtcintegerUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Last time the contact section was refreshed.
data.profiles[].continentstringContinent of residence.
data.profiles[].countrystringCountry of residence.
data.profiles[].currentEmployersobject[]Positions the person currently holds.
data.profiles[].currentEmployers[].businessEmailVerifiedbooleanTrue when a business email at this employer has been verified.
data.profiles[].currentEmployers[].companyDomainstringEmployer website domain.
data.profiles[].currentEmployers[].companyHeadcountintegerLatest observed employee count at the employer.
data.profiles[].currentEmployers[].companyHeadcountRangestringEmployer headcount band, e.g. 51-200.
data.profiles[].currentEmployers[].companyHeadquartersCountrystringCountry of the employer's headquarters.
data.profiles[].currentEmployers[].companyHqLocationstringFull headquarters location of the employer.
data.profiles[].currentEmployers[].companyHqLocationAddressComponentsstring[]The employer's headquarters location split into address components (city, county, state, country). Restates companyHqLocation in parts.
data.profiles[].currentEmployers[].companyIdstringCrustdata company identifier for this employer, accepted by the Company Enrichment endpoint.
data.profiles[].currentEmployers[].companyIndustriesstring[]All LinkedIn industries listed for the employer.
data.profiles[].currentEmployers[].companyIndustrystringPrimary LinkedIn industry of the employer.
data.profiles[].currentEmployers[].companyLinkedinIdstringLinkedIn's own numeric identifier for the employer company page.
data.profiles[].currentEmployers[].companyLinkedinUrlstringEmployer LinkedIn company page URL.
data.profiles[].currentEmployers[].companyNamestringEmployer name.
data.profiles[].currentEmployers[].companyTypestringEmployer company type, e.g. Privately Held or Public Company.
data.profiles[].currentEmployers[].companyWebsitestringEmployer website URL.
data.profiles[].currentEmployers[].descriptionstringRole description as written on the profile.
data.profiles[].currentEmployers[].employmentTypestringEmployment type, e.g. Full-time or Contract.
data.profiles[].currentEmployers[].functionCategorystringJob function category, e.g. Engineering or Sales.
data.profiles[].currentEmployers[].linkedinIdstringLinkedIn's own numeric identifier for the employer page. Crustdata returns the same value as companyLinkedinId on this record.
data.profiles[].currentEmployers[].locationstringLocation of the role.
data.profiles[].currentEmployers[].positionIdstringCrustdata identifier for this specific position record.
data.profiles[].currentEmployers[].primaryEmployerbooleanTrue when this is the profile's primary listed position.
data.profiles[].currentEmployers[].senioritystringSeniority level of the role, e.g. Entry Level or Owner / Partner.
data.profiles[].currentEmployers[].startUtcintegerUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Start of the role.
data.profiles[].currentEmployers[].titlestringJob title held at this employer.
data.profiles[].currentEmployers[].updatedUtcintegerUTC 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[].yearsAtCompanyintegerWhole years spent at this employer.
data.profiles[].currentEmployers[].yearsAtCompanyRangestringHuman-readable tenure band, e.g. 3 to 5 years.
data.profiles[].educationBackgroundanyEducation 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[].educationUpdatedUtcintegerUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Last time the education section was refreshed.
data.profiles[].emailsstring[]Email addresses found for the person.
data.profiles[].employerUpdatedUtcintegerUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Last time the employment section was refreshed.
data.profiles[].firstNamestringGiven name of the person.
data.profiles[].flagshipProfileUrlstringLinkedIn 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[].followerCountintegerNumber of LinkedIn followers.
data.profiles[].headlinestringLinkedIn headline.
data.profiles[].honorsanyHonors 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[].imagestringProfile picture URL.
data.profiles[].indexedUtcintegerUTC 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[].languagesstring[]Languages listed on the profile.
data.profiles[].lastNamestringFamily name of the person.
data.profiles[].linkedinUrlstringLinkedIn profile URL.
data.profiles[].namestringFull name of the person.
data.profiles[].openToCardsanyLinkedIn 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[].pastEmployersobject[]Positions the person previously held.
data.profiles[].pastEmployers[].businessEmailVerifiedbooleanTrue when a business email at this employer has been verified.
data.profiles[].pastEmployers[].companyDomainstringEmployer website domain.
data.profiles[].pastEmployers[].companyHeadcountintegerLatest observed employee count at the employer.
data.profiles[].pastEmployers[].companyHeadcountRangestringEmployer headcount band, e.g. 51-200.
data.profiles[].pastEmployers[].companyHeadquartersCountrystringCountry of the employer's headquarters.
data.profiles[].pastEmployers[].companyHqLocationstringFull headquarters location of the employer.
data.profiles[].pastEmployers[].companyHqLocationAddressComponentsstring[]The employer's headquarters location split into address components (city, county, state, country). Restates companyHqLocation in parts.
data.profiles[].pastEmployers[].companyIdstringCrustdata company identifier for this employer, accepted by the Company Enrichment endpoint.
data.profiles[].pastEmployers[].companyIndustriesstring[]All LinkedIn industries listed for the employer.
data.profiles[].pastEmployers[].companyIndustrystringPrimary LinkedIn industry of the employer.
data.profiles[].pastEmployers[].companyLinkedinIdstringLinkedIn's own numeric identifier for the employer company page.
data.profiles[].pastEmployers[].companyLinkedinUrlstringEmployer LinkedIn company page URL.
data.profiles[].pastEmployers[].companyNamestringEmployer name.
data.profiles[].pastEmployers[].companyTypestringEmployer company type, e.g. Privately Held or Public Company.
data.profiles[].pastEmployers[].companyWebsitestringEmployer website URL.
data.profiles[].pastEmployers[].descriptionstringRole description as written on the profile.
data.profiles[].pastEmployers[].employmentTypestringEmployment type, e.g. Full-time or Contract.
data.profiles[].pastEmployers[].endUtcintegerUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. End of the role.
data.profiles[].pastEmployers[].functionCategorystringJob function category, e.g. Engineering or Sales.
data.profiles[].pastEmployers[].linkedinIdstringLinkedIn's own numeric identifier for the employer page. Crustdata returns the same value as companyLinkedinId on this record.
data.profiles[].pastEmployers[].locationstringLocation of the role.
data.profiles[].pastEmployers[].positionIdstringCrustdata identifier for this specific position record.
data.profiles[].pastEmployers[].primaryEmployerbooleanTrue when this is the profile's primary listed position.
data.profiles[].pastEmployers[].senioritystringSeniority level of the role, e.g. Entry Level or Owner / Partner.
data.profiles[].pastEmployers[].startUtcintegerUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Start of the role.
data.profiles[].pastEmployers[].titlestringJob title held at this employer.
data.profiles[].pastEmployers[].updatedUtcintegerUTC 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[].yearsAtCompanyintegerWhole years spent at this employer.
data.profiles[].pastEmployers[].yearsAtCompanyRangestringHuman-readable tenure band, e.g. 3 to 5 years.
data.profiles[].personIdstringCrustdata identifier for this person.
data.profiles[].profileLanguagestringLanguage the profile itself is written in.
data.profiles[].profilePictureUrlstringProfile 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[].profileUpdatedUtcintegerUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Last time the profile section was refreshed.
data.profiles[].recentlyChangedJobsbooleanTrue when the person changed employer recently.
data.profiles[].recordUpdatedUtcintegerUTC 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[].regionstringRegion string as published on the profile.
data.profiles[].regionAddressComponentsstring[]The region string split into address components (city, county, state, country). Restates region in parts.
data.profiles[].skillsstring[]Skills listed on the profile.
data.profiles[].statestringState or province of residence.
data.profiles[].summarystringProfile summary or About section text.
data.profiles[].twitterHandlestringX (Twitter) handle listed on the profile.
data.profiles[].updatedUtcintegerUTC 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[].yearsOfExperienceintegerTotal whole years of professional experience.
data.profiles[].yearsOfExperienceRangestringHuman-readable experience band, e.g. More than 10 years.
data.totalCountintegerTotal number of profiles matching the search.
foundbooleanFalse 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 requestUSD$0.144
Price /1k reqUSD$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.