Interviews

List interviews

Changed on

Returns a paginated list of interviews (and general meetings) filtered by person, project, status bucket, type, and start date range. Each item includes the linked candidate (for interview-type rows), organizer, participants, and quick existence flags for transcript, manual notes, and AI notes.

Incremental sync: startDate / endDate bound the scheduled time and are not a sync cursor. Use createdAfter (with createdBefore) for the initial historical backfill, then poll with updatedAfter: persist the highest updatedAt you receive and pass it back on the next poll. updatedAfter matches a change to either the interview or its underlying meeting, and the reported updatedAt is the later of the two. Re-send the cursor with a small overlap (e.g. a minute earlier than the highest updatedAt seen) and de-duplicate by id, so a row written mid-page is never skipped. Add includeDeleted=true to receive soft-deleted interviews as tombstones (deletedAt populated) — combined with updatedAfter this reliably surfaces deletions, because a soft-delete bumps updatedAt.

Custom attributes: pass includeCustomAttributes=true to get each row’s customAttributes (e.g. the meeting tags logged in the UI) inline, in the detail endpoint’s shape, instead of fetching each record by id. customAttributeIds limits which attributes come back. The payload grows with each row’s filled attributes, so keep the default pageSize (25) when syncing with it on. Setting, changing or removing an attribute value moves the row’s updatedAt, so updatedAfter polling picks the change up.

get/api/v1/interviews

Request

Query parameters

personIdstring uuid

Filter by person UUID — matches when the person is the candidate or appears in the interview participants

Example:550e8400-e29b-41d4-a716-446655440000
projectIdstring uuid

Filter by linked project UUID

Example:660e8400-e29b-41d4-a716-446655440001
startDatestring date-time

Return interviews starting on or after this ISO 8601 timestamp (inclusive)

Example:2026-01-01T00:00:00Z
endDatestring date-time

Return interviews starting on or before this ISO 8601 timestamp (inclusive)

Example:2026-02-01T00:00:00Z
string
OR
string date-time
string
OR
string date-time
string
OR
string date-time
string
OR
string date-time
includeDeleted'true' | 'false'

Include soft-deleted interviews as tombstones (with a populated deletedAt). Defaults to false. Pair with updatedAfter to incrementally sync deletions.

Example:false
status'scheduled' | 'finished'

scheduled matches upcoming / in-progress statuses (draft, created, scheduled, coming, waiting_to_join, live, scheduling). finished matches terminal statuses (completed, transcribed, failed, canceled, no_answer).

Example:scheduled
type'general' | 'interview'

Filter by interview.type — general for general meetings, interview for candidate interviews

Example:interview
order'asc' | 'desc'

Sort order by createdAt (record creation time) — desc (default, newest first) or asc (oldest first). id is used as a stable tie-breaker.

Example:desc
includeCustomAttributes'true' | 'false'

When true, each row includes customAttributes — its custom attribute values (e.g. the meeting tags logged in the UI) in the same shape as GET /api/v1/interviews/{id}. Defaults to false, which leaves the field out. See Custom attributes in the endpoint description for payload size and sync notes.

Example:true
customAttributeIdsstring

Comma-separated custom attribute UUIDs (from GET /api/v1/meetings/custom-attributes). Limits customAttributes on each row to these attributes — it does not filter which rows are returned. Requires includeCustomAttributes=true; sending it without is rejected with 422.

Example:550e8400-e29b-41d4-a716-446655440000
pageinteger

Page number (1-indexed)

Example:1
pageSizeinteger

Items per page (max 100)

Example:25
perPageinteger

Alias for pageSize

Response

Paginated list of interviews

status'ok' required

Changes

    • warning

      added the new undefined enum value to the //// response property for the response status

    • warning

      added the new undefined enum value to the // response property for the response status

    • info

      added the new optional query request parameter customAttributeIds

    • info

      added the new optional query request parameter includeCustomAttributes

    • info

      added the optional property // to the response with the status