The VirusTotal API follows the conventional HTTP response codes to indicate success or failure. Codes in the 2xx range indicate success. Codes in the 4xx range indicate an error in the request (e.g. a missing parameter, a resource was not found). Codes in the 5xx range indicate an error in VirusTotal's servers and should be rare.

Unsuccessful requests return additional information about the error in JSON format.

  "error": {
    "code": "<error code>",
    "message": "<a message describing the error>"
  "error": {
    "code": "NotFoundError",
    "message": "URL \"thisurlidmakesnosenseatall\" not found"
  "error": {
    "code": "AuthenticationRequiredError",
    "message": "X-Apikey header is missing"
The error code is a string with one of the values provided in the table below. The message usually provides a little more information about the error.

HTTP CodeError codeDescription
400BadRequestErrorThe API request is invalid or malformed. The message usually provides details about why the request is not valid.
400InvalidArgumentErrorSome of the provided arguments are incorrect.
400NotAvailableYetThe resource is not available yet, but will become available later.
400UnselectiveContentQueryErrorContent search query is not selective enough.
400UnsupportedContentQueryErrorUnsupported content search query.
401AuthenticationRequiredErrorThe operation requires an authenticated user. Verify that you have provided your API key.
401UserNotActiveErrorThe user account is not active. Make sure you properly activated your account by following the link sent to your email.
401WrongCredentialsErrorThe provided API key is incorrect.
403ForbiddenErrorYou are not allowed to perform the requested operation.
404NotFoundErrorThe requested resource was not found.
409AlreadyExistsErrorThe resource already exists.
424FailedDependencyErrorThe request depended on another request and that request failed.
429QuotaExceededErrorYou have exceeded one of your quotas (minute, daily or monthly). Daily quotas are reset every day at 00:00 UTC.
You may have run out of disk space and/or number of files on your VirusTotal Monitor account.
429TooManyRequestsErrorToo many requests.
503TransientErrorTransient server error. Retry might work.
504DeadlineExceededErrorThe operation took too long to complete.