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 Code | Error code | Description |
---|---|---|
400 | BadRequestError | The API request is invalid or malformed. The message usually provides details about why the request is not valid. |
400 | InvalidArgumentError | Some of the provided arguments are incorrect. |
400 | NotAvailableYet | The resource is not available yet, but will become available later. |
400 | UnselectiveContentQueryError | Content search query is not selective enough. |
400 | UnsupportedContentQueryError | Unsupported content search query. |
401 | AuthenticationRequiredError | The operation requires an authenticated user. Verify that you have provided your API key. |
401 | UserNotActiveError | The user account is not active. Make sure you properly activated your account by following the link sent to your email. |
401 | WrongCredentialsError | The provided API key is incorrect. |
403 | ForbiddenError | You are not allowed to perform the requested operation. |
404 | NotFoundError | The requested resource was not found. |
409 | AlreadyExistsError | The resource already exists. |
424 | FailedDependencyError | The request depended on another request and that request failed. |
429 | QuotaExceededError | You 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. |
429 | TooManyRequestsError | Too many requests. |
503 | TransientError | Transient server error. Retry might work. |
504 | DeadlineExceededError | The operation took too long to complete. |