NAV Navbar

telointerview

  • API Documentation
  • Introduction
  • Authentication
  • Interviews
  • Applicants
  • Interview Invitations
  • Errors
  • API Documentation

    Introduction

    API Starting endpoint

    https://app.telointerview.com/api/v1/
    

    Welcome to the TeloInterview API Documentation. We offer an open API available to all our users to assist in integrating TeloInterview and Video Interviewin into their platforms and workflows. If you have any questions regarding our api please contact developer support via email at developers@telointerview.com.

    Authentication

    Getting your API key

    Add ?api_token=YOUR_TOKEN to the end of your HTTP request to Authenticate the request

    $.ajax({
        url: 'https://app.telointerview.com/api/v1/interviews?api_token=YOUR_TOKEN',
        type: 'GET'
    }).done(function(response) {
        console.log(response.data.interviews)
    });
    

    Once registering, simple go to your profile settings click the API tab from the menu on the left, type a token name like 'dev token' and click create.

    Api tab screenshot

    After clicking create, save the API key samewhere safe and you will be ready to use the TeloInterview API.

    Interviews

    Get All Interviews

    $.ajax({
        url: 'https://app.telointerview.com/api/v1/interviews?api_token=YOUR_TOKEN',
        type: 'GET'
    }).done(function(response) {
        console.log(response.data.interviews)
    });
    

    The above command returns JSON structured like this:

    {
       "interviews":[
          {
             "id":"d28d4daf-2f59-49f1-b02a-063c9121f1da",
             "team_id":"7795d81d-19f8-41f7-9a29-12ac46356dbd",
             "title":"Front End Engineer",
             "private_label":null,
             "days_to_complete":7,
             "introductoryPageOption":"upload-pdf",
             "introductoryPagePDF":"interview-intropdfrg7cde66cdb873-c84f-4ac2-ac22-8125f1457c1c.pdf",
             "introductoryPageEditorHTML":null,
             "introductoryPageManualHTML":null,
             "deleted_at":null,
             "created_at":"2018-02-03 12:39:29",
             "updated_at":"2018-02-03 12:52:13",
             "open_invite_code":"fe448ff5-59f7-492a-b495-8b962e37b42b",
             "askGender":0,
             "askLinkedIn":1,
             "askLocation":0,
             "introductoryPagePDFURL":"https:\/\/s3-ap-southeast-2.amazonaws.com\/telointerview\/teams\/7795d81d-19f8-41f7-9a29-12ac46356dbd\/IntroductoryPagePDFs\/interview-intropdfrg7cde66cdb873-c84f-4ac2-ac22-8125f1457c1c.pdf",
             "groups":[
                {
                   "id":"2bef2be6-fd22-4a3d-a12e-2497750fe749",
                   "name":"Software Engineer",
                   "team_id":"7795d81d-19f8-41f7-9a29-12ac46356dbd",
                   "deleted_at":null,
                   "created_at":"2018-02-03 12:42:37",
                   "updated_at":"2018-02-03 12:42:37",
                   "pivot":{
                      "interview_id":"d28d4daf-2f59-49f1-b02a-063c9121f1da",
                      "group_id":"2bef2be6-fd22-4a3d-a12e-2497750fe749"
                   }
                }
             ]
          },
          {
             "id":"dbed6b9f-fae2-420e-9c85-a895ac45c286",
             ... Continued Properties of next interview
          }
       ]
    }
    

    This endpoint retrieves all interviews.

    HTTP Request

    GET /interviews

    Output Notes

    Parameter Note
    groups These groups are used to group like-minded interviews of the Organization to sort them. It's not required and if the interview has not been added to a group it will simply return an empty array [].

    introductoryPageOption

    This sets up what will be present on the introductory page of the interview. It can be either "none","enter-html", "upload-pdf" or "write-editor". Enter html allows users or API users to set custom HTML to be included as the introduction page. Write-editor allows users to write in our in built HTML editor.
    days_to_complete This property is required and can be set to a maximum of 365 (1 year).
    Question Type Can be either "video", "text" or "upload"
    Video Question Video question types ask for the candidate to record a response. They require a reading_time of at least 5 seconds and a minimum time_limit_in_seconds of the recording of at least 10 seconds.
    Required The required parameter on upload and text questions if set to true requires an answer from the candidate and they will be unable to skip the question.

    Get a Specific Interview

    Replace {interview_id} with the interview id you would like to view. You can get a list of your interview id's using the endpoitn above.

    $.ajax({
        url: 'https://app.telointerview.com/api/v1/interviews/{interview_id}?api_token=YOUR_TOKEN',
        type: 'GET',
    }).done(function(response) {
        console.log(response.data.interview)
    });
    

    The above command returns JSON structured like this:

    {  
       "interview":{  
          "id":"d28d4daf-2f59-49f1-b02a-063c9121f1da",
          "team_id":"7795d81d-19f8-41f7-9a29-12ac46356dbd",
          "title":"Front End Engineer",
          "private_label":null,
          "days_to_complete":7,
          "introductoryPageOption":"upload-pdf",
          "introductoryPagePDF":"interview-intropdfrg7cde66cdb873-c84f-4ac2-ac22-8125f1457c1c.pdf",
          "introductoryPagePDFURL":"https://s3-ap-southeast-2.amazonaws.com/interview-intro.pdf",
          "introductoryPageEditorHTML":null,
          "introductoryPageManualHTML":null,
          "deleted_at":null,
          "created_at":"2018-02-03 12:39:29",
          "updated_at":"2018-02-03 12:52:13",
          "open_invite_code":"fe448ff5-59f7-492a-b495-8b962e37b42b",
          "askGender":0,
          "askLinkedIn":1,
          "askLocation":0,
          "questions":[  
             {  
                "id":"6f120982-3f8b-4c6a-84da-4633a1821d9b",
                "interview_id":"d28d4daf-2f59-49f1-b02a-063c9121f1da",
                "order_position":1,
                "question":"Please tell us about yourself",
                "question_subtext":"What are your interests both personally and professionally?",
                "time_limit_in_seconds":150,
                "deleted_at":null,
                "reading_time":30,
                "type":"video"
             },
             {  
                "id":"ddc448d6-a61e-467e-98ee-13e1dee0865f",
                "interview_id":"d28d4daf-2f59-49f1-b02a-063c9121f1da",
                "required":1,
                "order_position":2,
                "question":"Please list your past work experiences",
                "question_subtext":null,
                "word_limit":null,
                "deleted_at":null,
                "type":"text"
             },
             {  
                "id":"809efa92-8519-45b1-b645-e83f9cf5f67e",
                "interview_id":"d28d4daf-2f59-49f1-b02a-063c9121f1da",
                "required":1,
                "order_position":3,
                "question":"Please upload your resume",
                "question_subtext":null,
                "deleted_at":null,
                "type":"upload"
             }
          ],
          "groups":[  
             {  
                "id":"2bef2be6-fd22-4a3d-a12e-2497750fe749",
                "name":"Software Engineer",
                "team_id":"7795d81d-19f8-41f7-9a29-12ac46356dbd",
                "deleted_at":null,
                "created_at":"2018-02-03 12:42:37",
                "updated_at":"2018-02-03 12:42:37",
                "pivot":{  
                   "interview_id":"d28d4daf-2f59-49f1-b02a-063c9121f1da",
                   "group_id":"2bef2be6-fd22-4a3d-a12e-2497750fe749"
                }
             }
          ]
       }
    }
    

    This endpoint retrieves a specific interview.

    HTTP Request

    GET /interviews/{interview_id}

    Output Notes

    Parameter Description
    Questions Note this also includes the interview's questions.

    introductoryPageOption

    This sets up what will be present on the introductory page of the interview. It can be either "none","enter-html", "upload-pdf" or "write-editor". Enter html allows users or API users to set custom HTML to be included as the introduction page. Write-editor allows users to write in our in built HTML editor.
    days_to_complete This property is required and can be set to a maximum of 365 (1 year).
    Question Type Can be either "video", "text" or "upload"
    Video Question Video question types ask for the candidate to record a response. They require a reading_time of at least 5 seconds and a minimum time_limit_in_seconds of the recording of at least 10 seconds.
    Required The required parameter on upload and text questions if set to true requires an answer from the candidate and they will be unable to skip the question.

    Create an Interview

    var newInterview = {  
       "title":"Front End Engineer",
       "askLinkedIn":true,
       "askGender":true,
       "private_label":"",
       "introductoryPageOption":"none",
       "days_to_complete":7,
       "introductoryPageEditorHTML":null,
       "introductoryPageManualHTML":null,
       "introductoryPagePDF":null
       "questions":[  
          {  
             "time_limit_minutes":2,
             "time_limit_seconds":"30",
             "reading_time":30,
             "question":"What makes you interested in this position and the organization?",
             "type":"video"
          },
          {  
             "question":"Please list your past work experiences",
             "type":"text",
             "required": true
          },
          {  
             "question":"Please upload your resume",
             "type":"upload",
             "required": false
          }
       ]
    }
    
    
    $.ajax({
        url: 'https://app.telointerview.com/api/v1/interviews/{interview_id}/create?api_token=YOUR_TOKEN',
        type: 'POST',
        data: newInterview
    }).done(function(response) {
        console.log(response.data.interview)
    });
    

    The above command returns the JSON of the created interview if successful

    This endpoint creates an interview.

    HTTP Request

    POST /interviews/{interview_id}/create

    Output Notes

    The request will return the JSON of the created interview if successful.

    Parameter Description

    introductoryPageOption

    This sets up what will be present on the introductory page of the interview. It can be either "none","enter-html", "upload-pdf" or "write-editor". Enter html allows users or API users to set custom HTML to be included as the introduction page. Write-editor allows users to write in our in built HTML editor.
    days_to_complete This property is required and can be set to a maximum of 365 (1 year).
    Question Type Can be either "video", "text" or "upload"
    Video Question Video question types ask for the candidate to record a response. They require a reading_time of at least 5 seconds and a minimum time_limit_in_seconds of the recording of at least 10 seconds.
    Required The required parameter on upload and text questions if set to true requires an answer from the candidate and they will be unable to skip the question.

    Update an Interview

    var interview = {  
       "id":"87f21590-e409-43b4-acc6-96a60394fa46",
       "team_id":"7795d81d-19f8-41f7-9a29-12ac46356dbd",
       "title":"Backend Engineer",
       "private_label":"Engineers",
       "days_to_complete":7,
       "introductoryPageOption":"enter-html",
       "introductoryPagePDF":null,
       "introductoryPageEditorHTML":null,
       "introductoryPageManualHTML":"<p>Custom HTML</p>",
       "deleted_at":null,
       "created_at":"2018-02-04 00:51:52",
       "updated_at":"2018-02-04 01:02:00",
       "open_invite_code":"9ebc9442-2ea0-4130-8955-dff0e59df756",
       "askGender":true,
       "askLinkedIn":0,
       "askLocation":0,
       "questions":[  
          {  
             "id":"ce8b67fa-3526-437c-98b0-70ee8e59111a",
             "interview_id":"87f21590-e409-43b4-acc6-96a60394fa46",
             "order_position":4,
             "question":"What is your favourite backend programming language and why?",
             "question_subtext":null,
             "time_limit_in_seconds":90,
             "deleted_at":null,
             "reading_time":30,
             "type":"video"
          },
          {  
             "id":"b10ca8b1-176a-42c0-a573-8cdc38ce62fe",
             "interview_id":"87f21590-e409-43b4-acc6-96a60394fa46",
             "required":0,
             "order_position":2,
             "question":"Please list your past work experiences",
             "question_subtext":null,
             "word_limit":null,
             "deleted_at":null,
             "type":"text"
          },
          {  
             "id":"6ab803bd-6635-418a-b020-490ad53c50af",
             "interview_id":"87f21590-e409-43b4-acc6-96a60394fa46",
             "required":0,
             "order_position":3,
             "question":"Please upload your resume",
             "question_subtext":null,
             "deleted_at":null,
             "type":"upload"
          }
       ],
       "introductoryPagePDFURL":null,
       "groups":[  
    
       ]
    }
    
    
    $.ajax({
        url: 'https://app.telointerview.com/api/v1/interviews/{interview_id}?api_token=YOUR_TOKEN',
        type: 'POST',
        data: interview
    }).done(function(response) {
        console.log(response.data.interview)
    });
    

    The above command returns the JSON of the created interview if successful

    This endpoint updates an interview. Note that it requires having the questions on the interview. While questions are present when calling the specific interview route /interviews/{interview_id}, the /interviews route which lists your interviews does not include the interview's questions so using the interview object from that, changing properties and updating the interview will remove the interviews questions. Instead, request the interview specifcally via /interviews/{interview_id} before using that data to update the interview.

    HTTP Request

    POST /interviews/{interview_id}

    Output Notes

    The request will return the JSON of the updated interview if successful.

    Parameter Description

    introductoryPageOption

    This sets up what will be present on the introductory page of the interview. It can be either "none","enter-html", "upload-pdf" or "write-editor". Enter html allows users or API users to set custom HTML to be included as the introduction page. Write-editor allows users to write in our in built HTML editor.
    days_to_complete This property is required and can be set to a maximum of 365 (1 year).
    Question Type Can be either "video", "text" or "upload"
    Video Question Video question types ask for the candidate to record a response. They require a reading_time of at least 5 seconds and a minimum time_limit_in_seconds of the recording of at least 10 seconds.
    Required The required parameter on upload and text questions if set to true requires an answer from the candidate and they will be unable to skip the question.

    Delete a Interview

    $.ajax({
        url: 'https://app.telointerview.com/api/v1/interviews/{interview_id}?api_token=YOUR_TOKEN',
        type: 'POST'
    }).done(function(response) {
        // the interview has been deleted
    });
    

    The above command returns a status code of 200 if successful.

    This endpoint deletes a specific interview.

    HTTP Request

    POST /interviews/{interview_id}/delete

    Output Notes

    The request will return a status code of 200 if successful.

    Uploading a PDF

    <form>
       <input type="file" accept="application/pdf" name="uploadPDFInput" id="uploadPDFInput" />
    </form>
    
    
    var Form = new FormData();
    Form.append('pdf', $('#uploadPDFInput')[0].files[0]));
    
    $.ajax({
        url: 'https://app.telointerview.com/api/v1/interviews/IntroductoryPagePDF/upload?api_token=YOUR_TOKEN',
        type: 'POST',
        data: Form,
        contentType: false, // Necessary (requires jQuery 1.6+)
        processData: false // Necessary
    }).done(function(response) {
            //PDF Name, update the introductoryPagePDF property of a interview with this 
            //and update the introductoryPageOption of the interview to 'upload-pdf'
            //to use it as an interviews introductory page. 
            console.log(response.data.pdfName)
    
            //to access the uploaded PDF's URL such as to preview the PDF
            console.log(response.data.url)
    });
    

    The above command returns a status code of 200 if successful.

    If you wish to set a PDF as the introductory page using the "upload-pdf" simply POST the PDF file to the /interviews/IntroductoryPagePDF/upload endpoint as multipart/form-data as per the examples to the right. Once the PDF is uploaded the request will return the PDF's name and URL. Then simply update the interview via the interview update endpoint above. Note that the maximum filesize for PDFs accepted is 10mb to prevent excessive load times for users.

    HTTP Request

    POST /interviews/IntroductoryPagePDF/upload

    Output Notes

    The request will return a json object with the saved PDF name and the uploaded pdf's url. You can then use this data to update the interview via the interview update endpoint to update introductoryPagePDF with the pdfName and you may change the introductory page method used to 'upload-pdf'.

    { "pdfName":"introductory-pdf.pdf", "url":"https://us-west-2.amazonaws.com/introductory-pdf.pdf" }

    Applicants

    Get Applicants

    $.ajax({
        url: 'https://app.telointerview.com/api/v1/interviews/{interview_id}/applicants?api_token=YOUR_TOKEN',
        type: 'GET'
    }).done(function(response) {
        console.log(response.data.applicants)
    });
    

    The above command returns JSON structured like this:

    
    {  
       "applicants":[  
          {  
             "id":"2f0e70bc-e725-4534-beee-efc24866cd8e",
             "interview_id":"dbed6b9f-fae2-420e-9c85-a895ac45c286",
             "name":null,
             "email":"sarah@gmail.com",
             "linkedin_profile_url":null,
             "gender":null,
             "invite_code":null,
             "status":"Completed",
             "rating": 8,
             "submit_by_date":null,
             "date_completed":"2018-01-29 02:47:29",
             "extra_reading_time_in_seconds":null,
             "extra_answering_time_in_seconds":null,
             "deleted_at":null,
             "created_at":"2018-01-29 12:45:27",
             "updated_at":"2018-01-29 12:47:29",
             "introduction_complete":1,
             "preview_applicant":0,
             "source":"open",
             "share_code":"68892048-f229-44fd-b513-50d77cf997e0",
             "comments_count":0,
             "timezone_adjusted":{  
                "date_completed":"2018-01-29 13:47:29"
             },
             "applicant_lists":[
                 {
                     "id":"21f5d4e7-1275-4929-aa91-decc24cf051c",
                     "team_id":"f87f7abf-02dd-44be-8357-decc24cf051c",
                     "name":"Top Applicants",
                     "deleted_at":null,
                     "created_at":"2018-02-05 11:05:10",
                     "updated_at":"2018-02-05 11:05:10"
                 }
            ]
          },
          {  
             "id":"21f5d4e7-00cc-4110-9999-c36ae30bb617",
             "interview_id":"dbed6b9f-fae2-420e-9c85-a895ac45c286",
             "name":"James Dawn",
             "email":"jamesdawn@outlook.com",
             "linkedin_profile_url":null,
             "gender":null,
             "invite_code":null,
             "status":"Completed",
             "rating":null,
             "submit_by_date":null,
             "date_completed":"2018-01-29 02:43:49",
             "extra_reading_time_in_seconds":null,
             "extra_answering_time_in_seconds":null,
             "deleted_at":null,
             "created_at":"2018-01-29 20:42:52",
             "updated_at":"2018-01-29 20:43:49",
             "introduction_complete":1,
             "preview_applicant":0,
             "source":"open",
             "share_code":"b9111bd0-2c76-417c-a662-decc24cf051c",
             "comments_count":0,
             "timezone_adjusted":{  
                "date_completed":"2018-01-29 13:43:49"
             },
             "applicant_lists":[  
    
             ]
          }
       ]
    }
    
    

    This endpoint retrieves all applicants for a particular interview.

    HTTP Request

    GET /interviews/{interview_id}/applicants

    Output Notes

    Parameter Note

    name

    Applicants can be invited just via their email so the name property on applicants can be null.
    status Either Not-Yet-Invited, Completed, In-Progess, Invited, or Expired.
    source Either open or invitation. Open represents those who clicked an open invitation link sent to them rather than personally being invited from within TeloInterview or via the invite endpoint.
    rating A rating either null or an integer 1-10.
    gender Either Female, Male, other-or-prefer-not-to-answer or null. It can be null is as askGender on the interview may be set to false and the interview may not ask applicant's to select their gender.
    linkedin_profile_url Either a url or null. It can be null is as askLinkedIn on the interview may be set to false and the interview or, as it is marked as optional for applicants, they may choose not to enter the url of their LinkedIn profile.
    invite_code Either a unqiue generated string or null. Not every applicant has a personal invite code because they may have not have personally been invited, rather they would have responded to an openly shared link.
    submit_by_date Either a datetime string generated using the interview's days_to_complete property or null. Not every applicant has a submit by date because they may have not have personally been invited, rather they would have responded to an openly shared link.
    date_complete Either a datetime string of when the interview was completed or null if the applicant is yet to complete the interview.
    comment_count An integer representing the number of comments written on the applicant. Comments can be viewed through requesting them by specifically getting the user via the /applicants/{applicant_id} route.
    share_code The share code can be used to view the applicant's interview without having logged in, it's cryptographically generated. The applicant's interview can be viewed at https://app.telointerview.com/shared/applicant/{share_code}.
    extra_reading_time_in_seconds Represents the amount of extra reading time in seconds an applicant will have to read the questions more than usual for the interview. This can be used for accessibility purposes.
    extra_answering_time_in_seconds Represents the amount of extra answering time in seconds an applicant will have to record their answer to the question more than usual for the interview. This can be used for accessibility purposes.
    preview_applicant If this is set to true, the applicant was created for the pupose of testing the interview by the organization's users.
    applicant_lists Applicant lists are used in the TeloInterview dashboard to group similar applicant's. A popular use of these lists are to separate the applicants which have been reviewed and those that have not or the top applicants from those which are not considered the best.

    Get Completed Applicants

    Using the Status Parameter you can get a list of all applicants with a certain status.

    $.ajax({
        url: 'https://app.telointerview.com/api/v1/interviews/{interview_id}/applicants?status=Completed?api_token=YOUR_TOKEN',
        type: 'GET'
    }).done(function(response) {
        console.log(response.data.applicants)
    });
    

    This endpoint retrieves all applicants for a particular interview with a certain status. Applicant data returned will be in the format of the /interviews/{interview_id}/applicants endpoint as above.

    HTTP Request

    GET /interviews/{interview_id}/applicants?status={status}

    Parameter Notes

    Parameter Note
    status Either Not-Yet-Invited, Completed, In-Progess, Invited, or Expired.

    Create Applicant for Interview

    var applicant = {  
        "inviteNow": false,
        "name": "Sarah Henderson",
        "email":"sarah@gmail.com",
        "preview_applicant":false,
        "extra_reading_time_in_seconds":null,
        "extra_answering_time_in_seconds":null,
    }
    
    $.ajax({
        url: 'https://app.telointerview.com/api/v1/interviews/{interview_id}/applicants?api_token=YOUR_TOKEN',
        type: 'POST',
        data: applicant
    }).done(function(response) {
        console.log(response.data.applicant)
    });
    

    The above command returns the JSON of the created applicant if successful

    This endpoint creates an applicant for a interview.

    HTTP Request

    POST /applicants/{applicant_id}/create

    Parameter Notes

    Parameter Description
    inviteNow If set to true, this will send an invitation to the applicant to complete the interview. This could be included in a form such as through a checkbox or through a hidden input field like this <input type="hidden" name="inviteNow" value="true">.
    name The name property is optional, applicants are not required to have a name value.
    email The email property is required and must be a valid email.
    preview_applicant If set to true, the applicant won't be regarded as a legitimate applicant in billing. This property is used for testing the interview or trying it out.
    extra_reading_time_in_seconds Represents the amount of extra reading time in seconds an applicant will have to read the questions more than usual for the interview. This can be used for accessibility purposes.
    extra_answering_time_in_seconds Represents the amount of extra answering time in seconds an applicant will have to record their answer to the question more than usual for the interview. This can be used for accessibility purposes.

    Output Notes

    The request will return the JSON of the created applicant if successful.

    Get Specific Applicant

    $.ajax({
        url: 'https://app.telointerview.com/api/v1/applicants/{applicant_id}?api_token=YOUR_TOKEN',
        type: 'GET'
    }).done(function(response) {
        console.log(response.data.applicant)
    });
    

    The above command returns JSON structured like this:

    This endpoint retrieves all applicants for a particular interview.

    HTTP Request

    GET /applicants/{applicant_id}

    Output Notes

    Parameter Note

    name

    Applicants can be invited just via their email so the name property on applicants can be null.
    status Either Not-Yet-Invited, Completed, In-Progess, Invited, or Expired.
    source Either open or invitation. Open represents those who clicked an open invitation link sent to them rather than personally being invited from within TeloInterview or via the invite endpoint.
    rating A rating either null or an integer 1-10.
    gender Either Female, Male, other-or-prefer-not-to-answer or null. It can be null is as askGender on the interview may be set to false and the interview may not ask applicant's to select their gender.
    linkedin_profile_url Either a url or null. It can be null is as askLinkedIn on the interview may be set to false and the interview or, as it is marked as optional for applicants, they may choose not to enter the url of their LinkedIn profile.
    invite_code Either a unqiue generated string or null. Not every applicant has a personal invite code because they may have not have personally been invited, rather they would have responded to an openly shared link.
    submit_by_date Either a datetime string generated using the interview's days_to_complete property or null. Not every applicant has a submit by date because they may have not have personally been invited, rather they would have responded to an openly shared link.
    date_complete Either a datetime string of when the interview was completed or null if the applicant is yet to complete the interview.
    comment_count An integer representing the number of comments written on the applicant. Comments can be viewed through requesting them by specifically getting the user via the /applicants/{applicant_id} route.
    share_code The share code can be used to view the applicant's interview without having logged in, it's cryptographically generated. The applicant's interview can be viewed at https://app.telointerview.com/shared/applicant/{share_code}.
    extra_reading_time_in_seconds Represents the amount of extra reading time in seconds an applicant will have to read the questions more than usual for the interview. This can be used for accessibility purposes.
    extra_answering_time_in_seconds Represents the amount of extra answering time in seconds an applicant will have to record their answer to the question more than usual for the interview. This can be used for accessibility purposes.
    preview_applicant If this is set to true, the applicant was created for the pupose of testing the interview by the organization's users.
    applicant_lists Applicant lists are used in the TeloInterview dashboard to group similar applicant's. A popular use of these lists are to separate the applicants which have been reviewed and those that have not or the top applicants from those which are not considered the best.

    Update an Applicant

    var applicant = {  
       "name":"Jason",
       "email":"jason.dawn@gmail.com"
    }
    
    $.ajax({
        url: 'https://app.telointerview.com/api/v1/applicants/{applicant_id}?api_token=YOUR_TOKEN',
        type: 'POST',
        data: applicant
    }).done(function(response) {
        console.log(response.data.applicant)
    });
    

    The above command returns the JSON of the created interview if successful

    This endpoint updates an applicant with an updated name or email.

    HTTP Request

    POST /applicants/{applicant_id}

    Parameter Notes

    Parameter Note
    name Can either be a string or null.
    email Must be a valid email address.

    Output Notes

    The request will return the JSON of the updated applicant if successful.

    Delete an Applicant

    $.ajax({
        url: 'https://app.telointerview.com/api/v1/applicants/{applicant_id}/delete?api_token=YOUR_TOKEN',
        type: 'POST'
    }).done(function(response) {
        // the applicant has been deleted
    });
    

    The above command returns a status code of 200 if successful.

    This endpoint deletes a specific interview.

    HTTP Request

    POST /applicants/{applicant_id}/delete

    Output Notes

    The request will return a status code of 200 if successful.

    Interview Invitations

    Invite an Applicant to Interview

    $.ajax({
        url: 'https://app.telointerview.com/api/v1/applicants/{applicant_id}/invite?api_token=YOUR_TOKEN',
        type: 'POST'
    }).done(function(response) {
        console.log(response.data.applicant)
    });
    

    The above command returns the JSON of the created applicant if successful

    This endpoint invites an applicant to interview through sending them an email invitation.

    HTTP Request

    POST /applicants/{applicant_id}/invite

    Output Notes

    The request will return a status code of 200 if successful.

    Errors

    The TeloInterview API uses the following error codes:

    Error Code Meaning
    400 Bad Request -- Your request is invalid.
    401 Unauthorized -- Your API key is wrong or not attached to the request.
    403 Forbidden -- The resource requested is hidden for administrators only.
    404 Not Found -- The specified endpoint could not be found..
    405 Method Not Allowed -- You tried to access with an invalid method.
    406 Not Acceptable -- You requested a format that isn't json.
    410 Gone -- The requested has been removed from our servers.
    429 Too Many Requests -- You're requesting too many resources.
    500 Internal Server Error -- We had a problem with our server. Please contact us if it's ongoing issue.
    503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.

    Please email developers@telointerview.com if you have any issues with the API or use the live chat on the homepage of our website.