---
title: "Filter Search Capabilities"
method: GET
path: "/search/filter-capabilities"
tags: ["Search"]
---

# Filter Search Capabilities

`GET /search/filter-capabilities`

Get the fields, operators, and limits supported by filter search.

## Query parameters

- `mode` string — Search mode: 'company' or 'people'.
- `refresh` boolean — Force a mapping refresh instead of using cached capabilities.

## Headers

- `x-api-key` string, nullable

## Response `200`

Successful Response

- FilterSearchCapabilitiesResponse — Response describing supported filter-search DSL capabilities.
  - `mode` 'people' | 'company' — Search mode these capabilities apply to.
  - `index_name` string, required — Public dataset identifier for company direct-filter queries.
  - `fields` FilterFieldCapability[], required — Unified per-field capabilities sorted alphabetically.
    - `field` string, required — Canonical field path.
    - `field_type` string, required — Source ES mapping type (e.g. text, keyword, long).
    - `nested_path` string, nullable — Nested path, if any.
    - `queryable` boolean, required — Allowed in query clauses.
    - `sortable` boolean, required — Allowed in sort clauses.
    - `rangeable` boolean, required — Supports range operators (gt/gte/lt/lte).
    - `sort_field` string, nullable — Sort target when it differs from field (e.g. text fields sort via .keyword).
    - `aggregation_field` string, nullable — Field used for terms aggregation when supports_top_values is true.
    - `value_type` string, required — Aggregation target type (keyword, long, etc.).
    - `supports_top_values` boolean, required — Supports top-values aggregation.
    - `supports_exact_filter_snippet` boolean, required — API can return deterministic exact filter snippets.
    - `related_fields` string[] — Other paths representing the same concept (e.g. flat counterpart of nested).
    - `preferred_for_exact_match` boolean — Recommended for simple exact-match queries over its nested counterpart.
  - `nested_paths` string[], required — Allowed nested.path values for nested query clauses.
  - `limits` FilterSearchLimits, required — Constraint values for guarded DSL validation.
    - `max_query_depth` integer, required — Maximum recursive query depth.
    - `max_clause_count` integer, required — Maximum total query clauses.
    - `max_terms_per_clause` integer, required — Maximum values in terms/bool lists.
    - `max_sort_clauses` integer, required — Maximum sort clauses.
    - `max_string_length` integer, required — Maximum string length in query values.
  - `cache_ttl_seconds` integer, required — Server cache TTL for mapping-derived capabilities.
  - `generated_at_epoch_ms` integer, required — Epoch timestamp (ms) when these capabilities were derived.
  - `mapping_hash` string, nullable — Hash of mapping metadata used to derive this capability snapshot.
  - `simple_query_operators` string[], nullable — Supported MongoDB-style operators for simple_filters input.

## Other responses

- `400` — Request was rejected by the route's validation rules.
- `401` — Missing or invalid API key.
- `402` — Insufficient credits or no active subscription for this organization.
- `403` — Forwarded user_id does not belong to caller's organization.
- `404` — Search task or export file not found.
- `409` — Export workflow already running for this search.
- `422` — Request body failed validation.
- `429` — Rate limit exceeded.
- `500` — Unexpected server error. Retry with backoff.
- `502` — Upstream search backend returned an error.
- `503` — Search backend is not configured or unavailable.
- `504` — Upstream search backend timed out.

---

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