Your account will not be charged for using this API
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 name | Type | Description |
|---|---|---|
20000 | ok. | the request has been successfully completed |
20100 | task created. | as a result of the successful request, the task has been created |
40000 | you can set only one task at a time. | you cannot specify more than one task in the POST array |
40001 | this id is used by another client, check the id. | the task identifier |
40002 | this id is used by another search engine, check the path. | the task identifier |
40003 | this id is used by another search type, check the path. | the task identifier |
40004 | this id is used by another function, check the id. | the task identifier |
40006 | you can set no more than 100 tasks at a time. | each POST request can contain up to 100 tasks |
40100 | you 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 |
40101 | internal se server error. | the requested search engine was unable to process your request and responded with an error; |
40102 | no search results. | no results matching the details of your request have been found; |
40103 | task execution failed, please try to resubmit the task. | the task could not be executed, try posting another task with similar parameters |
40104 | please 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 |
40105 | The task was deleted and is no longer available. | the task that you are referring to has been deleted from our system |
40106 | 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. | the task has been completed successfullt, but we could not parse some of the requested results; |
You can also get the list of internal error codes by calling the ‘Errors’ endpoint:
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 name | Type | Description |
|---|---|---|
version | string | the current version of the API |
status_code | integer | general status code |
status_message | string | general informational message |
time | string | total execution time, seconds |
cost | float | total tasks cost, USD |
tasks_count | integer | the number of tasks in the |
tasks_error | integer | the number of tasks in the |
tasks | array | array of tasks |
id | string | task identifier |
status_code | integer | status code of the task |
status_message | string | informational message of the task |
time | string | execution time, seconds |
cost | float | cost of the task, USD |
result_count | integer | number of elements in the |
path | array | URL path |
data | array | contains the same parameters that you specified in the POST request |
result | array | array of results |
code | integer | code |
message | string | 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."
}
]
}
]
}