Replace
YOUR_API_KEY in each example with your actual API key. All
requests require the x-api-version: 2025-11-01 header.At a glance
Default
rate-limit is 45 requests per minute. Send an email to
gtm@crustdata.co to discuss higher limits if
needed for your use case.Examples
Most-common values, narrow with filters, multi-value, numeric
comparisons, Autocomplete → Search workflow.
Reference
Contract, operators, request parameters, autocomplete-enabled
fields, implementation tips, and errors.
When to use Autocomplete vs Search
Quick start: discover job title values
Type-ahead lookup on a single field. Pass the user’s partial input asquery and cap the dropdown size with limit.
value— the exact indexed value: the raw string stored againstfieldin Crustdata’s person index. Use it verbatim as a Person Search filter value — two distinct indexed values (for example"VP"and"vp") are different filter keys, and substituting one for the other will return different results.
query (or no values exist within the filters
scope), the response returns an empty array — not a 404:
No results
Examples
Worked recipes you can copy, paste, and adapt. Each example is a full working request. For operators, request parameters, autocomplete-enabled fields, implementation tips, and errors, see the Reference below.Get the most common values for a field
Get the most common values for a field
Pass an empty
query to retrieve the top values for the field by frequency.
Useful for seeding filter dropdowns or showing popular options.Empty-query autocomplete can occasionally
return blank string values when a field has many empty indexed records.
Filter those out in your UI if you do not want a blank option.
Get every value of a closed-enum field
Get every value of a closed-enum field
Some fields (for example, Feed any returned
open_to_cards and employment_type) have a
fixed, known value space. An empty query returns the full set in
declaration order — useful for populating a static dropdown or chip group
without an extra round-trip.- open_to_cards
- employment_type
open_to_cards is a closed enum of exactly three codes. The alias
professional_network.open_to_cards returns the same suggestions and is
the spelling used by the /person/search filter.value back into a professional_network.open_to_cards
filter on /person/search to find people who have surfaced that
open-to signal on their profile.Narrow suggestions with filters
Narrow suggestions with filters
Scope the autocomplete to a subset of the dataset with the optional
filters field. The suggestions are then computed against the filtered
population.filters accepts either a single AutocompleteFilterCondition or a nested
AutocompleteFilterConditionGroup combined with and/or logic.- Single condition
- Condition group (AND/OR)
- Multi-value (in / not_in)
- Numeric comparison
Use a single
AutocompleteFilterCondition to filter on one field — for
example, top “VP” titles among current Google employees.Full workflow: Autocomplete → Search → Enrich
Full workflow: Autocomplete → Search → Enrich
This is the canonical end-to-end Person API workflow. Autocomplete discovers
the exact title value the Search API expects, Search finds matching people,
and Enrich fills in the details.Extract: Take Extract: Take
Result: Full person profile with employment history, education, skills,
and more. See Person Enrich for the full
response shape.See Person Search for the full filter grammar.
Step 1: Discover valid title values
suggestions[0].value → "VP Sales". Use this exact
string in your Search filter.If empty: Try a broader query (for example, "VP" instead of
"VP Sales").Step 2: Search for matching people
social_handles.professional_network_identifier.profile_url →
"https://www.linkedin.com/in/janesmith". Pass the profile URL to Enrich.If empty: Broaden filters or verify values with an earlier autocomplete
call.Step 3: Enrich the top match
Reference
Reference material for Person Autocomplete: contract vs current behavior, supported filter operators, request parameters, autocomplete-enabled fields, implementation tips for UI builders, and errors. For walk-through examples, see the Examples above.Guaranteed contract vs current behavior
Use this table to separate the parts you can build against with confidence from the observed behavior that may evolve.Supported operators
Thetype field on every AutocompleteFilterCondition accepts the same
operators as Person Search filters.
This operator set applies to this autocomplete endpoint’s
filters
parameter only. POST /person/search uses a different set — it rejects
contains; use (.) (all-words), [.] (exact phrase), (!) (negation),
or has_all there. See the
Person Search operator reference.Request parameters
AutocompleteFilterCondition
AutocompleteFilterConditionGroup
Autocomplete-enabled fields
The top-levelfield in a Person Autocomplete request (the field whose
values you want suggested) must come from a fixed allowlist of
autocomplete-enabled dataset fields. Not every Person Search field is
autocomplete-enabled.
The filters.field is different: it can be any dataset field that
Person Search accepts as a filter, not only the
autocomplete allowlist. So you can filter autocomplete results on a broader
set of fields than you can autocomplete on directly.
The tables below are a documented subset of the autocomplete allowlist.
They cover the fields most useful for building filter dropdowns, but they
are not exhaustive. If a field you need is not listed, treat its support
as unknown until you verify it — the safest way to confirm is to call the
endpoint with that field and check whether you get a
400 error. See
Verify the live list below for the debug-only live
source.company_name vs name for employers (current behavior). For
autocomplete, use experience.employment_details.current.name — the
company_name variant is rejected in autocomplete scope. For
/person/search filters, both current.name and current.company_name are
accepted as aliases. In response payloads, the current employer appears
under the name key.Common supported fields
- Current employment
- Past employment
- Profile & location
- Education, skills & more
- Closed-enum fields
Verify the live list
Call the endpoint with a deliberately invalidfield. The 400 response
lists every currently accepted field in its error message:
Implementation tips for UI builders
Errors
Note: a
query that matches nothing is not an error — the endpoint
returns {"suggestions": []} with a 200 status. Only use 4xx/5xx handling
for actual request or server failures.
API reference summary
See the full API reference for
the complete OpenAPI schema.
What to do next
- Try more patterns — see Examples for most-common values, filtered suggestions, and the Autocomplete → Search workflow.
- Reference — see Reference for operators, request parameters, autocomplete-enabled fields, implementation tips, and errors.
- Search for people — use discovered values in Person Search.
- Enrich matches — use Person Enrich to get full profiles after you find people.

