Spark Hire Interview Questions API

Questions within an interview and reusable question sets.

OpenAPI Specification

spark-hire-interview-questions-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Spark Hire Account Interview Questions API
  description: 'The Spark Hire API embeds video interviewing and talent assessment into an applicant tracking system or custom hiring application. It is a RESTful API with JSON responses served under https://api.sparkhire.com/v1.0. It manages jobs, one-way and live video interviews, interview questions and reusable question sets, company users (evaluators) and their integration API keys, candidate share links, and webhook subscriptions for interview and job lifecycle events.


    Authentication uses HTTP Basic: the username is your API key and the password is ignored. API keys are tied to an individual user and respect that user''s permission level. API access is not self-serve - it must be enabled on your account by Spark Hire - but the API reference is fully public. Timestamps are RFC3339. Rate limit is 400 requests per minute; exceeding it returns 429 with an X-Rate-Limit-Try-Again-Seconds header.


    Endpoint paths and behavior below are transcribed from the public Spark Hire API reference at https://docs.sparkhire.com/. Request and response schemas are honestly modeled from the documented resources; exercising them live requires API access enabled by Spark Hire.'
  version: '1.0'
  contact:
    name: Spark Hire
    url: https://www.sparkhire.com
servers:
- url: https://api.sparkhire.com/v1.0
  description: Spark Hire API
security:
- basicAuth: []
tags:
- name: Interview Questions
  description: Questions within an interview and reusable question sets.
paths:
  /interviews/{uuid}/questions:
    parameters:
    - $ref: '#/components/parameters/Uuid'
    get:
      operationId: listInterviewQuestions
      tags:
      - Interview Questions
      summary: List questions for an interview
      responses:
        '200':
          description: A list of questions.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Question'
    post:
      operationId: createInterviewQuestion
      tags:
      - Interview Questions
      summary: Add a question to an interview
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuestionInput'
      responses:
        '201':
          description: The created question.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Question'
  /interviews/{uuid}/questions/{questionUuid}:
    parameters:
    - $ref: '#/components/parameters/Uuid'
    - name: questionUuid
      in: path
      required: true
      description: The UUID of the question.
      schema:
        type: string
        format: uuid
    get:
      operationId: getInterviewQuestion
      tags:
      - Interview Questions
      summary: Get a question
      responses:
        '200':
          description: A question.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Question'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateInterviewQuestion
      tags:
      - Interview Questions
      summary: Update a question
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuestionInput'
      responses:
        '200':
          description: The updated question.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Question'
    delete:
      operationId: deleteInterviewQuestion
      tags:
      - Interview Questions
      summary: Delete a question
      responses:
        '204':
          description: The question was deleted.
  /question_sets:
    get:
      operationId: listQuestionSets
      tags:
      - Interview Questions
      summary: List question sets
      parameters:
      - $ref: '#/components/parameters/Range'
      - $ref: '#/components/parameters/OrderBy'
      responses:
        '200':
          description: A list of question sets.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/QuestionSet'
    post:
      operationId: createQuestionSet
      tags:
      - Interview Questions
      summary: Create a question set
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuestionSetInput'
      responses:
        '201':
          description: The created question set.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionSet'
  /question_sets/{uuid}:
    parameters:
    - $ref: '#/components/parameters/Uuid'
    get:
      operationId: getQuestionSet
      tags:
      - Interview Questions
      summary: Get a question set
      responses:
        '200':
          description: A question set.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionSet'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateQuestionSet
      tags:
      - Interview Questions
      summary: Update a question set
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuestionSetInput'
      responses:
        '200':
          description: The updated question set.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionSet'
    delete:
      operationId: deleteQuestionSet
      tags:
      - Interview Questions
      summary: Delete a question set
      responses:
        '204':
          description: The question set was deleted.
components:
  parameters:
    Uuid:
      name: uuid
      in: path
      required: true
      description: The UUID of the resource.
      schema:
        type: string
        format: uuid
    Range:
      name: range
      in: query
      required: false
      description: Pagination range, e.g. 1-20 or 10-30.
      schema:
        type: string
        example: 1-20
    OrderBy:
      name: orderby
      in: query
      required: false
      description: Sort order, e.g. title_asc or updated_desc.
      schema:
        type: string
        example: updated_desc
  schemas:
    Question:
      allOf:
      - $ref: '#/components/schemas/QuestionInput'
      - type: object
        properties:
          uuid:
            type: string
            format: uuid
    QuestionInput:
      type: object
      properties:
        text:
          type: string
          description: The question prompt shown to the candidate.
        type:
          type: string
          description: Answer format, e.g. video, text, or multiple_choice.
        think_time:
          type: integer
          description: Seconds the candidate has to prepare.
        response_time:
          type: integer
          description: Seconds allotted for the candidate's response.
        order:
          type: integer
    QuestionSetInput:
      type: object
      properties:
        title:
          type: string
        questions:
          type: array
          items:
            $ref: '#/components/schemas/QuestionInput'
    QuestionSet:
      allOf:
      - $ref: '#/components/schemas/QuestionSetInput'
      - type: object
        properties:
          uuid:
            type: string
            format: uuid
          created_at:
            type: string
            format: date-time
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
  responses:
    NotFound:
      description: The resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic authentication. The username is your Spark Hire API key; the password is ignored. Keys are scoped to a user and respect that user's permission level.