Links
This endpoint will provide you with a list of internal and external links detected on a target website.
The following link types are supported: anchor
, image
, link
, canonical
, meta
, alternate
, redirect
.
This endpoint will provide you with a list of internal and external links detected on a target website.
The following link types are supported: anchor
, image
, link
, canonical
, meta
, alternate
, redirect
.
Instead of ‘login’ and ‘password’ use your credentials from https://app.dataforseo.com/api-access
<?php // You can download this file from here https://cdn.dataforseo.com/v3/examples/php/php_RestClient.zip require('RestClient.php'); $api_url = 'https://api.dataforseo.com/'; // Instead of 'login' and 'password' use your credentials from https://app.dataforseo.com/api-access $client = new RestClient($api_url, null, 'login', 'password'); $post_array = array(); // simple way to get a result $post_array[] = array( "id" => "07281559-0695-0216-0000-c269be8b7592", "page_from" => "/apis/google-trends-api", "filters" => [ ["dofollow", "=", true], "and", ["direction", "=", "external"] ], "limit" => 10 ); try { // POST /v3/on_page/links // the full list of possible parameters is available in documentation $result = $client->post('/v3/on_page/links', $post_array); print_r($result); // do something with post 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; ?>
The above command returns JSON structured like this:
{ "version": "0.1.20201117", "status_code": 20000, "status_message": "Ok.", "time": "0.1513 sec.", "cost": 0, "tasks_count": 1, "tasks_error": 0, "tasks": [ { "id": "11301131-1535-0216-0000-014c8e8501d3", "status_code": 20000, "status_message": "Ok.", "time": "0.0737 sec.", "cost": 0, "result_count": 1, "path": [ "v3", "on_page", "links" ], "data": { "api": "on_page", "function": "links", "page_from": "/apis/google-trends-api", "limit": 10 }, "result": [ { "crawl_progress": "finished", "crawl_status": { "max_crawl_pages": 10, "pages_in_queue": 0, "pages_crawled": 10 }, "total_items_count": 15, "items_count": 10, "items": [ { "type": "image", "domain_from": "dataforseo.com", "domain_to": "www.woorank.com", "page_from": "/apis/google-trends-api", "page_to": "/", "link_from": "https://dataforseo.com/apis/google-trends-api", "link_to": "https://www.woorank.com/", "link_attribute": null, "dofollow": true, "page_from_scheme": "https", "page_to_scheme": "https", "direction": "external", "is_broken": false, "text": null, "image_alt": "4-client", "image_src": "https://dataforseo.com/wp-content/uploads/2020/03/4-client-new-no-color.png", "is_link_relation_conflict": false, "page_to_status_code": null }, { "type": "anchor", "domain_from": "dataforseo.com", "domain_to": "dataforseo.com", "page_from": "/apis/google-trends-api", "page_to": "/apis/keyword-data-api", "link_from": "https://dataforseo.com/apis/google-trends-api", "link_to": "https://dataforseo.com/apis/keyword-data-api", "link_attribute": null, "dofollow": true, "page_from_scheme": "https", "page_to_scheme": "https", "direction": "internal", "is_broken": false, "text": "Keyword Data API", "is_link_relation_conflict": false, "page_to_status_code": null }, { "type": "image", "domain_from": "dataforseo.com", "domain_to": "longtailux.com", "page_from": "/apis/google-trends-api", "page_to": "/", "link_from": "https://dataforseo.com/apis/google-trends-api", "link_to": "https://longtailux.com/", "link_attribute": null, "dofollow": true, "page_from_scheme": "https", "page_to_scheme": "https", "direction": "external", "is_broken": false, "text": null, "image_alt": "8-client", "image_src": "https://dataforseo.com/wp-content/uploads/2020/03/8-client-new-no-color.png", "is_link_relation_conflict": false, "page_to_status_code": null }, { "type": "anchor", "domain_from": "dataforseo.com", "domain_to": "dataforseo.com", "page_from": "/apis/google-trends-api", "page_to": "/apis/dataforseo-labs-api", "link_from": "https://dataforseo.com/apis/google-trends-api", "link_to": "https://dataforseo.com/apis/dataforseo-labs-api", "link_attribute": null, "dofollow": true, "page_from_scheme": "https", "page_to_scheme": "https", "direction": "internal", "is_broken": false, "text": "DataForSEO Labs API", "is_link_relation_conflict": false, "page_to_status_code": null }, { "type": "image", "domain_from": "dataforseo.com", "domain_to": "neilpatel.com", "page_from": "/apis/google-trends-api", "page_to": "/", "link_from": "https://dataforseo.com/apis/google-trends-api", "link_to": "https://neilpatel.com/", "link_attribute": null, "dofollow": true, "page_from_scheme": "https", "page_to_scheme": "https", "direction": "external", "is_broken": false, "text": null, "image_alt": "1-client", "image_src": "https://dataforseo.com/wp-content/uploads/2020/03/1-client-new-no-color.png", "is_link_relation_conflict": false, "page_to_status_code": null }, { "type": "alternate", "domain_from": "dataforseo.com", "domain_to": "dataforseo.com", "page_from": "/apis/google-trends-api", "page_to": "/wp-json/oembed/1.0/embed?url=https://dataforseo.com/apis/google-trends-api&format=xml", "link_from": "https://dataforseo.com/apis/google-trends-api", "link_to": "https://dataforseo.com/wp-json/oembed/1.0/embed?url=https://dataforseo.com/apis/google-trends-api&format=xml", "dofollow": true, "page_from_scheme": "https", "page_to_scheme": "https", "direction": "internal", "is_broken": false, "is_link_relation_conflict": false, "page_to_status_code": null }, { "type": "image", "domain_from": "dataforseo.com", "domain_to": "www.ignitur.com", "page_from": "/apis/google-trends-api", "page_to": "/", "link_from": "https://dataforseo.com/apis/google-trends-api", "link_to": "https://www.ignitur.com/", "link_attribute": null, "dofollow": true, "page_from_scheme": "https", "page_to_scheme": "https", "direction": "external", "is_broken": false, "text": null, "image_alt": "5-client", "image_src": "https://dataforseo.com/wp-content/uploads/2020/03/5-client-new-no-color.png", "is_link_relation_conflict": false, "page_to_status_code": null }, { "type": "anchor", "domain_from": "dataforseo.com", "domain_to": "dataforseo.com", "page_from": "/apis/google-trends-api", "page_to": "/apis/google-ads-api", "link_from": "https://dataforseo.com/apis/google-trends-api", "link_to": "https://dataforseo.com/apis/google-ads-api", "link_attribute": null, "dofollow": true, "page_from_scheme": "https", "page_to_scheme": "https", "direction": "internal", "is_broken": false, "text": "Google Ads", "is_link_relation_conflict": false, "page_to_status_code": null }, { "type": "image", "domain_from": "dataforseo.com", "domain_to": "agencyanalytics.com", "page_from": "/apis/google-trends-api", "page_to": "/", "link_from": "https://dataforseo.com/apis/google-trends-api", "link_to": "https://agencyanalytics.com/", "link_attribute": null, "dofollow": true, "page_from_scheme": "https", "page_to_scheme": "https", "direction": "external", "is_broken": false, "text": null, "image_alt": "7-client", "image_src": "https://dataforseo.com/wp-content/uploads/2020/03/7-client-new-no-color.png", "is_link_relation_conflict": false, "page_to_status_code": null }, { "type": "anchor", "domain_from": "dataforseo.com", "domain_to": "dataforseo.com", "page_from": "/apis/google-trends-api", "page_to": "/apis/on-page-api", "link_from": "https://dataforseo.com/apis/google-trends-api", "link_to": "https://dataforseo.com/apis/on-page-api", "link_attribute": null, "dofollow": true, "page_from_scheme": "https", "page_to_scheme": "https", "direction": "internal", "is_broken": false, "text": "On-Page API", "is_link_relation_conflict": false, "page_to_status_code": null } ] } ] } ] }
All POST data should be sent in the JSON format (UTF-8 encoding). The task setting is done using the POST method. When setting a task, you should send all task parameters in the task array of the generic POST array.
Description of the fields for setting a task:
Field name | Type | Description |
---|---|---|
id |
string | ID of the task required field you can get this ID in the response of the Task POST endpoint example: “07131248-1535-0216-1000-17384017ad04” |
page_from |
string | relative page URL optional field if you use this field, the API response will contain only links from the specified page note that in this field you can specify relative URLs only |
page_to |
string | relative page URL optional field if you use this field, the API response will contain only internal links pointing to the specified page note that in this field you can specify relative URLs only |
limit |
integer | the maximum number of returned links optional field default value: 100 maximum value: 1000 |
offset |
integer | offset in the results array of returned links optional field default value: 0 if you specify the 10 value, the first ten links in the results array will be omitted and the data will be provided for the successive links |
filters |
array | array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and , or between the conditionsthe following operators are supported: regex , not_regex , = , <> , in , not_in , like , not_like you can use the % operator with like and not_like to match any string of zero or more charactersexample: ["direction","=","external"]
The full list of possible filters is available by this link. |
tag |
string | user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response |
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.
Description of the fields in the results array:
Field name | Type | Description |
---|---|---|
version |
string | the current version of the API |
status_code |
integer | general status code you can find the full list of the response codes here Note: we strongly recommend designing a necessary system for handling related exceptional or error conditions |
status_message |
string | general informational message you can find the full list of general informational messages here |
time |
string | execution time, seconds |
cost |
float | total tasks cost, USD |
tasks_count |
integer | the number of tasks in the tasks array |
tasks_error |
integer | the number of tasks in the tasks array returned with an error |
tasks |
array | array of tasks |
id |
string | task identifier unique task identifier in our system in the UUID format |
status_code |
integer | 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_message |
string | informational message of the task you can find the full list of general informational messages here |
time |
string | execution time, seconds |
cost |
float | cost of the task, USD |
result_count |
integer | number of elements in the result array |
path |
array | URL path |
data |
object | contains the same parameters that you specified in the POST request |
result |
array | array of results |
crawl_progress |
string | status of the crawling session possible values: in_progress , finished |
crawl_status |
object | details of the crawling session |
max_crawl_pages |
integer | maximum number of pages to crawl indicates the max_crawl_pages limit you specified when setting a task |
pages_in_queue |
integer | number of pages that are currently in the crawling queue |
pages_crawled |
integer | number of crawled pages |
total_items_count |
integer | total number of relevant items in the database |
items_count |
integer | number of items in the results array |
items |
array | items array |
anchor link | ||
type |
string | type of the link = ‘anchor’ <a> tag |
domain_from |
string | referring domain the link was found on this domain |
domain_to |
string | referenced domain the link is pointing to this domain |
page_from |
string | referring page relative URL of the page on which the link was found |
page_to |
string | referenced page relative URL of the page to which the link is pointing |
link_from |
string | referring page absolute URL of the page on which the link was found |
link_to |
string | referenced page absolute URL of the page to which the link is pointing |
link_attribute |
array | link attribute added to external link indicates link attributes added to the link_to on the page_from example: ["ugc","noopener"] |
dofollow |
boolean | indicates whether the link is dofollow if the value is true , the link doesn’t have a rel="nofollow" attribute |
page_from_scheme |
string | url scheme of the referring page |
page_to_scheme |
string | url scheme of the referenced page |
direction |
string | direction of the link possible values: internal , external |
is_broken |
boolean | link is broken indicates whether a link is directing to a broken page or resource |
text |
string | anchor text |
is_link_relation_conflict |
boolean | indicates that the link may have a conflict with another link if true , at least one link pointing to link_to has a rel="nofollow" attribute and at least one is dofollow |
page_to_status_code |
integer | status code of the referenced page status code of the page to which the link is pointing |
image link | ||
type |
string | type of the link = ‘image’ <img> tag contained in the <a> tag |
domain_from |
string | referring domain the link was found on this domain |
domain_to |
string | referenced domain the link is pointing to this domain |
page_from |
string | referring page relative URL of the page on which the link was found |
page_to |
string | referenced page relative URL of the page to which the link is pointing |
link_from |
string | referring page absolute URL of the page on which the link was found |
link_to |
string | referenced page absolute URL of the page to which the link is pointing |
link_attribute |
array | link attribute added to external link indicates link attributes added to the link_to on the page_from ["ugc","noopener"] |
dofollow |
boolean | indicates whether the link is dofollow if the value is true , the link doesn’t have a rel="nofollow" attribute |
page_from_scheme |
string | url scheme of the referring page |
page_to_scheme |
string | url scheme of the referenced page |
direction |
string | direction of the link possible values: internal , external |
is_broken |
boolean | link is broken indicates whether a link is directing to a broken page or resource |
text |
string | image text |
image_alt |
string | alternative text for the image |
image_src |
string | url of the image |
is_link_relation_conflict |
boolean | indicates that the link may have a conflict with another link if true , at least one link pointing to link_to has a rel="nofollow" attribute and at least one is dofollow |
page_to_status_code |
integer | status code of the referenced page status code of the page to which the link is pointing |
link tag link | ||
type |
string | type of the link = ‘link’ <link> tag |
domain_from |
string | referring domain the link was found on this domain |
domain_to |
string | referenced domain the link is pointing to this domain |
page_from |
string | referring page relative URL of the page on which the link was found |
page_to |
string | referenced page relative URL of the page to which the link is pointing |
link_from |
string | referring page absolute URL of the page on which the link was found |
link_to |
string | referenced page absolute URL of the page to which the link is pointing |
dofollow |
boolean | indicates whether the link is dofollow if the value is true , the link doesn’t have a rel="nofollow" attribute |
page_from_scheme |
string | url scheme of the referring page |
page_to_scheme |
string | url scheme of the referenced page |
direction |
string | direction of the link possible values: internal , external |
is_broken |
boolean | link is broken indicates whether a link is directing to a broken page or resource |
is_link_relation_conflict |
boolean | indicates that the link may have a conflict with another link if true , at least one link pointing to link_to has a rel="nofollow" attribute and at least one is dofollow |
page_to_status_code |
integer | status code of the referenced page status code of the page to which the link is pointing |
canonical link | ||
type |
string | type of the link = ‘canonical’ <meta rel=”canonical”> tag |
domain_from |
string | referring domain the link was found on this domain |
domain_to |
string | referenced domain the link is pointing to this domain |
page_from |
string | referring page relative URL of the page on which the link was found |
page_to |
string | referenced page relative URL of the page to which the link is pointing |
link_from |
string | referring page absolute URL of the page on which the link was found |
link_to |
string | referenced page absolute URL of the page to which the link is pointing |
dofollow |
boolean | indicates whether the link is dofollow if the value is true , the link doesn’t have a rel="nofollow" attribute |
page_from_scheme |
string | url scheme of the referring page |
page_to_scheme |
string | url scheme of the referenced page |
direction |
string | direction of the link possible values: internal , external |
is_broken |
boolean | link is broken indicates whether a link is directing to a broken page or resource |
is_link_relation_conflict |
boolean | indicates that the link may have a conflict with another link if true , at least one link pointing to link_to has a rel="nofollow" attribute and at least one is dofollow |
page_to_status_code |
integer | status code of the referenced page status code of the page to which the link is pointing |
meta link | ||
type |
string | type of the link = ‘meta’ <meta http-equiv=”refresh” content=”X;url=https://wikipedia.org”> tag |
domain_from |
string | referring domain the link was found on this domain |
domain_to |
string | referenced domain the link is pointing to this domain |
page_from |
string | referring page relative URL of the page on which the link was found |
page_to |
string | referenced page relative URL of the page to which the link is pointing |
link_from |
string | referring page absolute URL of the page on which the link was found |
link_to |
string | referenced page absolute URL of the page to which the link is pointing |
dofollow |
boolean | indicates whether the link is dofollow if the value is true , the link doesn’t have a rel="nofollow" attribute |
page_from_scheme |
string | url scheme of the referring page |
page_to_scheme |
string | url scheme of the referenced page |
direction |
string | direction of the link possible values: internal , external |
is_broken |
boolean | link is broken indicates whether a link is directing to a broken page or resource |
is_link_relation_conflict |
boolean | indicates that the link may have a conflict with another link if true , at least one link pointing to link_to has a rel="nofollow" attribute and at least one is dofollow |
page_to_status_code |
integer | status code of the referenced page status code of the page to which the link is pointing |
alternate link | ||
type |
string | type of the link = ‘alternate’ <link rel=”alternate”> tag |
domain_from |
string | referring domain the link was found on this domain |
domain_to |
string | referenced domain the link is pointing to this domain |
page_from |
string | referring page relative URL of the page on which the link was found |
page_to |
string | referenced page relative URL of the page to which the link is pointing |
link_from |
string | referring page absolute URL of the page on which the link was found |
link_to |
string | referenced page absolute URL of the page to which the link is pointing |
dofollow |
boolean | indicates whether the link is dofollow if the value is true , the link doesn’t have a rel="nofollow" attribute |
page_from_scheme |
string | url scheme of the referring page |
page_to_scheme |
string | url scheme of the referenced page |
direction |
string | direction of the link possible values: internal , external |
is_broken |
boolean | link is broken indicates whether a link is directing to a broken page or resource |
is_link_relation_conflict |
boolean | indicates that the link may have a conflict with another link if true , at least one link pointing to link_to has a rel="nofollow" attribute and at least one is dofollow |
page_to_status_code |
integer | status code of the referenced page status code of the page to which the link is pointing |
redirect link | ||
type |
string | type of the link = ‘redirect’ HTTP redirect with 3xx status code |
domain_from |
string | referring domain the link was found on this domain |
domain_to |
string | referenced domain the link is pointing to this domain |
page_from |
string | referring page relative URL of the page on which the link was found |
page_to |
string | referenced page relative URL of the page to which the link is pointing |
link_from |
string | referring page absolute URL of the page on which the link was found |
link_to |
string | referenced page absolute URL of the page to which the link is pointing |
dofollow |
boolean | indicates whether the link is dofollow if the value is true , the link doesn’t have a rel="nofollow" attribute |
page_from_scheme |
string | url scheme of the referring page |
page_to_scheme |
string | url scheme of the referenced page |
direction |
string | direction of the link possible values: internal , external |
is_broken |
boolean | link is broken indicates whether a link is directing to a broken page or resource |
is_link_relation_conflict |
boolean | indicates that the link may have a conflict with another link if true , at least one link pointing to link_to has a rel="nofollow" attribute and at least one is dofollow |
page_to_status_code |
integer | status code of the referenced page status code of the page to which the link is pointing |