---
title: "Search interviews"
method: POST
path: "/hiring/interviews/search"
tags: ["Interviews & Evaluations"]
---

# Search interviews

`POST /hiring/interviews/search`

Searches interview 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

- InterviewSearchRequest
  - `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` '/interview/id' | '/interview/applicationId' | '/interview/jobOpeningId' | '/interview/status', 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 interview records

- InterviewSearchResponse
  - `items` InterviewSearchResponseObject[], required — Array of interview objects
    - `/interview/id` integer — Unique identifier
    - `/interview/name` string — Interview name
    - `/interview/status` 'canceled' | 'no_show' | 'taken_place' | 'completed' | 'scheduled' | 'pending_input' | 'reschedule_requested' | 'candidate_rescheduled' | 'candidate_canceled' | 'pending_with_candidate' — Interview status. Possible values:<br /> <ul> <li><code>canceled</code> – Canceled</li> <li><code>no_show</code> – No show</li> <li><code>taken_place</code> – Taken place</li> <li><code>completed</code> – Completed</li> <li><code>scheduled</code> – Scheduled</li> <li><code>pending_input</code> – Pending input</li> <li><code>reschedule_requested</code> – Reschedule requested</li> <li><code>candidate_rescheduled</code> – Candidate rescheduled</li> <li><code>candidate_canceled</code> – Candidate canceled</li> <li><code>pending_with_candidate</code> – Pending with candidate</li> </ul>
    - `/interview/type` 'video' | 'on_site' | 'hybrid' — Interview type. Possible values:<br /> <ul> <li><code>video</code> – Video</li> <li><code>on_site</code> – On-site</li> <li><code>hybrid</code> – Hybrid</li> </ul>
    - `/interview/jobOpeningId` number — ID of the associated job opening.<br /><br />To fetch the job opening, use <a href="https://apidocs.hibob.com/reference/post_hiring-job-openings-search" target="_blank">Search job openings ↗</a>.
    - `/interview/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>.
    - `/interview/stageId` number — Pipeline stage ID
    - `/interview/siteId` number — Site ID.<br /><br />To fetch sites (IDs and names), use <a href="https://apidocs.hibob.com/reference/get_company-named-lists-listname" target="_blank">Get a specific company list by name ↗</a> with path parameter <code>listName</code> set to <code>site</code> (<code>GET /v1/company/named-lists/site</code>).
    - `/interview/eventId` number — Calendar event ID linked to this interview
    - `/interview/hasEvaluation` boolean — Whether the interview has an evaluation
    - `/interview/hasEvaluationScorecard` boolean — Whether the interview has an evaluation scorecard
    - `/interview/evaluationScorecardTemplateId` number — Evaluation scorecard template ID.<br /><br />To fetch the template, use <a href="https://apidocs.hibob.com/reference/post_hiring-evaluation-scorecard-templates-search" target="_blank">Search evaluation scorecard templates ↗</a>.
    - `/interview/interviewers` object[] — List of interviewers and their RSVP responses.
      - `id` string — Employee ID of the interviewer.<br /><br />To read this employee, use <a href="https://apidocs.hibob.com/reference/post_people-identifier" target="_blank">Read company employee fields by employee ID ↗</a>.
      - `responseType` 'yes' | 'no' | 'maybe' | 'no_reply' — Interviewer RSVP response. Possible values:<br /> <ul> <li><code>yes</code> – Accepted</li> <li><code>no</code> – Declined</li> <li><code>maybe</code> – Tentative</li> <li><code>no_reply</code> – No reply yet</li> </ul>
    - `/interview/startAt` string, date-time — Scheduled start time
    - `/interview/endAt` string, date-time — Scheduled end time
    - `/interview/locationInstruction` string — Location or meeting instructions
    - `/interview/conferencing` object — Conferencing meeting details. The provider type is in the separate <code>/interview/conferencingType</code> field.
      - `url` string — Meeting join URL
      - `meetingId` string — Meeting ID (provider-specific, may be null)
    - `/interview/conferencingType` 'zoom' | 'google_meet' | 'microsoft_teams' | 'goto_meeting' | 'webex' — Conferencing provider. Possible values:<br /> <ul> <li><code>zoom</code> – Zoom</li> <li><code>google_meet</code> – Google Meet</li> <li><code>microsoft_teams</code> – Microsoft Teams</li> <li><code>goto_meeting</code> – GoTo Meeting</li> <li><code>webex</code> – Webex</li> </ul>
    - `/interview/ownedBy` string — Employee ID of the interview owner<br /><br />To read this employee, use <a href="https://apidocs.hibob.com/reference/post_people-identifier" target="_blank">Read company employee fields by employee ID ↗</a>.
    - `/interview/isJoinable` boolean — Whether the interview can be joined
    - `/interview/canNudge` boolean — Whether a nudge can be sent
    - `/interview/availableSlots` number — Number of available scheduling slots
    - `/interview/alerts` object[] — Interview alert history. Each alert uses a polymorphic <code>type</code> discriminator. All alerts share <code>timestamp</code>, <code>isDismissed</code>, and <code>isArchived</code>; some types include additional fields.
      - `type` 'candidate_scheduled' | 'candidate_rescheduled' | 'candidate_canceled' | 'recruiter_canceled' | 'no_time_slots' | 'request_more_time_slots' | 'request_to_reschedule' | 'recruiter_nudged' | 'recruiter_changed_field' | 'recruiter_updated_time_slots' | 'recruiter_created_self_scheduled_interview' — Alert type discriminator
      - `timestamp` string, date-time — When the alert was triggered
      - `isDismissed` boolean — Whether the alert has been dismissed
      - `isArchived` boolean — Whether the alert has been archived
      - `note` string — Optional note (present on rescheduled, canceled, and request alerts)
      - `employeeFullName` string — Full name of the employee (present on recruiter_canceled alerts)
      - `fieldNames` string[] — Changed field names (present on recruiter_changed_field alerts)
    - `/interview/sessionType` 'in_person' | 'virtual' | 'phone_call' — Session type. Possible values:<br /> <ul> <li><code>in_person</code> – In person</li> <li><code>virtual</code> – Virtual</li> <li><code>phone_call</code> – Phone call</li> </ul>
    - `/interview/category` string — Interview category. Values are company-defined and managed as a named list (<code>interviewCategory</code>).
    - `/interview/title` string — Interview title
    - `/interview/availableStartAt` string, date-time — Available start time for self-scheduling
    - `/interview/availableEndAt` string, date-time — Available end time for self-scheduling
    - `/interview/slotDuration` number — Slot duration in minutes
    - `/interview/allowReschedule` boolean — Whether rescheduling is allowed
    - `/interview/isSelfScheduled` boolean — Whether the interview was self-scheduled
  - `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)
