List interviews
Changed onReturns 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.
Request
- Base URLhttps://api.recruitwithatlas.com
- AuthHTTP bearer
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Query parameters
Filter by person UUID — matches when the person is the candidate or appears in the interview participants
Filter by linked project UUID
Return interviews starting on or after this ISO 8601 timestamp (inclusive)
Return interviews starting on or before this ISO 8601 timestamp (inclusive)
Include soft-deleted interviews as tombstones (with a populated deletedAt). Defaults to false. Pair with updatedAfter to incrementally sync deletions.
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).
Filter by interview.type — general for general meetings, interview for candidate interviews
Sort order by createdAt (record creation time) — desc (default, newest first) or asc (oldest first). id is used as a stable tie-breaker.
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.
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.
Page number (1-indexed)
Items per page (max 100)
Alias for pageSize
Response
Paginated list of interviews
Changes
- warning
added the new
undefinedenum value to the////response property for the response status - warning
added the new
undefinedenum value to the//response property for the response status
- warning
- info
added the new optional
queryrequest parametercustomAttributeIds - info
added the new optional
queryrequest parameterincludeCustomAttributes - info
added the optional property
//to the response with the status
- info