---
title: "Resolve names to filter-option ids"
method: POST
path: "/api/v1/talent/profiles/lookup_options"
tags: ["Talent::Profiles"]
---

# Resolve names to filter-option ids

`POST /api/v1/talent/profiles/lookup_options`

## Request

- Base URL: `https://api.flexiple.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.flexiple.com/api/v1/talent/profiles/lookup_options`
- Auth: HTTP bearer

Names in, ids out, for one filter field. The talent index stores ids and never names, so anything choosing filter values resolves through here first. Vector-backed fields (skills, designations, colleges, education_degrees, education_fields) return their top candidates; the rest match by text. Every candidate is returned ranked and the caller picks — a name with no candidates comes back with an empty list rather than a guess. Fields whose dropdown offers entity groups (a metro area, an institution family, a discipline) return the matching groups in their own "groups" list with their member count; a group id goes under "groups" in the leaf, never into the id list.

## Request body

- object
  - `field` 'skills' | 'designations' | 'colleges' | 'education_degrees' | 'education_fields' | 'current_location' | 'companies' | 'profession' | 'company_types' | 'company_business_models' | 'company_industries' | 'company_funding_stages', required
  - `queries` string[]: Names to resolve. Required unless you send near.
  - `near` object: current_location only, instead of queries: cities within km (at most 30, default 30) of a location id you already resolved, same state only, nearest first, each with distance_km. A stretch for a thin pool: add them only then, and tell the recruiter.
    - `location_id` integer, required

## Response `200`

Candidate options per query, in the order asked

- object
  - `data` object[], required
    - `query` string, required
    - `options` object[], required
      - `id` integer, required
      - `label` string, required
      - `distance_km` number: With near: how far from the place asked
    - `groups` object[], required: Entity groups the name matched: send a chosen id under "groups" in the leaf
      - `id` integer, required
      - `label` string, required
      - `member_count` integer, required
  - `meta` object, nullable

## Other responses

- `400`: Unknown filter field
- `401`: Authentication failed

---

[API](https://skmtc.dev/flexiple/apis/flexiple-platform-api-v1.md) - [All operations](https://skmtc.dev/flexiple/apis/flexiple-platform-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/flexiple/apis/flexiple-platform-api-v1/revisions/27e7987859f2?raw)
