InterviewUp API

Unlock the power of InterviewUp.

General Specification

The InterviewUp API platform is based on REST principles and provides simple and powerful web services to interact with our proprietary data, logic, and presentation assets. Our APIS are designed to provide predictable, resource-oriented URLs and HTTP response codes to indicate API errors. Developers can use our unique suite of APIs to create a variety of career services and solutions including custom applications, websites, widgets, and other projects.

Authentication

All API access is over HTTPS, and accessed from the https://api.interviewup.com domain.

Communications Protocol

All API requests must be made over HTTPS

Media Types

All requests and responses are formatted as JSON, including errors.

The accepted media types for Accept request header (used to specify media types which are acceptable for the response) are:

application/vnd.{api-name}.{api-version}+json application/hal+json; application/json;

The accepted media types for Content-Type request header (used to specify the media types allowed for submitted content) are:

application/vnd.{api-name}.{api-version}+json application/json;

The media types for Content-Type response header are:

application/hal+json; - for a result that contains HAL-compliant links application/problem+json; - for a result that contains errors application/json; - for all other responses

API Versioning

There are two different ways to specifiy versioning:

In the url
e.g. https://api.interviewup.com/v1/questions
By Accept header
e.g. Accept:application/vnd.optimal-interview.v1+json

Date Format

All API dates and times are returned in ISO 8601 format.

YYYY-MM-DDTHH:MM:SSZ

Errors

Our APIs use conventional HTTP response codes to indicate success or failure of an API request. In general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that resulted from the provided information (e.g. a required parameter was missing), and codes in the 5xx range indicate a problem on our servers.

We provide details about errors in the body of the response in the following format:

ATTRIBUTES Description
type a URL to a document describing the error condition
title a brief title for the error condition
status the HTTP status code for the current request
detail error details specific to this request
{ "validation_messages": { "name": { "isEmpty": "Value is required and can't be empty" } }, "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html", "title": "Unprocessable Entity", "status": 422, "detail": "Failed Validation" }

Hypermedia

One of the key features of the InterviewUp REST API platform is HAL (Hypertext Application Language).

At its core, HAL provides a set of conventions for consistent and easy API interaction through hyperlinks in JSON. With each call you make to the API, we’ll return an array of links that allow you to request more information about a call and to further interact with the API. These are meant to provide explicit links so that API clients don’t need to construct links on their own. HAL links are contextual, so you only get the information that is relative to a specific request.

The media type for the Content-Type response header when using HAL over HTTP is application/hal+json

The example below is how we represent a collection of questions using HAL:

ATTRIBUTES Description
self The URI of the main resource being represented expressed with a self link. Each resource will be structured as a HAL resource, and contain at least a “_links” property with a “self” relational link.
first It is pointing to the first page of resources
last It is pointing to the last page of resources
prev It is pointing to the previous page of resources
embedded The embedded property is used to represent other resources (with their own links and properties) embedded in the resource we are representing.
{ "count": 2, "total": 4, "_links": { "self": { "href": "https://api.interviewup.com/questions?question_title=question&page=1" } "first": { "href": "https://api.interviewup.com/questions?question_title=question" } "last": { "href": "https://api.interviewup.com/questions?question_title=question&page=1"

Pagination

Requests that return multiple items will be paginated to 25 items by default. You can specify further pages with the ?page parameter.

Encoding

All APIs expect all data to be UTF-8-encoded.

API Rate Limiting

For authenticated requests, the rate limit allows you to make up to 2000 requests per hour. *Note: non-partner developers are limited to 10 requests per hour.
One way to avoid exceeding the hourly rate limit is by caching API responses. Store API responses locally, especially if you expect a lot of traffic.
Please try to limit your calls to the API to a reasonable frequency. We may permanently block access if your app is calling the API too frequently, or you are requesting an unreasonable amount of data in a short time.
We’ll return a couple headers with each API request to let you know how you’re doing:
X-RateLimit-Limit: 2000
X-RateLimit-Remaining: 435

Authentication

All of our APIs require authentication. We use OAuth 2.0 to provide authorized access to our APIs. The OAuth 2.0 authorization framework enables a third-party application to obtain limited and secure access to protected resources. With each API call, you'll need to set up your request headers, including an OAuth 2.0 access token. To start making API requests, follow follow these steps