---
title: "Get autocomplete suggestions for person search fields"
method: POST
path: "/person/search/autocomplete"
tags: ["Person APIs", "Autocomplete APIs"]
---

# Get autocomplete suggestions for person search fields

`POST /person/search/autocomplete`

Return ranked field-value suggestions for any supported person
search field. Use this endpoint to discover the exact indexed values that
`/person/search` filters expect — feed the suggestion `value` back into a search filter
verbatim to retrieve the matching profiles.

Pass a partial `query` string for type-ahead behaviour, or pass an empty `query` to
retrieve the most common values for the field by frequency. An optional `filters` scope
lets you compute autocomplete results against a subset of the dataset (for example, top
job titles among current Google employees in the United States).

The top-level `field` must be one of the supported autocomplete fields — an allowlisted
subset of the field names used by `/person/search`, not every field exposed in its
request and response schemas. Sending an unsupported field returns a 400 whose error
message lists every accepted field.

<Note>
    Default `rate-limit` is 45 requests per minute. Send an email to [gtm@crustdata.co](mailto:gtm@crustdata.co) to discuss higher limits if needed for your use case.
</Note>

## Headers

- `x-api-version` '2025-11-01', required

## Request body

- PersonAutocompleteRequest — Request body for autocomplete suggestions on person search fields.
  - `field` string, required — The dataset API field name to get suggestions for. Valid fields include: basic_profile.name, basic_profile.first_name, basic_profile.last_name, basic_profile.headline, basic_profile.languages, basic_profile.location, basic_profile.location.raw, basic_profile.location.full_location, basic_profile.location.city, basic_profile.location.state, basic_profile.location.country, basic_profile.location.continent, professional_network.location, professional_network.location.raw, professional_network.location.city, professional_network.location.state, professional_network.location.country, professional_network.location.continent, professional_network.open_to_cards, skills.professional_network_skills, experience.employment_details.current.name, experience.employment_details.current.title, experience.employment_details.current.seniority_level, experience.employment_details.current.function_category, experience.employment_details.current.company_industries, experience.employment_details.current.company_type, experience.employment_details.current.company_hq_location, experience.employment_details.current.company_website_domain, experience.employment_details.current.employment_type, experience.employment_details.past.name, experience.employment_details.past.title, experience.employment_details.past.seniority_level, experience.employment_details.past.function_category, experience.employment_details.past.company_type, experience.employment_details.past.company_hq_location, experience.employment_details.past.company_website_domain, experience.employment_details.past.employment_type, experience.employment_details.employment_type, education.schools.school, education.schools.degree, education.schools.field_of_study, certifications.name, certifications.issuing_organization, honors.title, open_to_cards, employment_type
  - `query` string, required — The search query text (can be empty to get top values by frequency)
  - `limit` integer — Maximum number of suggestions to return
  - `filters` union — Optional filters to narrow down suggestions. Filter field names use the same dataset API field names.
    - AutocompleteFilterCondition — A single filter condition to narrow down autocomplete suggestions.
      - `field` string, required — The dataset API field name to filter on
      - `type` '=' | '!=' | '<' | '=<' | '>' | '=>' | 'in' | 'not_in' | 'contains', required
      - `value` union, required — The filter value or list of values
        - string
        - number
        - integer
        - boolean
        - union[]
          - union
            - string
            - number
            - integer
    - AutocompleteFilterConditionGroup — A group of autocomplete filter conditions combined with and/or logic.
      - `op` 'and' | 'or', required
      - `conditions` union[], required
        - union
          - AutocompleteFilterCondition — A single filter condition to narrow down autocomplete suggestions.
            - `field` string, required — The dataset API field name to filter on
            - `type` '=' | '!=' | '<' | '=<' | '>' | '=>' | 'in' | 'not_in' | 'contains', required
            - `value` union, required — The filter value or list of values
              - …
          - AutocompleteFilterConditionGroup — recursive

## Response `200`

Ranked autocomplete suggestions for the requested person search field.

- PersonAutocompleteResponse — Response with autocomplete suggestions for a person search field.
  - `suggestions` PersonAutocompleteSuggestion[], required
    - `value` string, required — The suggested field value

## Other responses

- `400` — Invalid request — usually because the `field` is not one of the supported autocomplete fields, or because the request body is malformed. The error `message` lists every accepted field.
- `401` — Unauthorized — the `Authorization` header is missing, malformed, or contains an invalid API key.
- `500` — Internal server error — retry the request after a short delay.

---

[API](https://skmtc.dev/crustdata/apis/batch-api.md) · [All operations](https://skmtc.dev/crustdata/apis/batch-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/crustdata/batch-api/revisions/581689e66ae7/schema)
