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 |
40200 | payment required. | the request cannot be completed until the balance is recharged; |
40201 | 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. | unusual activity detected in your account may result from the creation of several trial accounts or violation of the DataForSEO Terms of Service in some other way; |
40202 | the rate-limit per minute has been exceeded. | you can make up to 2000 requests per minute; |
40203 | the cost limit has been exceeded. you can modify your cost limit in the user panel https://app.dataforseo.com/api-settings. | you can modify daily cost limits for APIs and endpoints in your account dashboard |
40204 | access denied. visit plans and subscriptions to activate your subscription and get access to this api: https://app.dataforseo.com/users/getrows . | the access to Backlinks API is limited by a minimal commitment. Learn more. |
40205 | the duplicate task limit per hour has been exceeded. you can modify your limits in the user panel https://app.dataforseo.com/api-settings. | you can modify the duplicate task limit in your account dashboard. Learn more. |
40206 | the duplicate task limit per day has been exceeded. you can modify your limits in the user panel https://app.dataforseo.com/api-settings . | you can modify the duplicate task limit in your account dashboard. Learn more. |
40207 | access denied. your ip is not whitelisted. you can modify your ip whitelist in the user panel https://app.dataforseo.com/api-access . | you can whitelist all the necessary IPs in the account dashboard. Learn more. |
40209 | too many simultaneous queries. | the limit for simultaneous requests made by a single user is 30 |
40210 | insufficient funds. your account's balance is too low to complete this request. | visit your account dashboard to add funds; learn more about making payments |
40400 | not found. | the requested resource doesn’t exist; |
40401 | task not found. | the requested task does not exist |
40402 | invalid path. | the URL path of your request is invalid |
40403 | results expired. | it’s not possible to retrieve the results of a task that was created more than a month ago |
40404 | no prepared data found.please contact our support team. | the Sandbox does not contain prepared data for the task you set |
40405 | textual content on the target page is insufficient. | target page does not have enough textual data, please try specifying a different page |
40406 | requested page was not submitted for crawling. | the page was not submitted for crawling in Task POST |
40407 | duplicate host. | duplicate hosts detected in request |
40408 | target url is invalid. | website resource at the target URL returned a 404 status code or is invalid |
40501 | invalid field. | one of the fields in the POST request is invalid |
40502 | post data is empty. | the body of your POST request is empty, please check the body structure and validity |
40503 | post data is invalid. | the structure of the POST request is invalid |
40504 | the number of intersecting keywords for the specified domains exceeds 10 million. try specifying different domains. | there are too many intersecting keywords for the specified domains, please try again with different domain names |
40505 | you are using old data. | location parameters you are using are outdated, please check our documentation or call the relevant locations endpoint for up-tp-date parameters |
40506 | unknown fields in post data. | the body of your POST request contains unknown fields, please consult the documentation of the requested endpoint and use available fields |
40601 | task handed. | the task has been received but has not yet been enqueued for processing |
40602 | task in queue. | the task has been enqueued for processing |
50000 | internal error. | our system encountered an unexpected condition; |
50001 | error while checking the balance. | our system failed to check your account balance; |
50100 | not implemented. | you specified a non-existing task or parameter, please check the body of your POST request |
50301 | 3rd party api service unavailable. | one of our external data sources is currently unavailable or responded with an error; |
50303 | update is in progress. please try after a few minutes | the API you’re requesting is being updated; |
50304 | this function is temporarily unavailable. please contact support for more information. | the function you’re requesting failed to respond; |
50401 | internal error - timeout. | our system failed to process a live-mode task in 120 seconds; |
50402 | target page took too long to respond. | target page took longer than 50 seconds to respond, please try again later or specify a different page |
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.20260525",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0843 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "05281823-1535-0161-0000-e34edbd173ff",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0000 sec.",
"cost": 0,
"result_count": 51,
"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": 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."
}
]
}
]
}