Errors

This endpoint returns a list of possible DataForSEO API errors and general status codes. Below you will find a list of HTTP response codes and internal messages. We recommend storing the data connected to error codes in your application log and designing a necessary system for handling related exceptional or error conditions.

Note: DataForSEO API servers always return the 200 HTTP response code, except for the following cases.

HTTP response codes:

Code Message Description
401 Unauthorized You are not authorized to access this resource. See your login details here: https://app.dataforseo.com/api-access
402 Payment Required We had a problem billing your account. Please, check your account’s balance.
404 Not Found Requested endpoint not found
500 Internal Server Error Sorry, we could not process your request due to the internal server error. Please, try again later.

 

Alongside the 200 HTTP code, our system also generates internal status codes which you may find in status_code and status_message fields of the API response.

Note: status messages can be expanded in the API response and may vary depending on the event that triggered them.

Internal status codes and messages:

Field nameTypeDescription
20000ok.

the request has been successfully completed

20100task created.

as a result of the successful request, the task has been created

40000you can set only one task at a time.

you cannot specify more than one task in the POST array

40001this id is used by another client, check the id.

the task identifier id is unique to the client used to send the request

40002this id is used by another search engine, check the path.

the task identifier id is unique to the search engine used in the URL path of the request

40003this id is used by another search type, check the path.

the task identifier id is unique to the search type used in the URL path of the request

40004this id is used by another function, check the id.

the task identifier id is unique to the function used in the URL path of the request

40006you can set no more than 100 tasks at a time.

each POST request can contain up to 100 tasks

40100you are not authorized to access this resource. see your login details here: https://app.dataforseo.com/api-dashboard .

check if the specified credentials match those in your account dashboard

40101internal se server error.

the requested search engine was unable to process your request and responded with an error;
learn more on our help center

40102no search results.

no results matching the details of your request have been found;
learn more on our help center

40103task execution failed, please try to resubmit the task.

the task could not be executed, try posting another task with similar parameters

40104please verify your account before using the api. you can complete the verification in the user panel: https://app.dataforseo.com/ .

email and/or phone verification is required for new users; to use DataForSEO APIs, you have to complete the account verification process in the User Panel

40105The task was deleted and is no longer available.

the task that you are referring to has been deleted from our system

40106Task completed with partial results. Some pages could not be retrieved after several retry attempts. You have not been charged for the pages that were not returned.

the task has been completed successfullt, but we could not parse some of the requested results;
for example, if you set a task to retrieve 100 SERP results, but we only parsed 80 results — you will get 80 results with this error, without being charged for the remaining 20 unparsed results


You can also get the list of internal error codes by calling the ‘Errors’ endpoint:
Pricing

Your account will not be charged for using this API

checked GET

By calling this endpoint you will receive information about the possible error codes.

‌‌As a response of the API server, you will receive JSON-encoded data containing a tasks array with the information specific to the set tasks.

Field nameTypeDescription
versionstring

the current version of the API

status_codeinteger

general status code
you can find the full list of the response codes here

status_messagestring

general informational message
you can find the full list of general informational messages here

timestring

total execution time, seconds

costfloat

total tasks cost, USD

tasks_countinteger

the number of tasks in the tasks array

tasks_errorinteger

the number of tasks in the tasks array returned with an error

tasksarray

array of tasks

    idstring

task identifier
unique task identifier in our system in the UUID format

    status_codeinteger

status code of the task
generated by DataForSEO, can be within the following range: 10000-60000
you can find the full list of the response codes here

    status_messagestring

informational message of the task
you can find the full list of general informational messages here

    timestring

execution time, seconds

    costfloat

cost of the task, USD

    result_countinteger

number of elements in the result array

    patharray

URL path

    dataarray

contains the same parameters that you specified in the POST request

    resultarray

array of results

        codeinteger

code

        messagestring

message

Instead of ‘login’ and ‘password’ use your credentials from https://app.dataforseo.com/api-access

# Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-access 
login="login" 
password="password" 
cred="$(printf ${login}:${password} | base64)" 
curl --location --request GET "https://api.dataforseo.com/v3/appendix/errors" 
--header "Authorization: Basic ${cred}"  
--header "Content-Type: application/json" 
--data-raw ""
<?php
// You can download this file from here https://api.dataforseo.com/v3/_examples/php/_php_RestClient.zip
require('RestClient.php');
$api_url = 'https://api.dataforseo.com/';
try {
	// Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-access
	$client = new RestClient($api_url, null, 'login', 'password');
} catch (RestClientException $e) {
	echo "n";
	print "HTTP code: {$e->getHttpCode()}n";
	print "Error code: {$e->getCode()}n";
	print "Message: {$e->getMessage()}n";
	print  $e->getTraceAsString();
	echo "n";
	exit();
}
try {
	// using this method you can get a list of errors
	// GET /v3/appendix/errors
	$result = $client->get('/v3/appendix/errors');
	print_r($result);
	// do something with result
} catch (RestClientException $e) {
	echo "n";
	print "HTTP code: {$e->getHttpCode()}n";
	print "Error code: {$e->getCode()}n";
	print "Message: {$e->getMessage()}n";
	print  $e->getTraceAsString();
	echo "n";
}
$client = null;
?>
const axios = require('axios');

axios({
    method: 'get',
    url: 'https://api.dataforseo.com/v3/appendix/errors',
    auth: {
        username: 'login',
        password: 'password'
    },
    headers: {
        'content-type': 'application/json'
    }
}).then(function (response) {
    var result = response['data']['tasks'][0]['result'];
    // Result data
    console.log(result);
}).catch(function (error) {
    console.log(error);
});
from random import Random
from client import RestClient
# You can download this file from here https://api.dataforseo.com/v3/_examples/python/_python_Client.zip

client = RestClient("login", "password")
# using this method you can get a list of errors
# GET /v3/appendix/errors
response = client.get("/v3/appendix/errors")
# you can find the full list of the response codes here https://docs.dataforseo.com/v3/appendix/errors
if response["status_code"] == 20000:
    print(response)
    # do something with result
else:
    print("error. Code: %d Message: %s" % (response["status_code"], response["status_message"]))
using Newtonsoft.Json;
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;

namespace DataForSeoDemos
{
    public static partial class Demos
    {
        public static async Task appendix_errors()
        {
            var httpClient = new HttpClient
            {
                BaseAddress = new Uri("https://api.dataforseo.com/"),
                // Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-access                
                DefaultRequestHeaders = { Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes("login:password"))) }
            };
            // using this method you can get a list of errors
            // GET /v3/appendix/errors
            var response = await httpClient.GetAsync("/v3/appendix/errors");
            var result = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync());
            // you can find the full list of the response codes here https://docs.dataforseo.com/v3/appendix/errors
            if (result.status_code == 20000)
            {
                // do something with result
                Console.WriteLine(result);
            }
            else
                Console.WriteLine($"error. Code: {result.status_code} Message: {result.status_message}");
        }
    }
}

The above command returns JSON structured like this:

{
  "version": "0.1.20260902",
  "status_code": 20000,
  "status_message": "Ok.",
  "time": "0.0665 sec.",
  "cost": 0,
  "tasks_count": 1,
  "tasks_error": 0,
  "tasks": [
    {
      "id": "09031525-1535-0161-0000-772a4543ee8a",
      "status_code": 20000,
      "status_message": "Ok.",
      "time": "0.0000 sec.",
      "cost": 0,
      "result_count": 53,
      "path": [
        "v3",
        "appendix",
        "errors"
      ],
      "data": {
        "api": "appendix",
        "function": "errors"
      },
      "result": [
        {
          "code": 20000,
          "message": "Ok."
        },
        {
          "code": 20100,
          "message": "Task Created."
        },
        {
          "code": 40000,
          "message": "You can set only one task at a time."
        },
        {
          "code": 40001,
          "message": "This id is used by another client, check the id."
        },
        {
          "code": 40002,
          "message": "This id is used by another search engine, check the Path."
        },
        {
          "code": 40003,
          "message": "This id is used by another search type, check the Path."
        },
        {
          "code": 40004,
          "message": "This id is used by another function, check the id."
        },
        {
          "code": 40005,
          "message": "This id is used by a different API, check the Path."
        },
        {
          "code": 40006,
          "message": "You can set no more than 100 tasks at a time."
        },
        {
          "code": 40100,
          "message": "You are not authorized to access this resource. See your login details here: https://app.dataforseo.com/api-access ."
        },
        {
          "code": 40101,
          "message": "Internal SE Server Error."
        },
        {
          "code": 40102,
          "message": "No Search Results."
        },
        {
          "code": 40103,
          "message": "Task execution failed, please try to resubmit the task."
        },
        {
          "code": 40104,
          "message": "Please verify your account before using the API. You can complete verification in the user panel: https://app.dataforseo.com/ ."
        },
        {
          "code": 40105,
          "message": "The task was deleted and is no longer available."
        },
        {
          "code": 40106,
          "message": "Task completed with partial results. Some pages could not be retrieved after several retry attempts. You have not been charged for the pages that were not returned."
        },
        {
          "code": 40200,
          "message": "Payment Required."
        },
        {
          "code": 40201,
          "message": "We noticed some unusual activity in your DataForSEO account, so we’ve temporarily paused access as a precaution. Please, reach out to our support team at support@dataforseo.com for more details, and we’ll work with you to resolve this quickly."
        },
        {
          "code": 40202,
          "message": "The rate-limit per minute has been exceeded."
        },
        {
          "code": 40203,
          "message": "The cost limit has been exceeded. You can modify your cost limit in the user panel https://app.dataforseo.com/api-settings ."
        },
        {
          "code": 40204,
          "message": "Access denied. Visit Plans and Subscriptions to activate your subscription and get access to this API: https://app.dataforseo.com/backlinks-subscription ."
        },
        {
          "code": 40205,
          "message": "The duplicate task limit per hour has been exceeded. You can modify your limits in the user panel https://app.dataforseo.com/api-settings ."
        },
        {
          "code": 40206,
          "message": "The duplicate task limit per day has been exceeded. You can modify your limits in the user panel https://app.dataforseo.com/api-settings ."
        },
        {
          "code": 40207,
          "message": "Access denied. Your IP is not whitelisted. You can modify your IP whitelist in the user panel https://app.dataforseo.com/api-access ."
        },
        {
          "code": 40208,
          "message": "Russian and Belarus accounts are blocked due to aggression over Ukraine. Ask your president to stop the war."
        },
        {
          "code": 40209,
          "message": "Too many simultaneous queries."
        },
        {
          "code": 40210,
          "message": "Insufficient Funds. Your account's balance is too low to complete this request."
        },
        {
          "code": 40400,
          "message": "Not Found."
        },
        {
          "code": 40401,
          "message": "Task Not Found."
        },
        {
          "code": 40402,
          "message": "Invalid Path."
        },
        {
          "code": 40403,
          "message": "Results Expired."
        },
        {
          "code": 40404,
          "message": "No Prepared Data Found. Please Contact Our Support Team."
        },
        {
          "code": 40405,
          "message": "Textual content on the target page is insufficient."
        },
        {
          "code": 40406,
          "message": "Requested page was not submitted for crawling."
        },
        {
          "code": 40407,
          "message": "Duplicate Host."
        },
        {
          "code": 40408,
          "message": "Target URL is invalid."
        },
        {
          "code": 40501,
          "message": "Invalid Field."
        },
        {
          "code": 40502,
          "message": "POST Data Is Empty."
        },
        {
          "code": 40503,
          "message": "POST Data Is Invalid."
        },
        {
          "code": 40504,
          "message": "The number of intersecting keywords for the specified domains exceeds 10 million. Try specifying different domains."
        },
        {
          "code": 40505,
          "message": "You are using old data."
        },
        {
          "code": 40506,
          "message": "Unknown Fields in POST Data."
        },
        {
          "code": 40601,
          "message": "Task Handed."
        },
        {
          "code": 40602,
          "message": "Task In Queue."
        },
        {
          "code": 50000,
          "message": "Internal Error."
        },
        {
          "code": 50001,
          "message": "Error While Checking the Balance."
        },
        {
          "code": 50100,
          "message": "Not Implemented."
        },
        {
          "code": 50301,
          "message": "3rd Party API Service Unavailable."
        },
        {
          "code": 50302,
          "message": "Internal 3rd Party API Service Unavailable."
        },
        {
          "code": 50303,
          "message": "Update in progress. Please try after a few minutes."
        },
        {
          "code": 50304,
          "message": "This function temporarily unavailable. Please contact support for more information."
        },
        {
          "code": 50401,
          "message": "Internal Error - Timeout."
        },
        {
          "code": 50402,
          "message": "Target page took too long to respond."
        }
      ]
    }
  ]
}