Skip to main content
Use this when you need to discover exact indexed values before building a Person Search query — for filter dropdowns, input validation, dataset exploration, or guided query builders. The Person Autocomplete API returns ranked field-value suggestions so you can feed the result straight into a Person Search filter without guessing at valid values.
This endpoint returns field values, not person profiles. It also has no pagination or cursor — the limit parameter (max 100) is the only way to control result size. To fetch person records, use Person Search or Person Enrich instead.
Autocomplete does not take a filters scope. Suggestions always come from the whole dataset. If you send a filters key, the API ignores it and returns the same suggestions as a request without it.
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, closed-enum fields, Autocomplete → Search workflow.

Reference

Contract, request parameters, autocomplete-enabled fields, implementation tips, and errors.


Quick start: discover job title values

Type-ahead lookup on a single field. Pass the user’s partial input as query and cap the dropdown size with limit.
Each suggestion includes:
  • value — the exact indexed value: the raw string stored against field in 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.
Suggestions are returned ranked by internal frequency across the dataset. The ranking signal itself is not returned in the response. When no values match the query, 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 request parameters, autocomplete-enabled fields, implementation tips, and errors, see the Reference below.
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.
Pass a partial interest label to get the stored spellings. Feed a returned value into a research_profiles.research_interests filter on Person Search with = or in. The flat name research_interests returns the same suggestions.
The research_profiles group on Person Search is enabled per account. Autocomplete lists these values for any key that can call the endpoint, but the search filter returns 403 with Access denied to fields: research_profiles without the grant.
Some fields (for example, 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 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.
Feed any returned 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.
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.

Step 1: Discover valid title values

Extract: Take 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

Extract: Take 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

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.

Reference

Reference material for Person Autocomplete: contract vs current behavior, 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.

Request parameters

Autocomplete-enabled fields

The top-level field 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 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

Verify the live list

Call the endpoint with a deliberately invalid field. The 400 response lists every currently accepted field in its error message:

Implementation tips for UI builders

  • Debounce autocomplete calls to avoid one request per keystroke — 150–300 ms on input idle works well for typeahead UIs.
  • Drop blank values. If "" is returned as the top suggestion, remove it before rendering the dropdown.
  • Handle casing variants carefully. Suggestions like "VP" and "vp" are distinct indexed values. Only merge them into a single UI option if you intentionally want normalized grouping — and if you do, preserve the underlying raw values and expand them in the eventual Person Search filter using in, for example {"type": "in", "value": ["VP", "vp"]}. If the UI needs exact-value selection, keep them as separate options.
  • Cap limit. Most dropdowns need 5–15 options. Lower limit reduces payload size and gives faster responses.
  • Cache top-values lookups. Empty-query calls that seed filter dropdowns rarely change — cache them client-side or at the edge.

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, closed-enum fields, and the Autocomplete → Search workflow.
  • Reference: see Reference for 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.