Errors

In this guide, we will talk about what happens when something goes wrong while you work with the API. Mistakes happen, and mostly they will be yours, not ours. Let's look at some status codes and error types you might encounter.

You can tell if your request was successful by checking the status code when receiving an API response. If a response comes back unsuccessful, you can use the error type and error message to figure out what has gone wrong and do some rudimentary debugging (before contacting support).


Status codes

Here is a list of the different categories of status codes returned by the Virlo API. Use these to understand if a request was successful.

  • Name
    2xx
    Description

    A 2xx status code indicates a successful response.

  • Name
    4xx
    Description

    A 4xx status code indicates a client error — this means it's a you problem.

  • Name
    5xx
    Description

    A 5xx status code indicates a server error — you won't be seeing these.


Error types

Whenever a request is unsuccessful, the Virlo API will return an error response with an HTTP status code, an error label, and a human-readable message. You can use this information to understand what went wrong and how to fix it.

Every error response follows the same shape:

  • Name
    statusCode
    Type
    integer
    Description

    The HTTP status code (e.g. 400, 401, 404, 429).

  • Name
    error
    Type
    string
    Description

    Short error label (e.g. "Bad Request", "Unauthorized", "Not Found").

  • Name
    message
    Type
    string | string[]
    Description

    A human-readable description of what went wrong. For validation errors, this may be an array of individual error messages.

Validation error

{
  "statusCode": 400,
  "message": [
    "time_period must be one of the following values: today, this_week, this_month, this_year",
    "keywords must contain at least 1 elements"
  ],
  "error": "Bad Request"
}

Authentication error

{
  "statusCode": 401,
  "message": "API key is required",
  "error": "Unauthorized"
}

Insufficient balance

{
  "statusCode": 402,
  "message": "Insufficient balance",
  "error": "Payment Required"
}

Rate limited

{
  "statusCode": 429,
  "message": "Rate limit exceeded",
  "error": "Too Many Requests"
}

Was this page helpful?