Ashby Survey Request API

The Survey Request API from Ashby — 2 operation(s) for survey request.

OpenAPI Specification

ashby-survey-request-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: 1.0.0
  title: Ashby API Key Survey Request API
  description: The public API for accessing resources in your Ashby instance.
  contact:
    name: Ashby Support
    url: https://app.ashbyhq.com/support
    email: support@ashbyhq.com
servers:
- url: https://api.ashbyhq.com
security:
- BasicAuth: []
tags:
- name: Survey Request
paths:
  /surveyRequest.create:
    post:
      summary: surveyRequest.create
      description: "This endpoint generates a survey request and returns a survey URL. You can send this URL to a candidate to allow them to complete a survey. \n\n**Requires the [`candidatesWrite`](authentication#permissions-surveyrequestcreate) permission.**\n\n**Note that calling this endpoint will not automatically email the survey to the candidate.** It simply creates the request and gives you a URL to share with a candidate.\n"
      operationId: surveyRequestCreate
      tags:
      - Survey Request
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - candidateId
              - applicationId
              - surveyFormDefinitionId
              properties:
                candidateId:
                  allOf:
                  - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                  - description: The id of the candidate to create a survey request for.
                applicationId:
                  allOf:
                  - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                  - description: The id of the application to associate with the survey request.
                surveyFormDefinitionId:
                  allOf:
                  - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                  - description: "The ID of the survey form that the candidate will see when they visit the URL returned in the `surveyURL` property of the API response. \nSurvey forms IDs can be obtained using the `surveyFormDefinition.list` endpoint. \n"
      responses:
        '200':
          description: Responses for the surveyRequest.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:
                        type: object
                        properties:
                          id:
                            allOf:
                            - description: 'The id of the survey request

                                '
                            - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                          candidateId:
                            allOf:
                            - description: 'The id of the candidate the survey request is for

                                '
                            - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                          applicationId:
                            allOf:
                            - description: 'The id of the application associated with the survey request

                                '
                            - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                          surveyFormDefinitionId:
                            allOf:
                            - description: 'The id of the survey form the candidate will fill out when they take the survey

                                '
                            - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                          surveyUrl:
                            type: string
                            example: https://you.ashbyhq.com/ashby/survey/3f20b73e-abec-4d62-ba6f-04f2f985f7dd
                            description: 'The URL that the candidate can visit to take the survey.

                              '
                        required:
                        - id
                        - candidateId
                        - applicationId
                        - surveyFormDefinitionId
                        - surveyUrl
                    required:
                    - results
                - title: Error response
                  $ref: '#/paths/~1report.generate/post/responses/429/content/application~1json/schema'
  /surveyRequest.list:
    post:
      summary: surveyRequest.list
      description: 'Lists all survey requests.


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


        **Requires the [`candidatesRead`](authentication#permissions-surveyRequestList) permission.**

        '
      operationId: surveyRequestList
      tags:
      - Survey Request
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/paths/~1opening.list/post/requestBody/content/application~1json/schema'
              - type: object
                properties:
                  surveyType:
                    allOf:
                    - description: Returns only the survey requests of the given type. Currently, only `CandidateExperience` is supported.
                    - type: string
                    - enum:
                      - CandidateExperience
                  applicationId:
                    allOf:
                    - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                    - description: If provided, only returns the offers for the application with the supplied id
                  candidateId:
                    allOf:
                    - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                    - description: If provided, only returns the offers for the candidate with the supplied id
                required:
                - surveyType
      responses:
        '200':
          description: Responses for the surveyRequest.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: '#/paths/~1surveyRequest.create/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results'
                  required:
                  - results
                - $ref: '#/paths/~1report.generate/post/responses/429/content/application~1json/schema'
components:
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: "Use HTTP Basic Auth to authenticate with our API. You must send your API key with every request. \nPut your API key as the basic auth username and leave the password blank.\n"
    WebhookSignature:
      type: apiKey
      in: header
      name: Ashby-Signature
      description: '[Optional] If you provide a secret token when configuring your webhook, this will be used to create a digest of the JSON payload sent with each webhook request.

        The digest will be included in the request under the `Ashby-Signature` http header.


        It will look like this:

        `Ashby-Signature: sha256=f3124911d2956f10aa3a49c43a88bdf13bba846e94f0ae2bd7c034f90239bd04`


        The part before the = indicates the algorithm that was used to compute the hash digest.

        '