---
metadata:
  - name: generator
    content: Diplodoc Platform v5.44.0
alternate:
  - https://yandex.ru/dev/webmaster/doc/en/reference/host-links-internal-samples.md
  - https://yandex.ru/dev/webmaster/doc/ru/reference/host-links-internal-samples.md
keywords:
  - s
  - i
  - t
  - e
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/webmaster/doc/en/llms.txt


# Getting information about broken internal links on the site

Returns examples of broken internal links on the site. The list of link examples is based on the data from the Yandex robot. The link is considered broken if there is an error in the URL of the page, the URL of the page changed or the page doesn't exist.

## Request format

```
GET https://api.webmaster.yandex.net/v4/user/{[user-id](*user-id)}/hosts/{[host-id](*host-id)}/links/internal/broken/samples
  ? [[offset](*offset)=<int32>]
  & [[limit](*limit)=<int32>]
  & [[indicator](*broken_link_indicator)=<string>]
```

#|
||
`user-id`
|
<!-- source: en/_includes/popups.md -->
Type: `int64`. User ID. Required when calling all Yandex.Webmaster API resources. To get it, use the [GET /v4/user](https://yandex.ru/dev/webmaster/doc/en/reference/user.md) method.
<!-- endsource: en/_includes/popups.md -->
||
||
`host-id`
|
<!-- source: en/_includes/popups.md -->
Type: `host id (string)`. The site ID. To get it, use the [GET /v4/user/{user-id}/hosts](https://yandex.ru/dev/webmaster/doc/en/reference/hosts.md) method.
<!-- endsource: en/_includes/popups.md -->
||
||
`offset`
|
<!-- source: en/_includes/popups.md -->
Offset in the list. The minimum value is 0. Default value: 0.
<!-- endsource: en/_includes/popups.md -->
||
||
`limit`
|
Page size (1-100). Default value: 10.
||
||
`indicator`
|
<!-- source: en/_includes/popups.md -->
The broken link indicator — the reason the link doesn't work ([ApiInternalLinksBrokenIndicator](*api-internal-links-broken-indicator)). You can specify multiple indicators. For example, `indicator=SITE_ERROR&indicator=DISALLOWED_BY_USER`.

If the indicator is omitted, the report will contain all link types.
<!-- endsource: en/_includes/popups.md -->
||
|#

<!-- source: en/_includes/reference/api-internal-links-broken-indicator.md -->
### Internal link indicators (ApiInternalLinksBrokenIndicator) {#api-internal-links-broken-indicator}

#|
||
**Indicator** | **Description**
||
||
`SITE_ERROR`
|
The total number of known external links to the site.
||
||
`DISALLOWED_BY_USER`
|
The page doesn't exist or [is prohibited from indexing](https://yandex.com/support/webmaster/adding-site/indexing-prohibition.html).
||
||
`UNSUPPORTED_BY_ROBOT`
|
Not supported by the main Search indexing robot.
||
|#
<!-- endsource: en/_includes/reference/api-internal-links-broken-indicator.md -->

## Response format

### Examples

> 
> {% list tabs %}
> 
> - JSON
> 
>   
>   ```javascript
>   {
>     "count": 1,
>     "links": [
>       {
>         "source_url": "http://example.com/page1/",
>         "destination_url": "https://example.com/page2/",
>         "discovery_date": "2019-01-01",
>         "source_last_access_date": "2019-01-01",
>       }, ...
>     ]
>   }
>   ```
>   
> 
> - XML
> 
>   
>   ```xml
>   <Data>
>       <[count](*count)>1</count>
>       <link>
>           <[source_url](*source_url)>https://example.com/page1/</source_url>
>           <[destination_url](*destination_url)>https://example.com/page2/</destination_url>
>           <[discovery_date](*discovery_date)>2019-01-01</discovery_date>
>           <[source_last_access_date](*source_last_access_date)>2019-01-01</source_last_access_date>
>       </link>
>       ...
>   </Data>
>   ```
> 
> {% endlist %}

#|
|| **Name** | **Required** | **Type** | **Description** ||
|| `count` | Yes | `int64` | The number of example links available. ||
|| `source_url` | Yes | `string` | The URL of the page that contains the link to the site. ||
|| `destination_url` | Yes | `url` | The target page URL (where the link points to). ||
|| `discovery_date` | Yes | `Date` | The date when the link was detected. ||
|| `source_last_access_date` | Yes | `Date` | The date when the robot last visited the target page. ||
|#

## Response codes

To view the response structure in detail, click the reason.

#|
||
**Code** | **Reason** | **Description**
||
||
200 | OK | 
||
||
403
|
[INVALID_USER_ID](https://yandex.ru/dev/webmaster/doc/en/reference/errors.md#invalid-user-id) | The ID of the user who issued the token differs from the one specified in the request. In the examples below, `{user_id}` shows the correct `uid` of the OAuth token owner.

{% list tabs %}

- JSON

  ```json 
  {   
      "error_code": "INVALID_USER_ID",   
      "available_user_id": 1,   
      "error_message": "Invalid user id. {user_id} should be used." 
  }
  ```

- XML

  ```xml 
  <Data>     
      <[error_code](*error_code)>INVALID_USER_ID</error_code>     
      <[available_user_id](*available_user_id)>1</available_user_id>     
      <[error_message](*error_message)>Invalid user id. {user_id} should be used.</error_message> 
  </Data>
  ```

{% endlist %}
||
||
404
|
[HOST_NOT_VERIFIED](https://yandex.ru/dev/webmaster/doc/en/reference/errors.md#host-not-verif) | Site management rights are not verified.

{% list tabs %}

- JSON

  ```json 
  {   
      "error_code": "HOST_NOT_VERIFIED",   
      "host_id": "http:ya.ru:80",   
      "error_message": "some string" 
  }
  ```

- XML

  ```xml 
  <Data>   
      <[error_code](*error_code)>HOST_NOT_VERIFIED</error_code>     
      <[host_id](*host_id)>http:ya.ru:80</host_id>   
      <[error_message](*error_message)>some string</error_message> 
  </Data>
  ```

{% endlist %}
||
|#

### Related information

- [Error codes and statuses](https://yandex.ru/dev/webmaster/doc/en/reference/errors.md)




[*user-id]: Type: `int64`. User ID. Required when calling all Yandex.Webmaster API resources. To get it, use the [GET /v4/user](https://yandex.ru/dev/webmaster/doc/en/reference/user.md) method.

[*host-id]: Type: `host id (string)`. The site ID. To get it, use the [GET /v4/user/{user-id}/hosts](https://yandex.ru/dev/webmaster/doc/en/reference/hosts.md) method.

[*offset]: Offset in the list. The minimum value is 0. Default value: 0.

[*limit]:  Page size (1-100). Default value: 10.

[*broken_link_indicator]:  The broken link indicator — the reason the link doesn't work ([ApiInternalLinksBrokenIndicator](*api-internal-links-broken-indicator)). You can specify multiple indicators. For example, `indicator=SITE_ERROR&indicator=DISALLOWED_BY_USER`.

If the indicator is omitted, the report will contain all link types.

[*api-internal-links-broken-indicator]: ### Internal link indicators (ApiInternalLinksBrokenIndicator) {#api-internal-links-broken-indicator}

#|
||
**Indicator** | **Description**
||
||
`SITE_ERROR`
|
The total number of known external links to the site.
||
||
`DISALLOWED_BY_USER`
|
The page doesn't exist or [is prohibited from indexing](https://yandex.com/support/webmaster/adding-site/indexing-prohibition.html).
||
||
`UNSUPPORTED_BY_ROBOT`
|
Not supported by the main Search indexing robot.
||
|#

[*error_code]: **Description**

Error code.

[*available_user_id]: **Description**

ID of the user who allowed access.

[*error_message]: **Description**

Error message.

[*host_id]: **Description**

ID of the requested site.

[*count]: **Required**

Yes

**Type**

`int64`

**Description**

The number of example links available.

[*source_url]: **Required**

Yes

**Type**

`string`

**Description**

The URL of the page that contains the link to the site.

[*destination_url]: **Required**

Yes

**Type**

`url`

**Description**

The target page URL (where the link points to).

[*discovery_date]: **Required**

Yes

**Type**

`Date`

**Description**

The date when the link was detected.

[*source_last_access_date]: **Required**

Yes

**Type**

`Date`

**Description**

The date when the robot last visited the target page.