v1

latestOpenAPI 3.1.02026-07-261770816.7 KB
Interviews

List interviews

Interviews are scheduled interview events on a candidate's application — each row pairs an application with a slot on the job's interview plan (the job_interview) and carries the start/end time, location, organizer, video conferencing link, and lifecycle status. Scope the list with parent=application|job|job_interview|organizer plus ids to pull interviews for one or more candidates, jobs, interview slots, or scheduling coordinators. Use the starts_at / ends_at filters for time-bounded interviews; use all_day_start_on / all_day_end_on for all-day events (e.g. take-home tests). Lookup by external calendar event id is supported via external_event_id.

get/v3/interviews

Query parameters

cursorstring

Cursor link for pagination from previous page response header. Do not use any other parameters when using this.

per_pageinteger

Number of results per page

idsinteger[]

Comma separated list

gtestring date-time
ltestring date-time
gtstring date-time
ltstring date-time
gtestring date-time
ltestring date-time
gtstring date-time
ltstring date-time
job_idsinteger[]

Return only interviews scheduled for applications on these job (hiring plan) ids.

application_idsinteger[]

Comma separated list

job_interview_idsinteger[]

Return only interviews scheduled against these job_interview ids. A job_interview is the stage's interview configuration (template) on an interview kit, not the scheduled interview itself — fetch ids via GET /v3/job_interviews.

organizer_idsinteger[]

Return only interviews organized by these Greenhouse user ids. The organizer is the calendar role responsible for scheduling the interview, not an interviewer on the panel.

fieldsstring[]

Comma separated list of fields to return

gtestring date-time
ltestring date-time
gtstring date-time
ltstring date-time

Filter by interview start time. Pass any combination of gte, lte, gt, lt as ISO-8601 date-times (e.g. starts_at[gte]=2026-01-01T00:00:00Z&starts_at[lte]=2026-02-01T00:00:00Z). Interviews with a null starts_at are excluded by this filter.

gtestring date-time
ltestring date-time
gtstring date-time
ltstring date-time

Filter by interview end time. Pass any combination of gte, lte, gt, lt as ISO-8601 date-times. Interviews with a null ends_at are excluded by this filter.

gtestring date
ltestring date
gtstring date
ltstring date

Filter all-day interviews by start date (YYYY-MM-DD). Accepts gte, lte, gt, lt. Only matches interviews whose underlying calendar event is all-day; use starts_at for time-bounded interviews.

gtestring date
ltestring date
gtstring date
ltstring date

Filter all-day interviews by end date (YYYY-MM-DD). Accepts gte, lte, gt, lt. Only matches interviews whose underlying calendar event is all-day.

external_event_idstring

Return the interview tied to this external calendar event id (e.g. a Google Calendar or Outlook event id). Useful for round-tripping from a calendar webhook back to the Greenhouse interview.

status'to_be_scheduled' | 'scheduled' | 'awaiting_feedback' | 'complete' | 'skipped' | 'collect_feedback' | 'to_be_sent' | 'sent' | 'received'

Filter by interview lifecycle status. scheduled is on the calendar; awaiting_feedback is past with scorecards outstanding; complete is past with all scorecards in; to_be_scheduled is the pre-schedule placeholder. Take-home test interviews use to_be_sent, sent, and received.

Response

Successful

idinteger
created_atstring date-time
updated_atstring date-time
job_idinteger

Id of the job this interview is on.

application_idinteger

Id of the application this interview is scheduled against. Use it to look up the candidate.

job_interview_idinteger

Id of the job interview slot on the job's interview plan that this interview fulfills. Distinct from this interview's own id.

starts_atstring date-time nullable

Interview start time, in ISO 8601. null for interviews that have not yet been scheduled (for example, assigned take-home tests or interviews awaiting candidate availability) and for all-day events — see all_day_start_on.

ends_atstring date-time nullable

Interview end time, in ISO 8601. null when starts_at is also null, and for all-day events — see all_day_end_on.

locationstring nullable

Free-form location string copied from the calendar event (a room name, an address, or a meeting URL when the customer puts it in the location field). Use video_conferencing_url for the link generated by Greenhouse's video integrations.

status'to_be_scheduled' | 'scheduled' | 'awaiting_feedback' | 'complete' | 'skipped' | 'collect_feedback' | 'to_be_sent' | 'sent' | 'received'

Lifecycle status of the interview. to_be_scheduled is the pre-schedule placeholder; scheduled is on the calendar; awaiting_feedback is past with scorecards outstanding; complete is past with all scorecards in; collect_feedback and skipped are alternative terminal states; to_be_sent, sent, and received are used for take-home tests sent through Greenhouse.

organizer_idinteger nullable

Id of the Greenhouse user who scheduled the interview (the organizer on the underlying calendar event). null for interviews not yet scheduled through a calendar integration.

scheduled_atstring date-time nullable

Timestamp the interview was first placed on a calendar through a Greenhouse calendaring integration (Google, Outlook, or Greenhouse Schedule), in ISO 8601. null for interviews that have never been scheduled via the calendar pipeline.

all_day_start_onstring date nullable

Start date of an all-day interview, in YYYY-MM-DD. Set instead of starts_at/ends_at when the underlying calendar event is an all-day event. null for time-bounded interviews.

all_day_end_onstring date nullable

End date of an all-day interview, in YYYY-MM-DD. Set instead of starts_at/ends_at when the underlying calendar event is an all-day event. null for time-bounded interviews.

external_event_idstring nullable

Id of the calendar event on the organizer's calendar (Google Calendar event id, Outlook event id, etc.). Use this to correlate an interview with the event on the external calendar. null for interviews not yet pushed to an external calendar.

video_conferencing_urlstring nullable

Join URL for the interview's video conference, auto-populated by Greenhouse's Zoom, Google Meet, or Microsoft Teams integrations when one is attached during scheduling. null when no video conferencing was added.

availability_received_atstring date-time nullable

Timestamp Greenhouse first recorded availability for this interview's stage on this application (used to compute time-to-schedule), in ISO 8601. null if availability has not been collected for the stage.