Skip to main content
Reference material for Person Search: the full list of filter operators, searchable fields with sortable flags, response fields, request parameters, preview mode, and error responses. For walk-through examples, see Person Search and Filter recipes.

Filter operator reference

OperatorMeaningExample use
=Exact matchbasic_profile.name = “David Hsu”
!=Not equalExclude a specific country
> / <Greater/less thanNumeric comparisons
inValue is in listexperience.employment_details.company_name in [“Retool”, “OpenAI”]
not_inValue is not in listExclude titles like “Intern”
(.)Regex/contains matchTitle contains “VP|Director”
geo_distanceWithin radius of locationPeople near San Francisco

Searchable fields

  • Some returned fields use a different filter path. For example, the returned basic_profile.current_title is searched with experience.employment_details.current.title.
  • Contact availability flags such as contact.has_business_email are response-only convenience fields. For search filters, use experience.employment_details.current.business_email_verified, experience.employment_details.past.business_email_verified, or experience.employment_details.business_email_verified.
  • social_handles.professional_network_identifier.profile_url is returned in search results but is rejected as a search filter. Use Person Enrich for direct profile URL lookups.
  • Some searchable fields, such as certifications.* and honors.title, may not appear in the response summary below.
FieldTypeSortableDescription
crustdata_person_idintegerYesCrustdata person ID
metadata.updated_atdatetimeYesLast profile update timestamp
basic_profile.namestringYesFull name
basic_profile.first_namestringNoFirst name
basic_profile.last_namestringNoLast name
basic_profile.headlinestringNoProfile headline
basic_profile.summarystringNoProfile summary / about
basic_profile.languagesstring[]NoSpoken languages
basic_profile.locationstringYesLocation summary
basic_profile.location.full_locationstringYesFull location string
basic_profile.location.citystringYesCity
basic_profile.location.statestringYesState / region
basic_profile.location.countrystringYesCountry
basic_profile.location.continentstringNoContinent
professional_network.location.rawstringNoRaw location string from profile
professional_network.connectionsintegerYesConnection count
professional_network.open_to_cardsstring[]NoOpen-to signals (e.g., "open_to_work")
professional_network.metadata.last_scraped_sourcestringNoLast profile refresh source
skills.professional_network_skillsstring[]NoListed skills
experience.employment_details.company_namestringNoCompany name across all roles
experience.employment_details.titlestringNoJob title across all roles
experience.employment_details.descriptionstringNoRole description across all roles
experience.employment_details.seniority_levelstringNoSeniority level across all roles
experience.employment_details.function_categorystringNoFunction category across all roles
experience.employment_details.start_datedateYesRole start date across all roles
experience.employment_details.end_datedateNoRole end date across all roles
experience.employment_details.locationstringNoRole location across all roles
experience.employment_details.company_idintegerYesCompany ID across all roles
experience.employment_details.current.company_namestringNoCurrent company name
experience.employment_details.current.titlestringNoCurrent job title
experience.employment_details.current.seniority_levelstringNoCurrent seniority level
experience.employment_details.current.function_categorystringNoCurrent function category
experience.employment_details.current.start_datedateNoCurrent role start date
experience.employment_details.current.namestringNoCurrent role name
experience.employment_details.current.years_at_company_rawnumberNoYears at current company
experience.employment_details.past.company_namestringNoPast company name
experience.employment_details.past.titlestringNoPast job title
experience.employment_details.past.seniority_levelstringNoPast seniority level
experience.employment_details.past.function_categorystringNoPast function category
experience.employment_details.past.start_datedateNoPast role start date
experience.employment_details.past.namestringNoPast role name
experience.employment_details.past.years_at_company_rawnumberNoYears at past company
experience.employment_details.company_website_domainstringNoEmployer website domain
experience.employment_details.company_headcount_latestintegerNoEmployer latest headcount
experience.employment_details.company_headcount_rangestringNoEmployer headcount range
experience.employment_details.company_industriesstring[]NoEmployer industries
experience.employment_details.company_professional_network_industrystringNoEmployer primary industry label
experience.employment_details.company_typestringNoEmployer company type
experience.employment_details.company_headquarters_countrystringNoEmployer HQ country
experience.employment_details.company_hq_locationstringNoEmployer HQ location string
experience.employment_details.business_email_verifiedbooleanNoVerified business email across all roles
experience.employment_details.current.business_email_verifiedbooleanNoVerified business email on current role
experience.employment_details.past.business_email_verifiedbooleanNoVerified business email on past role
education.schools.schoolstringNoSchool name
education.schools.degreestringNoDegree
education.schools.field_of_studystringNoField of study
certifications.namestringNoCertification name
certifications.issuing_organizationstringNoCertification issuer
certifications.issue_datedateNoCertification issue date
certifications.expiration_datedateNoCertification expiration date
honors.titlestringNoHonor or award title
recently_changed_jobsbooleanNoTrue if the profile recently changed jobs
years_of_experience_rawnumberNoTotal years of experience

Response fields

Each profile in the response can include these sections, depending on fields. This table summarizes returned sections only. It is not a complete filter reference.
SectionKey fieldsDescription
basic_profilename, headline, current_title, location, summaryIdentity and location
experienceemployment_details.current, employment_details.pastFull work history
educationschoolsEducation background
skillsprofessional_network_skillsListed skills
contacthas_business_email, has_personal_email, has_phone_numberContact availability flags
social_handlesprofessional_network_identifier.profile_url, dev_platform_identifier.profile_url, twitter_identifier.slugAvailable profile handles
professional_networkconnections, profile_picture_permalinkNetwork metadata

Request parameter reference

ParameterTypeRequiredDefaultDescription
filtersobjectYesFilter condition or condition group. See operators above.
fieldsstring[]NoAllDot-path fields to return (e.g., ["basic_profile.name", "experience.employment_details.current.title"]).
sortsarrayNo[]Sort specifications as an array of { field, order } objects. Use asc or desc for order. Required for stable pagination.
limitintegerNo20Max profiles per page (1–1000).
countintegerNoAlias for limit.
cursorstringNonullPagination cursor from previous response’s next_cursor.
post_processingobjectNoexclude_profiles (URL array) and exclude_names (name array).
previewbooleanNofalsePremium feature — see Preview mode.
return_querybooleanNofalseDebug flag accepted by the API. Current platform behavior: the response does not include a top-level query field.

Preview mode

Preview mode

Preview search is a premium feature. Book a demo to enable it for your account.
If preview access is enabled for your account, use preview: true to get lightweight results before running a full search. Preview responses keep the same top-level shape but may return fewer profile fields.
Current platform behavior: if preview is not enabled for your account, the API returns 400 invalid_request with the message error: PersonDB preview feature is not available for your account.
curl --request POST \
  --url https://api.crustdata.com/person/search \
  --header 'authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --header 'x-api-version: 2025-11-01' \
  --data '{
    "filters": {
      "field": "experience.employment_details.title",
      "type": "(.)",
      "value": "Founder"
    },
    "preview": true,
    "limit": 2
  }'

Errors

StatusMeaning
400Invalid request — unsupported field, wrong operator, malformed filters, or preview not enabled for your account.
401Invalid or missing API key.
403Permission denied or insufficient credits.
500Internal server error. Retry with exponential backoff.

No results

When no people match the filters, the API returns 200 with an empty profiles array:
{
    "profiles": [],
    "next_cursor": null,
    "total_count": 0
}
Action: Broaden filters or check field values with Autocomplete.

API reference summary

DetailValue
EndpointPOST /person/search
AuthBearer token + x-api-version: 2025-11-01
Response{ "profiles": [...], "next_cursor": "...", "total_count": N }
PaginationCursor-based. Pass next_cursor as cursor. Stop when next_cursor is null.
Errors400, 401, 403, 500
See the full API reference for the complete OpenAPI schema.