---
title: "Search candidate languages"
method: POST
path: "/hiring/candidate-languages/search"
tags: ["Candidates"]
---

# Search candidate languages

`POST /hiring/candidate-languages/search`

Searches candidate language records using filters and returns paginated results.

<ul>
  <li>Use the <code>fields</code> parameter to specify which fields to return</li>
  <li>Use the <code>filters</code> parameter to narrow down results</li>
  <li>Use cursor-based pagination with <code>limit</code> and <code>cursor</code></li>
</ul>

<p><b>Testing notes</b>:</p>
<ul>
  <li>Use the testing widget's <b>Try It!</b> option to test this endpoint.</li>
  <li>Use the <b>Examples > Request Example</b> option to see how to initiate body parameters.</li>
</ul>

## Request body

- CandidateLanguageSearchRequest
  - `fields` string[], required — Required list of field IDs to include in the response (1–50 fields). The property must be provided; if omitted or not provided, the API returns an error. You must explicitly choose which fields to fetch. For all available field IDs, see the <code>fields</code> object defined on each item in the 200 response schema.
  - `filters` object[]
    - `fieldId` '/candidateLanguage/id' | '/candidateLanguage/candidateId' | '/candidateLanguage/applicationId', required — Field ID to filter by
    - `operator` 'equals' | 'notEqual' | 'greaterThan' | 'lessThan', required — Filter operator. Use 'equals'/'notEqual' for exact matching. Use 'greaterThan'/'lessThan' for date range filtering.
    - `values` union[], required
      - union
        - string
        - number
  - `limit` integer
  - `cursor` string
  - `includeArchived` boolean

## Response `200`

Successfully retrieved candidate language records

- CandidateLanguageSearchResponse
  - `items` CandidateLanguageSearchResponseObject[], required — Array of candidate language objects
    - `/candidateLanguage/id` integer — Unique identifier
    - `/candidateLanguage/language` string — Language name
    - `/candidateLanguage/proficiency` string — Proficiency level
    - `/candidateLanguage/candidateId` number — ID of the associated candidate.<br /><br />To fetch the candidate, use <a href="https://apidocs.hibob.com/reference/post_hiring-candidates-search" target="_blank">Search candidates ↗</a>.
    - `/candidateLanguage/applicationId` number — ID of the associated application.<br /><br />To fetch the application, use <a href="https://apidocs.hibob.com/reference/post_hiring-applications-search" target="_blank">Search applications ↗</a>.
  - `response_metadata` object, required
    - `next_cursor` string, nullable — Cursor for next page. Null if no more results.

## Other responses

- `400` — Bad Request - Invalid parameters
- `401` — Unauthorized - Invalid or missing credentials
- `403` — Forbidden - IP not allowed or feature not enabled
- `429` — Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.net/hibob/apis/employee-data-api.md) · [All operations](https://skmtc.net/hibob/apis/employee-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hibob/employee-data-api/revisions/0781ebbdda91/schema)
