Ashby Interview Schedule API

The Interview Schedule API from Ashby — 4 operation(s) for interview schedule.

Documentation

📖
Documentation
https://developers.ashbyhq.com/reference/applicationlist
📖
Documentation
https://developers.ashbyhq.com/reference/candidatelist
📖
Documentation
https://developers.ashbyhq.com/reference/joblist
📖
Documentation
https://developers.ashbyhq.com/reference/jobpostinglist
📖
Documentation
https://developers.ashbyhq.com/reference/interviewschedulelist
📖
Documentation
https://developers.ashbyhq.com/reference/offerlist
📖
Documentation
https://developers.ashbyhq.com/reference/approvaldefinitionupdate
📖
Documentation
https://developers.ashbyhq.com/reference/surveyrequestlist
📖
Documentation
https://developers.ashbyhq.com/reference/assessmentstart
📖
Documentation
https://developers.ashbyhq.com/docs/creating-an-assessments-integration
📖
Documentation
https://developers.ashbyhq.com/reference/customfieldcreate
📖
Documentation
https://developers.ashbyhq.com/reference/userlist
📖
Documentation
https://developers.ashbyhq.com/reference/fileinfo
📖
Documentation
https://developers.ashbyhq.com/reference/reportgenerate
📖
Documentation
https://developers.ashbyhq.com/docs/setting-up-webhooks
📖
Documentation
https://developers.ashbyhq.com/docs/authenticating-webhooks
📖
Documentation
https://developers.ashbyhq.com/docs/common-webhook-payload-data
📖
Documentation
https://developers.ashbyhq.com/docs/related-webhooks
📖
Documentation
https://developers.ashbyhq.com/docs/webhook-retries
📖
Documentation
https://developers.ashbyhq.com/reference/apikeyinfo

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

ashby-hq-interview-schedule-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: 1.0.0
  title: Ashby API Key Interview Schedule API
  description: Complete public API for accessing resources in your Ashby instance. Includes applications, candidates, jobs, interviews, offers, surveys, custom fields, organization metadata, files, reports, approvals, and webhooks.
  contact:
    name: Ashby Support
    url: https://app.ashbyhq.com/support
    email: support@ashbyhq.com
servers:
- url: https://api.ashbyhq.com
security:
- BasicAuth: []
tags:
- name: Interview Schedule
paths:
  /interviewSchedule.cancel:
    post:
      summary: interviewSchedule.cancel
      operationId: interviewScheduleCancel
      description: 'Cancel an interview schedule by id


        **Requires the [`interviewsWrite`](authentication#permissions-interviewschedulecancel) permission.**

        '
      tags:
      - Interview Schedule
      requestBody:
        content:
          application/json:
            schema:
              properties:
                id:
                  allOf:
                  - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                  - description: The id of the interview schedule to cancel
                allowReschedule:
                  type: boolean
                  description: Whether or not this interview schedule can be rescheduled.
                  default: false
              required:
              - id
              example:
                id: 3ae2b801-19f6-41ef-ad28-214bd731948f
      responses:
        '200':
          description: Responses from the interviewSchedule.cancel endpoint
          content:
            application/json:
              schema:
                oneOf:
                - title: Success response
                  allOf:
                  - $ref: '#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0'
                  - type: object
                    properties:
                      results:
                        $ref: '#/webhooks/interviewScheduleCreate/post/requestBody/content/application~1json/schema/properties/data/properties/interviewSchedule'
                    required:
                    - results
                - $ref: '#/paths/~1report.generate/post/responses/429/content/application~1json/schema'
  /interviewSchedule.create:
    post:
      summary: interviewSchedule.create
      operationId: interviewScheduleCreate
      description: 'Create a scheduled interview in Ashby


        **Requires the [`interviewsWrite`](authentication#permissions-interviewschedulecreate) permission.**

        '
      tags:
      - Interview Schedule
      requestBody:
        content:
          application/json:
            schema:
              properties:
                applicationId:
                  allOf:
                  - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                  - description: The id of the application for this interview schedule
                interviewEvents:
                  type: array
                  description: The list of events that make up this interview schedule
                  items:
                    type: object
                    required:
                    - startTime
                    - endTime
                    - interviewers
                    properties:
                      startTime:
                        type: string
                        description: The start time of this event
                        example: '2023-01-30T15:00:00.000Z'
                      endTime:
                        type: string
                        description: The end time of this event
                        example: '2023-01-30T16:00:00.000Z'
                      interviewers:
                        type: array
                        description: The interviewers for this event
                        items:
                          type: object
                          required:
                          - email
                          properties:
                            email:
                              type: string
                              description: The email address of the user in Ashby
                              example: test@ashbyhq.com
                            feedbackRequired:
                              type: boolean
                              description: Whether this interviewer is required to provide feedback
                      extraData:
                        $ref: '#/paths/~1location.create/post/requestBody/content/application~1json/schema/properties/extraData'
                      interviewId:
                        allOf:
                        - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                        - description: The id of the interview used in this event. If no value is provided, the organization's default interview will be used.
                        - example: 46648e83-f28f-43c4-a2a0-58e0599cff41
              required:
              - applicationId
              - interviewEvents
      responses:
        '200':
          description: Responses from the interviewSchedule.create endpoint
          content:
            application/json:
              schema:
                oneOf:
                - title: Success response
                  allOf:
                  - $ref: '#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0'
                  - type: object
                    properties:
                      results:
                        $ref: '#/webhooks/interviewScheduleCreate/post/requestBody/content/application~1json/schema/properties/data/properties/interviewSchedule'
                    required:
                    - results
                - $ref: '#/paths/~1report.generate/post/responses/429/content/application~1json/schema'
  /interviewSchedule.list:
    post:
      summary: interviewSchedule.list
      operationId: interviewScheduleList
      description: 'Gets all interview schedules in the organization.


        See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples.


        **Requires the [`interviewsRead`](authentication#permissions-interviewschedulelist) permission.**

        '
      tags:
      - Interview Schedule
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/paths/~1opening.list/post/requestBody/content/application~1json/schema'
              - type: object
                properties:
                  applicationId:
                    allOf:
                    - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                    - description: The id of the application, for which to fetch interview schedules
                  interviewStageId:
                    allOf:
                    - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                    - description: The id of the interview stage, for which to fetch interview schedules
      responses:
        '200':
          description: Responses from the interviewSchedule.list endpoint
          content:
            application/json:
              schema:
                oneOf:
                - allOf:
                  - $ref: '#/paths/~1job.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0'
                  - properties:
                      results:
                        type: array
                        items:
                          $ref: '#/webhooks/interviewScheduleCreate/post/requestBody/content/application~1json/schema/properties/data/properties/interviewSchedule'
                  required:
                  - results
                - $ref: '#/paths/~1report.generate/post/responses/429/content/application~1json/schema'
  /interviewSchedule.update:
    post:
      summary: interviewSchedule.update
      operationId: interviewScheduleUpdate
      description: "Update an interview schedule. This endpoint allows you to add, cancel, or update interview events associated with an interview schedule.\n\n**Requires the [`interviewsWrite`](authentication#permissions-interviewscheduleupdate) permission.**\n\nIn order to update an interview event on a schedule, the event's `interviewEventId` must be included when sending your request. \n`interviewEventId`s are included in the response of the `interviewSchedule.create` endpoint.\n"
      tags:
      - Interview Schedule
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                interviewScheduleId:
                  allOf:
                  - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                  - description: 'The id of the interview schedule to update.

                      Only interview schedules created using the API key making the request can be updated.

                      '
                interviewEvent:
                  description: 'An event on the interview schedule to create or update.

                    To update an event, the event''s `interviewEventId` must be included in the request.

                    '
                  oneOf:
                  - $ref: '#/paths/~1interviewSchedule.create/post/requestBody/content/application~1json/schema/properties/interviewEvents/items'
                  - type: array
                    items:
                      $ref: '#/paths/~1interviewSchedule.create/post/requestBody/content/application~1json/schema/properties/interviewEvents/items'
                  properties:
                    interviewEventId:
                      allOf:
                      - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                      - description: 'The id of an interview event to update.

                          '
                interviewEventIdToCancel:
                  description: 'The ids of interview events to cancel.

                    '
                  oneOf:
                  - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                  - type: array
                    items:
                      $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                allowFeedbackDeletion:
                  type: boolean
                  default: false
                  description: By default, we do not allow interview events with submitted feedback to be canceled because canceling an event causes its associated feedback to be deleted. If you want to allow events with submitted feedback to be canceled, this flag can be passed in and set to `true`. In this case, events with feedback will be canceled, and any associated feedback will be deleted.
              oneOf:
              - required:
                - interviewScheduleId
                - interviewEvent
              - required:
                - interviewScheduleId
                - interviewEventIdToCancel
      responses:
        '200':
          description: Responses from the interviewSchedule.update endpoint
          content:
            application/json:
              schema:
                oneOf:
                - title: Success response
                  allOf:
                  - $ref: '#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0'
                  - type: object
                    properties:
                      results:
                        $ref: '#/webhooks/interviewScheduleCreate/post/requestBody/content/application~1json/schema/properties/data/properties/interviewSchedule'
                    required:
                    - results
                - $ref: '#/paths/~1report.generate/post/responses/429/content/application~1json/schema'
components:
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: HTTP Basic Auth. Send your Ashby API key as the username and leave the password blank.
    WebhookSignature:
      type: apiKey
      in: header
      name: Ashby-Signature
      description: HMAC-SHA256 signature of the webhook payload, used to verify webhook authenticity.