Use this when you need to discover valid filter values before building search queries — for building filter dropdowns, validating user input, or exploring what values exist in the database.
The Person Autocomplete API returns field value suggestions with document counts, helping you construct accurate Person Search filters.
POST https://api.crustdata.com/person/search/autocomplete
Replace YOUR_API_KEY in each example with your actual API key. All requests require the x-api-version: 2025-11-01 header.
Discover job title values
curl --request POST \
--url https://api.crustdata.com/person/search/autocomplete \
--header 'authorization: Bearer YOUR_API_KEY' \
--header 'content-type: application/json' \
--header 'x-api-version: 2025-11-01' \
--data '{
"field": "experience.employment_details.current.title",
"query": "VP",
"limit": 5
}'
Each suggestion includes:
value — the exact field value you can use in a Search filter.
document_count — how many profiles match this value.
Get the most common values for a field
Pass an empty query to see top values by frequency:
curl --request POST \
--url https://api.crustdata.com/person/search/autocomplete \
--header 'authorization: Bearer YOUR_API_KEY' \
--header 'content-type: application/json' \
--header 'x-api-version: 2025-11-01' \
--data '{
"field": "experience.employment_details.current.title",
"query": "",
"limit": 5
}'
Narrow suggestions with filters
Scope autocomplete results using optional filters. Filter values are always strings:
curl --request POST \
--url https://api.crustdata.com/person/search/autocomplete \
--header 'authorization: Bearer YOUR_API_KEY' \
--header 'content-type: application/json' \
--header 'x-api-version: 2025-11-01' \
--data '{
"field": "experience.employment_details.current.title",
"query": "VP",
"limit": 5,
"filters": {
"field": "experience.employment_details.current.company_name",
"type": "=",
"value": "Google"
}
}'
Autocomplete filter values are always strings per the API contract, even for numeric comparisons.
Common fields to autocomplete
| Field | What it discovers |
|---|
experience.employment_details.current.title | Current job titles |
experience.employment_details.current.company_name | Current employer names |
basic_profile.headline | LinkedIn headlines |
basic_profile.location.country | Countries |
experience.employment_details.current.seniority_level | Seniority levels |
education.schools.school | Schools/universities |
skills.professional_network_skills | LinkedIn skills |
Workflow: Autocomplete → Search
- Use Autocomplete to discover the exact value:
"VP of Sales" (72,230 matches).
- Use that value in a Person Search filter:
{
"filters": {
"field": "experience.employment_details.current.title",
"type": "=",
"value": "VP of Sales"
}
}
This ensures your search uses exact indexed values instead of guessing.
Request parameters
| Parameter | Type | Required | Description |
|---|
field | string | Yes | The field to get suggestions for. Must be a valid person search field. |
query | string | Yes | Search text (empty string for top values by frequency). |
limit | integer | No | Max suggestions to return (default: 20, max: 100). |
filters | object | No | Optional filter to narrow suggestions. |
Errors
| Status | Meaning |
|---|
400 | Invalid field name or malformed request. |
401 | Invalid or missing API key. |
500 | Internal server error. |
{
"error": {
"type": "invalid_request",
"message": "Field 'invalid_field' is not valid for autocomplete. Available fields are: basic_profile.headline, experience.employment_details.current.title, ...",
"metadata": []
}
}
API reference summary
| Detail | Value |
|---|
| Endpoint | POST /person/search/autocomplete |
| Auth | Bearer token + x-api-version: 2025-11-01 |
| Request | field, query, optional limit and filters. |
| Response | { "suggestions": [{ "value", "document_count" }] } |
| Errors | 400, 401, 500 |
What to do next