> ## Documentation Index
> Fetch the complete documentation index at: https://www.conductor.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Conductor Monitoring Reporting API

> Extract data and metrics from your Conductor Monitoring account with the Reporting API.

## Getting Started

### Overview

Our Reporting API is used for extracting data and metrics from your Conductor Monitoring account. Typical use-cases include connecting several software solutions together to streamline your reporting tasks and integrating Conductor Monitoring in your client portal.

<Info>
  ### Important

  This support article is covering the current 2.0 version of Conductor Monitoring's Reporting API. We recommend using the Reporting API v2.0 for your reporting tasks and integrations as all new endpoints will be only supported on this version.

  The legacy Conductor Monitoring Reporting API version is still available. You can find the relevant support documentation and our migration guide in the [Conductor Monitoring Reporting API V1.0](/docs/other-apis/conductor-monitoring-reporting-api-v10-legacy/) article.

  Please note that while the legacy Reporting API v1.0 remains available at the moment, it will likely be deprecated in the future. Therefore we highly recommend using (and migrating to) the Reporting API v2.0.

  Note!

  Conductor provides APIs for several different uses across its Conductor Monitoring and Conductor Intelligence products. This article describes Conductor Monitoring's Reporting API. If you are looking for information about a different API offering, consider the following articles:

  * [Conductor's Data API](/docs/api/introduction/)
  * [Conductor Intelligence's User Management API](/docs/other-apis/user-management/conductors-user-management-api/)
  * [Conductor Monitoring's CMS API](/docs/other-apis/cms-api/)
  * [Conductor Monitoring's Data Enrichment API](/docs/other-apis/data-enrichment-api/)
</Info>

### Reporting API Terms of Use

By using the Reporting API you agree to the [Terms of Use](https://www.contentkingapp.com/legal/terms-of-use/).

### Authentication

#### Get your API integration token

To use Conductor Monitoring's Reporting API you need to get your account's Reporting API token. You'll find it in the **Integration Tokens** section under the **Account** tab in the main **Account** section.

<img src="https://mintcdn.com/conductor-0f65a05d/UK5ucqFRcqQvCZeo/images/other-apis/cms-api--contentking-retrieving-cms-api-token_2x.png?fit=max&auto=format&n=UK5ucqFRcqQvCZeo&q=85&s=f9aa6ec118b8fcbf8fd94010f0b267b8" alt="" width="1200" height="492" data-path="images/other-apis/cms-api--contentking-retrieving-cms-api-token_2x.png" />

#### Configure your request headers

To authenticate your requests, you need to include the following request headers:

```
Authorization: token {place-your-API-token-here}
Content-Type: application/json
```

<Warning>
  ### Note!

  The value for the **Authorization** header must be the string "token" followed by a space and then your actual API token.
</Warning>

### Rate limits

The Reporting API uses rate limits to ensure API request traffic can be handled efficiently. Rate limits define the maximum number of requests which can be made in a given time range.

Conductor Monitoring’s Reporting API has the following rate limits:

* 6 requests/second/requester IP address
* When the limit is hit the API returns a `429` status code for 1 minute

Note that there is no maximum number of calls you can make to this API.

## Using the Conductor Monitoring Reporting API

### Base URL

Conductor Monitoring Reporting API is available on the following URL:

```
https://api.cm.conductor.com/
```

### Retrieving a list of websites in your account

#### /v2/entities/websites

#### Request Body

None

#### Responses

<table><tbody><tr><td>200</td><td><p>Successful query execution</p><p><strong>Schema: </strong>See below</p><p><strong>Example</strong></p><pre class="language-json"> \{
"data": \[
\{
"id": "1-234",
"app\_url": "[https://app.cm.conductor.com/websites/1-234/dashboard](https://app.cm.conductor.com/websites/1-234/dashboard)",
"domain": "[https://www.conductor.com](https://www.conductor.com)",
"name": "null",
"page\_capacity": 1000
},
\{
"id": "1-2345",
"app\_url": "[https://app.cm.conductor.com/websites/1-2345/dashboard](https://app.cm.conductor.com/websites/1-2345/dashboard)",
"domain": "[https://www.conductor.de](https://www.conductor.de)",
"name": "Conductor Monitoring - DE",
"page\_capacity": 1000
},
]
}</pre></td></tr><tr><td>401</td><td><p>Unauthorized:</p><ul><li>Missing authentication token. The request was received but it's lacking an authorization token and can therefore not be processed. Make sure to correctly set the Authorization header.</li><li>Authentication failed. The request could not be processed because the supplied API token is invalid or expired.</li></ul><p><strong>Examples</strong></p><pre><code class="language-plain">\{
"code": "auth\_missing\_token",
"message": "Authentication token must be passed in Authorization HTTP header.",
"errors": \[]
}
or
\{
"code": "auth\_failed",
"message": "Authentication token is expired or invalid.",
"errors": \[]
}</code></pre></td></tr><tr><td>403</td><td><p>Forbidden:</p><ul><li>Terms of use not accepted. You have not accepted Reporting API Terms of Use yet. You need to accept them in Account Settings before you start using Conductor Monitoring Reporting API.</li><li>Our CDN is blocking your user agent, which might be a generic or default user agent like Python urllib3. Changing the user agent to something less generic or more closely resembling a browser often bypasses these restrictions.</li></ul><p><strong>Example</strong></p><pre><code class="language-plain">\{
"code": "terms\_of\_use\_not\_accepted",
"message": "Reporting API Terms of Use have not been accepted yet. Please accept Terms of Use in Account Settings.",
"errors": \[]
}</code></pre></td></tr><tr><td>404</td><td><p>Not found</p><p><strong>Example</strong></p><pre><code class="language-plain">\{
"error": "Requested website ID was not found"
}</code></pre></td></tr><tr><td>422</td><td><p>Unprocessable Entity.</p><ul><li>The request was received, but the authorization wasn't formatted correctly. Make sure to correctly configure the Authorization header as described in the <strong>Authentication</strong> section above.</li></ul></td></tr></tbody></table>

#### Schema data types for this endpoint

<table><tbody><tr><td><strong>Property</strong></td><td><strong>Data Type</strong></td></tr><tr><td><code>id</code></td><td>string</td></tr><tr><td><code>app\_url</code></td><td>string (absolute URL)</td></tr><tr><td><code>domain</code></td><td>string (absolute URL)</td></tr><tr><td><code>name</code></td><td>string</td></tr><tr><td><code>page\_capacity</code></td><td>integer</td></tr></tbody></table>

### Retrieving a list of segments for a website

#### /v2/entities/segments?website\_id=\{website\_id}

Send this request—using a website ID—to get a list of segments for a specific website in your account.

#### Request Path Parameters

`website_id` (Required). Can be inferred from the `GET /v2/entities/websites` endpoint described above.

#### Request Response

<table><tbody><tr><td>200</td><td><p>Successful query execution</p><p><strong>Schema: </strong>See below</p><p><strong>Example</strong></p><pre class="language-json"> \{
"data": \[
\{
"id": "1",
"color": "bf86d5",
"label": "Important pages",
"shortcode": null
},
\{
"id": "2",
"color": "72c035",
"label": "Indexable",
"shortcode": null
},
]
}</pre></td></tr><tr><td>401</td><td><p>Unauthorized:</p><ul><li>Missing authentication token. The request was received but it's lacking an authorization token and can therefore not be processed. Make sure to correctly set the Authorization header.</li><li>Authentication failed. The request could not be processed because the supplied API token is invalid or expired.</li></ul><p><strong>Examples</strong></p><pre><code class="language-plain">\{
"code": "auth\_missing\_token",
"message": "Authentication token must be passed in Authorization HTTP header.",
"errors": \[]
}
or
\{
"code": "auth\_failed",
"message": "Authentication token is expired or invalid.",
"errors": \[]
}</code></pre></td></tr><tr><td>403</td><td><p>Forbidden:</p><ul><li>Terms of use not accepted. You have not accepted Reporting API Terms of Use yet. You need to accept them in Account Settings before you start using Conductor Monitoring Reporting API.</li><li>Our CDN is blocking your user agent, which might be a generic or default user agent like Python urllib3. Changing the user agent to something less generic or more closely resembling a browser often bypasses these restrictions.</li></ul><p><strong>Example</strong></p><pre><code class="language-plain">\{
"code": "terms\_of\_use\_not\_accepted",
"message": "Reporting API Terms of Use have not been accepted yet. Please accept Terms of Use in Account Settings.",
"errors": \[]
}</code></pre></td></tr><tr><td>404</td><td><p>Not found</p><p><strong>Example</strong></p><pre><code class="language-plain">\{
"error": "Requested website ID was not found"
}</code></pre></td></tr><tr><td>422</td><td><p>Unprocessable Entity.</p><ul><li>The request was received, but the authorization wasn't formatted correctly. Make sure to correctly configure the Authorization header as described in the <strong>Authentication</strong> section above.</li></ul></td></tr></tbody></table>

#### Schema data types for this endpoint

<table><tbody><tr><td><strong>Property</strong></td><td><strong>Data Type</strong></td></tr><tr><td><code>id</code></td><td>string</td></tr><tr><td><code>color</code></td><td>string</td></tr><tr><td><code>label</code></td><td>string</td></tr><tr><td><code>shortcode</code></td><td>string</td></tr></tbody></table>

### Retrieving statistics for a website or website's segment

#### /v2/data/statistics?website\_id=\{website\_id}

Use this endpoint to pull data for one of your tracked websites or for a part of a tracked website.

#### Request Path Parameters

`website_id` (Required). Can be inferred from the `GET /v2/entities/websites` endpoint described above.

#### Query Parameters

`scope` (Required). Determines whether data for the whole website is returned or specific parts. Potential values:

* `website`. Retrieves data for the whole website.
* `segment:{segment_id}`. Retrieves data for a specific segment. Segment IDs can be inferred with the `GET /v2/entities/segments` endpoint described above.
* `segment_label:{segment_label}`. Retrieves data for a specific segment. Segment label can be inferred from the `GET /v2/entities/segments` endpoint described above.

#### Request Responses

<table><tbody><tr><td>200</td><td><p>Successful query execution</p><p><strong>Schema: </strong>See below</p><p><strong>Example</strong></p><pre class="language-json"> \{
"data": \{
"health": 916,
"number\_of\_issues": 1234,
"number\_of\_urls": \{
"missing": 0,
"page": 123,
"redirect": 0,
"server\_error": 0,
"unreachable": 0
},
"number\_of\_urls\_per\_property": \{
"h1": \{
"available": 123,
"empty": 0,
"missing": 0
},
"health": \{
"0-100": 0,
"100-200": 0,
"200-300": 0,
"300-400": 0,
"400-500": 0,
"500-600": 0,
"600-700": 0,
"700-800": 0,
"800-900": 0,
"900-1000": 1234
},
"hreflang\_language": \{
"en": 1234,
"missing": 0,
"others": 0
},
"is\_disallowed\_in\_robots\_txt": \{
"true": 0,
"false": 1234
},
"is\_in\_sitemap": \{
"true": 1234,
"false": 0
},
"is\_indexable": \{
"true": 1234,
"false": 0
},
"is\_indexable\_due\_to\_meta\_robots": \{
"no": 0,
"not\_applicable": 0,
"yes": 1234
},
"is\_indexable\_due\_to\_x\_robots\_tag": \{
"no": 0,
"not\_applicable": 0,
"yes": 1234
},
"is\_linked": \{
"true": 1234,
"false": 0
},
"meta\_description": \{
"available": 1234,
"empty": 0,
"missing": 0
},
"open\_graph\_description": \{
"available": 1234,
"empty": 0,
"missing": 0
},
"open\_graph\_image": \{
"available": 1234,
"empty": 0,
"missing": 0
},
"open\_graph\_title": \{
"available": 1234,
"empty": 0,
"missing": 0
},
"open\_graph\_type": \{
"empty": 0,
"missing": 0,
"others": 0,
"values": \{
"article": 1230,
"website": 2,
"object": 2
}
},
"open\_graph\_url": \{
"available": 1234,
"empty": 0,
"missing": 0
},
"importance": \{
"0-1": 0,
"1-2": 0,
"2-3": 0,
"3-4": 109,
"4-5": 109,
"5-6": 103,
"6-7": 43,
"7-8": 28,
"8-9": 16,
"9-10": 800
},
"status\_code": \{
"200": 1234
},
"title": \{
"available": 1234,
"empty": 0,
"missing": 0
},
"twitter\_card": \{
"empty": 0,
"missing": 0,
"others": 0,
"values": \{
"summary\_large\_image": 1234
}
},
"twitter\_description": \{
"available": 1234,
"empty": 0,
"missing": 0
},
"twitter\_image": \{
"available": 1234,
"empty": 0,
"missing": 0
},
"twitter\_site": \{
"empty": 0,
"missing": 0,
"others": 0,
"values": \{
"@conductor": 1234
}
},
"twitter\_title": \{
"available": 1234,
"empty": 0,
"missing": 0
},
"is\_https": \{
"true": 1234,
"false": 0
},
"url\_depth": \{
"0": 1,
"1": 15,
"2": 399,
"3": 29,
"4": 1000,
"5": 0,
"6": 0,
"7": 0,
"8": 0,
"9": 0,
"10+": 0
},
"domain": \{
"[www.conductor.de](http://www.conductor.de)": 1234
},
"lighthouse\_cls": \{
"good": 1234,
"needsImprovement": 0,
"bad": 0
},
"lighthouse\_fcp": \{
"good": 1234,
"needsImprovement": 0,
"bad": 0
},
"lighthouse\_lcp": \{
"good": 1234,
"needsImprovement": 0,
"bad": 0
},
"lighthouse\_performance": \{
"good": 1234,
"needsImprovement": 0,
"bad": 0
},
"lighthouse\_si": \{
"good": 1234,
"needsImprovement": 0,
"bad": 0
},
"lighthouse\_tbt": \{
"good": 1234,
"needsImprovement": 0,
"bad": 0
},
"lighthouse\_tti": \{
"good": 1234,
"needsImprovement": 0,
"bad": 0
}
}
},
"data\_captured\_at": "2022-08-04T15:23:01+02:00",
"is\_data\_golden": false
}</pre></td></tr><tr><td>401</td><td><p>Unauthorized:</p><ul><li>Missing authentication token. The request was received but it's lacking an authorization token and can therefore not be processed. Make sure to correctly set the Authorization header.</li><li>Authentication failed. The request could not be processed because the supplied API token is invalid or expired.</li></ul><p><strong>Examples</strong></p><pre><code class="language-plain">\{
"code": "auth\_missing\_token",
"message": "Authentication token must be passed in Authorization HTTP header.",
"errors": \[]
}
or
\{
"code": "auth\_failed",
"message": "Authentication token is expired or invalid.",
"errors": \[]
}</code></pre></td></tr><tr><td>403</td><td><p>Forbidden:</p><ul><li>Terms of use not accepted. You have not accepted Reporting API Terms of Use yet. You need to accept them in Account Settings before you start using Conductor Monitoring Reporting API.</li><li>Our CDN is blocking your user agent, which might be a generic or default user agent like Python urllib3. Changing the user agent to something less generic or more closely resembling a browser often bypasses these restrictions.</li></ul><p><strong>Example</strong></p><pre><code class="language-plain">\{
"code": "terms\_of\_use\_not\_accepted",
"message": "Reporting API Terms of Use have not been accepted yet. Please accept Terms of Use in Account Settings.",
"errors": \[]
}</code></pre></td></tr><tr><td>404</td><td><p>Not found</p><p><strong>Example</strong></p><pre><code class="language-plain">\{
"error": "Requested website ID was not found"
}</code></pre></td></tr><tr><td>422</td><td><p>Unprocessable Entity.</p><ul><li>The request was received, but the authorization wasn't formatted correctly. Make sure to correctly configure the Authorization header as described in the <strong>Authentication</strong> section above.</li></ul></td></tr></tbody></table>

#### Schema data types for this endpoint

<table><tbody><tr><td><strong>Property</strong></td><td><strong>Data Type</strong></td></tr><tr><td><code>health</code></td><td>integer</td></tr><tr><td><code>number\_of\_issues</code></td><td>integer</td></tr><tr><td><code>number\_of\_urls</code></td><td>array</td></tr><tr><td><code>number\_of\_urls.page</code></td><td>integer</td></tr><tr><td><code>number\_of\_urls.missing</code></td><td>integer</td></tr><tr><td><code>number\_of\_urls.redirect</code></td><td>integer</td></tr><tr><td><code>number\_of\_urls.server\_error</code></td><td>integer</td></tr><tr><td><code>number\_of\_urls.unreachable</code></td><td>integer</td></tr><tr><td><code>number\_of\_urls\_per\_property</code></td><td>array</td></tr><tr><td><code>h1</code></td><td>array</td></tr><tr><td><code>h1.available</code></td><td>integer</td></tr><tr><td><code>h1.empty</code></td><td>integer</td></tr><tr><td><code>h1.missing</code></td><td>integer</td></tr><tr><td><code>health</code></td><td>array</td></tr><tr><td><code>health.0-100</code></td><td>integer</td></tr><tr><td><code>health.100-200</code></td><td>integer</td></tr><tr><td><code>health.200-300</code></td><td>integer</td></tr><tr><td><code>health.300-400</code></td><td>integer</td></tr><tr><td><code>health.400-500</code></td><td>integer</td></tr><tr><td><code>health.600-700</code></td><td>integer</td></tr><tr><td><code>health.800-900</code></td><td>integer</td></tr><tr><td><code>health.900-1000</code></td><td>integer</td></tr><tr><td><code>hreflang\_language</code></td><td>array</td></tr><tr><td><code>hreflang\_language.hreflang\_attribute</code></td><td>string</td></tr><tr><td><code>hreflang\_language.missing</code></td><td>integer</td></tr><tr><td><code>hreflang\_language.other</code></td><td>integer</td></tr><tr><td><code>is\_disallowed\_in\_robots\_txt</code></td><td>array</td></tr><tr><td><code>is\_disallowed\_in\_robots\_txt.true</code></td><td>integer</td></tr><tr><td><code>is\_disallowed\_in\_robots\_txt.false</code></td><td>integer</td></tr><tr><td><code>is\_in\_sitemap</code></td><td>array</td></tr><tr><td><code>is\_in\_sitemap.true</code></td><td>integer</td></tr><tr><td><code>is\_in\_sitemap.false</code></td><td>integer</td></tr><tr><td><code>is\_indexable</code></td><td>array</td></tr><tr><td><code>is\_indexable.true</code></td><td>integer</td></tr><tr><td><code>is\_indexable.false</code></td><td>integer</td></tr><tr><td><code>is\_indexable\_due\_to\_meta\_robots</code></td><td>array</td></tr><tr><td><code>is\_indexable\_due\_to\_meta\_robots.no</code></td><td>integer</td></tr><tr><td><code>is\_indexable\_due\_to\_meta\_robots.not\_applicable</code></td><td>integer</td></tr><tr><td><code>is\_indexable\_due\_to\_meta\_robots.yes</code></td><td>integer</td></tr><tr><td><code>is\_indexable\_due\_to\_x\_robots\_tag</code></td><td>array</td></tr><tr><td><code>is\_indexable\_due\_to\_x\_robots\_tag.no</code></td><td>integer</td></tr><tr><td><code>is\_linked</code></td><td>array</td></tr><tr><td><code>is\_linked.true</code></td><td>integer</td></tr><tr><td><code>is\_linked.false</code></td><td>integer</td></tr><tr><td><code>meta\_description</code></td><td>array</td></tr><tr><td><code>meta\_description.available</code></td><td>integer</td></tr><tr><td><code>meta\_description.empty</code></td><td>integer</td></tr><tr><td><code>meta\_description.missing</code></td><td>integer</td></tr><tr><td><code>open\_graph\_description</code></td><td>array</td></tr><tr><td><code>open\_graph\_description.available</code></td><td>integer</td></tr><tr><td><code>open\_graph\_description.empty</code></td><td>integer</td></tr><tr><td><code>open\_graph\_description.missing</code></td><td>integer</td></tr><tr><td><code>open\_graph\_image</code></td><td>array</td></tr><tr><td><code>open\_graph\_image.available</code></td><td>integer</td></tr><tr><td><code>open\_graph\_image.empty</code></td><td>integer</td></tr><tr><td><code>open\_graph\_image.missing</code></td><td>integer</td></tr><tr><td><code>open\_graph\_title</code></td><td>array</td></tr><tr><td><code>open\_graph\_title.available</code></td><td>integer</td></tr><tr><td><code>open\_graph\_title.empty</code></td><td>integer</td></tr><tr><td><code>open\_graph\_title.missing</code></td><td>integer</td></tr><tr><td><code>open\_graph\_type</code></td><td>array</td></tr><tr><td><code>open\_graph\_type.empty</code></td><td>integer</td></tr><tr><td><code>open\_graph\_type.missing</code></td><td>integer</td></tr><tr><td><code>open\_graph\_type.others</code></td><td>integer</td></tr><tr><td><code>open\_graph\_type.values</code></td><td>array</td></tr><tr><td><code>open\_graph\_type.values.name</code></td><td>integer</td></tr><tr><td><code>open\_graph\_URL</code></td><td>array</td></tr><tr><td><code>open\_graph\_URL.available</code></td><td>integer</td></tr><tr><td><code>open\_graph\_URL.empty</code></td><td>integer</td></tr><tr><td><code>open\_graph\_URL.missing</code></td><td>integer</td></tr><tr><td><code>importance</code></td><td>array</td></tr><tr><td><code>importance.0-1</code></td><td>integer</td></tr><tr><td><code>importance.1-2</code></td><td>integer</td></tr><tr><td><code>importance.2-3</code></td><td>integer</td></tr><tr><td><code>importance.3-4</code></td><td>integer</td></tr><tr><td><code>importance.4-5</code></td><td>integer</td></tr><tr><td><code>importance.6-7</code></td><td>integer</td></tr><tr><td><code>importance.8-9</code></td><td>integer</td></tr><tr><td><code>importance.9-10</code></td><td>integer</td></tr><tr><td><code>status\_code</code></td><td>array</td></tr><tr><td><code>status\_code.value</code></td><td>integer</td></tr><tr><td><code>title</code></td><td>array</td></tr><tr><td><code>title.available</code></td><td>integer</td></tr><tr><td><code>title.empty</code></td><td>integer</td></tr><tr><td><code>title.missing</code></td><td>integer</td></tr><tr><td><code>twitter\_card</code></td><td>array</td></tr><tr><td><code>twitter\_card.empty</code></td><td>integer</td></tr><tr><td><code>twitter\_card.missing</code></td><td>integer</td></tr><tr><td><code>twitter\_card.others</code></td><td>integer</td></tr><tr><td><code>twitter\_card.values</code></td><td>array</td></tr><tr><td><code>twitter\_card.values\_name</code></td><td>integer</td></tr><tr><td><code>twitter\_description</code></td><td>array</td></tr><tr><td><code>twitter\_description.available</code></td><td>integer</td></tr><tr><td><code>twitter\_description.empty</code></td><td>integer</td></tr><tr><td><code>twitter\_description.missing</code></td><td>integer</td></tr><tr><td><code>twitter\_image</code></td><td>array</td></tr><tr><td><code>twitter\_image.available</code></td><td>integer</td></tr><tr><td><code>twitter\_image.empty</code></td><td>integer</td></tr><tr><td><code>twitter\_image.missing</code></td><td>integer</td></tr><tr><td><code>twitter\_site</code></td><td>array</td></tr><tr><td><code>twitter\_site.empty</code></td><td>integer</td></tr><tr><td><code>twitter\_site.missing</code></td><td>integer</td></tr><tr><td><code>twitter\_site.others</code></td><td>integer</td></tr><tr><td><code>twitter\_site.values</code></td><td>array</td></tr><tr><td><code>twitter\_site.values.name</code></td><td>integer</td></tr><tr><td><code>twitter\_title</code></td><td>array</td></tr><tr><td><code>twitter\_title.available</code></td><td>integer</td></tr><tr><td><code>twitter\_title.empty</code></td><td>integer</td></tr><tr><td><code>twitter\_title.missing</code></td><td>integer</td></tr><tr><td><code>is\_https</code></td><td>array</td></tr><tr><td><code>is\_https.true</code></td><td>boolean</td></tr><tr><td><code>is\_https.false</code></td><td>boolean</td></tr><tr><td><code>url\_depth</code></td><td>array</td></tr><tr><td><code>url\_depth.0</code></td><td>integer</td></tr><tr><td><code>url\_depth.1</code></td><td>integer</td></tr><tr><td><code>url\_depth.2</code></td><td>integer</td></tr><tr><td><code>url\_depth.3</code></td><td>integer</td></tr><tr><td><code>url\_depth.4</code></td><td>integer</td></tr><tr><td><code>url\_depth.6</code></td><td>integer</td></tr><tr><td><code>url\_depth.7</code></td><td>integer</td></tr><tr><td><code>url\_depth.8</code></td><td>integer</td></tr><tr><td><code>url\_depth.9</code></td><td>integer</td></tr><tr><td><code>url\_depth.10+</code></td><td>integer</td></tr><tr><td><code>domain</code></td><td>array</td></tr><tr><td><code>domain\_name</code></td><td>string</td></tr><tr><td><code>data\_captured\_at</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>is\_data\_golden</code></td><td>boolean</td></tr></tbody></table>

#### Specific errors when requesting statistics

```
404 Not found

{
  "error": "No statistics found for given scope"
}
```

This response means that the statistics for the given scope (website or segment) are not available at this time. They may or may not become available at a later time, depending on the actual content of the scope.

### Retrieving list of pages for a website

#### /v2/data/pages

Use this endpoint to pull a list of pages belonging to one of your tracked websites or for a part of a tracked website.

#### Query Parameters

`website_id` (Required). Can be inferred from the `GET /v2/entities/websites` endpoint described above.

***

`per_page` (Required). Can be used with `page` and `page_cursor` for pagination. Value can be in range from `1` to `1000`.

***

`page` (Optional) Can be used with `per_page` and `page_cursor` for pagination. Value can be `1` up to `ceil`(total / `per_page`). If `page` is higher than the maximum value, the `urls` array will be empty.

***

`page_cursor` (Optional). Can be used with `page` and `per_page` for pagination. Value should be a string retrieved from the `next_page_cursor` object in the request response for the previous page.

***

`sort` and `direction` (Optional). Can be used to determine sort order.

* `sort` should be set to `url`
* `direction` can be either `asc` or `desc`

<Info>
  ### Important

  Make sure to use the `page_cursor` parameter when retrieving large paginated datasets to ensure smooth performance of the API.

  The `page_cursor` parameter allows you to specify the exact point in the dataset where the previous page (response) ended and the next page should start, optimizing the process of retrieving large paginated datasets.

  The `page_cursor` parameter takes precedence over the page parameter. This means that if the `page_cursor` parameter is used in the request URL, the page parameter should not be used at the same time.
</Info>

#### Request Responses

<table><tbody><tr><td>200</td><td><p>Successful query execution. Each successful response contains 2 main keys:</p><ul><li><code>total</code> count of URLs in result set for given query</li><li><code>urls</code> paginated URLs based on query parameters <code>per\_page</code>, <code>page</code>, and <code>page\_cursor</code></li></ul><p><strong>Schema: </strong>See below</p><p><strong>Example</strong></p><pre class="language-json">\{
"data": \{
"next\_page\_cursor": "WyIvencvY3NoZWxwL2FydGljbGUv2YPZit",
"total": 1,
"urls": \[
\{
"aa\_average\_time\_spent\_on\_site": null,
"aa\_bounce\_rate": null,
"aa\_page\_views": null,
"aa\_revenue": null,
"aa\_unique\_visitors": null,
"analytics\_services": \[
"google\_analytics"
],
"app\_url": "[https://app.cm.conductor.com/websites/1-2345/pages/123456](https://app.cm.conductor.com/websites/1-2345/pages/123456)",
"canonical": null,
"canonical\_type": "none",
"custom\_elements": \[],
"ga\_average\_time": null,
"ga\_bounce\_rate": null,
"ga\_page\_value": null,
"ga\_page\_views": null,
"ga\_unique\_page\_views": null,
"ga\_v4\_active\_users": null,
"ga\_v4\_average\_engagement\_time": null,
"ga\_v4\_engagement\_rate": null,
"ga\_v4\_screen\_page\_views": null,
"gsc\_clicks": null,
"gsc\_ctr": null,
"gsc\_impressions": null,
"gsc\_position": null,
"h1": "null",
"health": 920,
"hreflang\_language": null,
"is\_disallowed\_in\_robots\_txt": false,
"is\_https": false,
"is\_in\_sitemap": false,
"is\_indexable": false,
"is\_indexable\_due\_to\_meta\_robots": false,
"is\_indexable\_due\_to\_x\_robots\_tag": true,
"is\_linked": true,
"lfa\_bing\_desktop\_frequency": null,
"lfa\_bing\_desktop\_last\_visit": null,
"lfa\_bing\_frequency": null,
"lfa\_bing\_last\_visit": null,
"lfa\_bing\_mobile\_frequency": null,
"lfa\_bing\_mobile\_last\_visit": null,
"lfa\_google\_desktop\_frequency": null,
"lfa\_google\_desktop\_last\_visit": null,
"lfa\_google\_frequency": null,
"lfa\_google\_last\_visit": null,
"lfa\_google\_mobile\_frequency": null,
"lfa\_google\_mobile\_last\_visit": null,
"lfa\_openai\_bot\_frequency": null,
"lfa\_openai\_bot\_last\_visit": null,
"lfa\_openai\_desktop\_frequency": null,
"lfa\_openai\_desktop\_last\_visit": null,
"lfa\_openai\_frequency": null,
"lfa\_openai\_last\_visit": null,
"lfa\_openai\_search\_frequency": null,
"lfa\_openai\_search\_last\_visit": null,
"lfa\_openai\_user\_frequency": null,
"lfa\_openai\_user\_last\_visit": null,
"lfa\_perplexity\_bot\_frequency": null,
"lfa\_perplexity\_bot\_last\_visit": null,
"lfa\_perplexity\_desktop\_frequency": null,
"lfa\_perplexity\_desktop\_last\_visit": null,
"lfa\_perplexity\_frequency": null,
"lfa\_perplexity\_last\_visit": null,
"lfa\_perplexity\_user\_frequency": null,
"lfa\_perplexity\_user\_last\_visit": null,
"lighthouse\_cls": null,
"lighthouse\_fcp": null,
"lighthouse\_lcp": null,
"lighthouse\_performance": null,
"lighthouse\_si": null,
"lighthouse\_tbt": null,
"lighthouse\_tti": null,
"link\_amp": null,
"link\_next": null,
"link\_prev": null,
"meta\_description": "null",
"mobile\_variant": null,
"number\_of\_hreflangs": 0,
"number\_of\_incoming\_internal\_canonicals": 0,
"number\_of\_incoming\_internal\_links": 0,
"number\_of\_incoming\_internal\_redirects": 0,
"number\_of\_outgoing\_external\_links": 5,
"number\_of\_outgoing\_internal\_links": 147,
"open\_graph\_description": null,
"open\_graph\_image": null,
"open\_graph\_title": null,
"open\_graph\_type": null,
"open\_graph\_url": null,
"redirect": null,
"relevance": 3,
"schema\_org\_number\_of\_types": 0,
"schema\_org\_types": \[],
"segments": \[],
"status\_code": 200,
"tag\_managers": null,
"time\_document\_download": 12,
"title": "null",
"twitter\_card": null,
"twitter\_description": null,
"twitter\_image": null,
"twitter\_site": null,
"twitter\_title": null,
"type": "page",
"url": "[https://www.conductor.com/](https://www.conductor.com/)",
"url\_depth": 0,
"url\_path": "/",
"visual\_analytics\_services": null
}
]
},
"data\_captured\_at": "2022-08-16T11:24:27+02:00",
"is\_data\_golden": false
}</pre></td></tr><tr><td>401</td><td><p>Unauthorized:</p><ul><li>Missing authentication token. The request was received but it's lacking an authorization token and can therefore not be processed. Make sure to correctly set the Authorization header.</li><li>Authentication failed. The request could not be processed because the supplied API token is invalid or expired.</li></ul><p><strong>Examples</strong></p><pre><code class="language-plain">\{
"code": "auth\_missing\_token",
"message": "Authentication token must be passed in Authorization HTTP header.",
"errors": \[]
}
or
\{
"code": "auth\_failed",
"message": "Authentication token is expired or invalid.",
"errors": \[]
}</code></pre></td></tr><tr><td>403</td><td><p>Forbidden:</p><ul><li>Terms of use not accepted. You have not accepted Reporting API Terms of Use yet. You need to accept them in Account Settings before you start using Conductor Monitoring Reporting API.</li><li>Our CDN is blocking your user agent, which might be a generic or default user agent like Python urllib3. Changing the user agent to something less generic or more closely resembling a browser often bypasses these restrictions.</li></ul><p><strong>Example</strong></p><pre><code class="language-plain">\{
"code": "terms\_of\_use\_not\_accepted",
"message": "Reporting API Terms of Use have not been accepted yet. Please accept Terms of Use in Account Settings.",
"errors": \[]
}</code></pre></td></tr><tr><td>404</td><td><p>Not found</p><p><strong>Example</strong></p><pre><code class="language-plain">\{
"error": "Requested website ID was not found"
}</code></pre></td></tr><tr><td>422</td><td><p>Unprocessable Entity.</p><ul><li>The request was received, but the authorization wasn't formatted correctly. Make sure to correctly configure the Authorization header as described in the <strong>Authentication</strong> section above.</li></ul></td></tr></tbody></table>

#### Schema data types for this endpoint

<table><tbody><tr><td><strong>Property</strong></td><td><strong>Data Type</strong></td></tr><tr><td><code>next\_page\_cursor</code></td><td>string</td></tr><tr><td><code>urls</code></td><td>array</td></tr><tr><td><code>urls.aa\_average\_time\_spent\_on\_site</code></td><td>integer (seconds)</td></tr><tr><td><code>urls.aa\_bounce\_rate</code></td><td>float (percentage)</td></tr><tr><td><code>urls.aa\_page\_views</code></td><td>integer</td></tr><tr><td><code>urls.aa\_unique\_visitors</code></td><td>integer</td></tr><tr><td><code>urls.aa\_revenue</code></td><td>float</td></tr><tr><td><code>urls.analytics\_services</code></td><td>string</td></tr><tr><td><code>urls.app\_url</code></td><td>string</td></tr><tr><td><code>urls.canonical</code></td><td>string</td></tr><tr><td><code>urls.canonical\_type</code></td><td>string</td></tr><tr><td><code>urls.custom\_elements</code></td><td>array</td></tr><tr><td><code>urls.custom\_elements.custom\_element\_name</code></td><td>string/number/boolean/date (depending on configuration)</td></tr><tr><td><code>urls.ga\_average\_time</code></td><td>integer (seconds)</td></tr><tr><td><code>urls.ga\_bounce\_rate</code></td><td>float (percentage)</td></tr><tr><td><code>urls.ga\_page\_views</code></td><td>integer</td></tr><tr><td><code>urls.ga\_unique\_page\_views</code></td><td>integer</td></tr><tr><td><code>urls.ga\_page\_value</code></td><td>float</td></tr><tr><td><code>urls.ga\_v4\_active\_users</code></td><td>integer</td></tr><tr><td><code>urls.ga\_v4\_average\_engagement\_time</code></td><td>integer (seconds)</td></tr><tr><td><code>urls.ga\_v4\_engagement\_rate</code></td><td>float (percentage)</td></tr><tr><td><code>urls.ga\_v4\_screen\_page\_views</code></td><td>integer</td></tr><tr><td><code>urls.gsc\_clicks</code></td><td>integer</td></tr><tr><td><code>urls.gsc\_impressions</code></td><td>integer</td></tr><tr><td><code>urls.gsc\_ctr</code></td><td>float (percentage)</td></tr><tr><td><code>urls.gsc\_position</code></td><td>float</td></tr><tr><td><code>urls.gsc\_date\_range</code></td><td>array</td></tr><tr><td><code>urls.gsc\_date\_range.since</code></td><td>date (YYYY-MM-DD)</td></tr><tr><td><code>urls.gsc\_date\_range.until</code></td><td>date (YYYY-MM-DD)</td></tr><tr><td><code>urls.health</code></td><td>number</td></tr><tr><td><code>urls.hreflang\_language</code></td><td>string</td></tr><tr><td><code>urls.is\_disallowed\_in\_robots\_txt</code></td><td>boolean</td></tr><tr><td><code>urls.is\_https</code></td><td>boolean</td></tr><tr><td><code>urls.is\_in\_sitemap</code></td><td>boolean</td></tr><tr><td><code>urls.is\_indexable</code></td><td>boolean</td></tr><tr><td><code>urls.is\_indexable\_due\_to\_meta\_robots</code></td><td>boolean</td></tr><tr><td><code>urls.is\_indexable\_due\_to\_x\_robots\_tag</code></td><td>boolean</td></tr><tr><td><code>urls.is\_linked</code></td><td>boolean</td></tr><tr><td><code>urls.legacy\_id\_fallback</code></td><td>string</td></tr><tr><td><code>urls.lfa\_bing\_desktop\_frequency</code></td><td>array</td></tr><tr><td><code>urls.lfa\_bing\_desktop\_frequency.value</code></td><td>float</td></tr><tr><td><code>urls.lfa\_bing\_desktop\_frequency.unit</code></td><td>string</td></tr><tr><td><code>urls.lfa\_bing\_desktop\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>urls.lfa\_bing\_frequency</code></td><td>array</td></tr><tr><td><code>urls.lfa\_bing\_frequency.value</code></td><td>float</td></tr><tr><td><code>urls.lfa\_bing\_frequency.unit</code></td><td>string</td></tr><tr><td><code>urls.lfa\_bing\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>urls.lfa\_bing\_mobile\_frequency</code></td><td>array</td></tr><tr><td><code>urls.lfa\_bing\_mobile\_frequency.value</code></td><td>float</td></tr><tr><td><code>urls.lfa\_bing\_mobile\_frequency.unit</code></td><td>string</td></tr><tr><td><code>urls.lfa\_bing\_mobile\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>urls.lfa\_google\_desktop\_frequency</code></td><td>array</td></tr><tr><td><code>urls.lfa\_google\_desktop\_frequency.value</code></td><td>float</td></tr><tr><td><code>urls.lfa\_google\_desktop\_frequency.unit</code></td><td>string</td></tr><tr><td><code>urls.lfa\_google\_desktop\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>urls.lfa\_google\_frequency</code></td><td>array</td></tr><tr><td><code>urls.lfa\_google\_frequency.value</code></td><td>float</td></tr><tr><td><code>urls.lfa\_google\_frequency.unit</code></td><td>string</td></tr><tr><td><code>urls.lfa\_google\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>urls.lfa\_google\_mobile\_frequency</code></td><td>array</td></tr><tr><td><code>urls.lfa\_google\_mobile\_frequency.value</code></td><td>float</td></tr><tr><td><code>urls.lfa\_google\_mobile\_frequency.unit</code></td><td>string</td></tr><tr><td><code>urls.lfa\_google\_mobile\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>urls.lfa\_openai\_bot\_frequency</code></td><td>array</td></tr><tr><td><code>urls.lfa\_openai\_bot\_frequency.value</code></td><td>float</td></tr><tr><td><code>urls.lfa\_openai\_bot\_frequency.unit</code></td><td>string</td></tr><tr><td><code>urls.lfa\_openai\_bot\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>urls.lfa\_openai\_desktop\_frequency</code></td><td>array</td></tr><tr><td><code>urls.lfa\_openai\_desktop\_frequency.value</code></td><td>float</td></tr><tr><td><code>urls.lfa\_openai\_desktop\_frequency.unit</code></td><td>string</td></tr><tr><td><code>urls.lfa\_openai\_desktop\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>urls.lfa\_openai\_frequency</code></td><td>array</td></tr><tr><td><code>urls.lfa\_openai\_frequency.value</code></td><td>float</td></tr><tr><td><code>urls.lfa\_openai\_frequency.unit</code></td><td>string</td></tr><tr><td><code>urls.lfa\_openai\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>urls.lfa\_openai\_search\_frequency</code></td><td>array</td></tr><tr><td><code>urls.lfa\_openai\_search\_frequency.value</code></td><td>float</td></tr><tr><td><code>urls.lfa\_openai\_search\_frequency.unit</code></td><td>string</td></tr><tr><td><code>urls.lfa\_openai\_search\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>urls.lfa\_openai\_user\_frequency</code></td><td>array</td></tr><tr><td><code>urls.lfa\_openai\_user\_frequency.value</code></td><td>float</td></tr><tr><td><code>urls.lfa\_openai\_user\_frequency.unit</code></td><td>string</td></tr><tr><td><code>urls.lfa\_openai\_user\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>urls.lfa\_perplexity\_bot\_frequency</code></td><td>array</td></tr><tr><td><code>urls.lfa\_perplexity\_bot\_frequency.value</code></td><td>float</td></tr><tr><td><code>urls.lfa\_perplexity\_bot\_frequency.unit</code></td><td>string</td></tr><tr><td><code>urls.lfa\_perplexity\_bot\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>urls.lfa\_perplexity\_desktop\_frequency</code></td><td>array</td></tr><tr><td><code>urls.lfa\_perplexity\_desktop\_frequency.value</code></td><td>float</td></tr><tr><td><code>urls.lfa\_perplexity\_desktop\_frequency.unit</code></td><td>string</td></tr><tr><td><code>urls.lfa\_perplexity\_desktop\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>urls.lfa\_perplexity\_frequency</code></td><td>array</td></tr><tr><td><code>urls.lfa\_perplexity\_frequency.value</code></td><td>float</td></tr><tr><td><code>urls.lfa\_perplexity\_frequency.unit</code></td><td>string</td></tr><tr><td><code>urls.lfa\_perplexity\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>urls.lfa\_perplexity\_user\_frequency</code></td><td>array</td></tr><tr><td><code>urls.lfa\_perplexity\_user\_frequency.value</code></td><td>float</td></tr><tr><td><code>urls.lfa\_perplexity\_user\_frequency.unit</code></td><td>string</td></tr><tr><td><code>urls.lfa\_perplexity\_user\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>urls.lighthouse\_performance</code></td><td>array</td></tr><tr><td><code>urls.lighthouse\_performance.value</code></td><td>integer</td></tr><tr><td><code>urls.lighthouse\_performance.range</code></td><td>string</td></tr><tr><td><code>urls.lighthouse\_cls</code></td><td>array</td></tr><tr><td><code>urls.lighthouse\_cls.value</code></td><td>float</td></tr><tr><td><code>urls.lighthouse\_cls.range</code></td><td>string</td></tr><tr><td><code>urls.lighthouse\_fcp</code></td><td>array</td></tr><tr><td><code>urls.lighthouse\_fcp.value</code></td><td>integer (milliseconds)</td></tr><tr><td><code>urls.lighthouse\_fcp.range</code></td><td>string</td></tr><tr><td><code>urls.lighthouse\_lcp</code></td><td>array</td></tr><tr><td><code>urls.lighthouse\_lcp.value</code></td><td>integer (milliseconds)</td></tr><tr><td><code>urls.lighthouse\_lcp.range</code></td><td>string</td></tr><tr><td><code>urls.lighthouse\_si</code></td><td>array</td></tr><tr><td><code>urls.lighthouse\_si.value</code></td><td>integer (milliseconds)</td></tr><tr><td><code>urls.lighthouse\_si.range</code></td><td>string</td></tr><tr><td><code>urls.lighthouse\_tbt</code></td><td>array</td></tr><tr><td><code>urls.lighthouse\_tbt.value</code></td><td>integer (milliseconds)</td></tr><tr><td><code>urls.lighthouse\_tbt.range</code></td><td>string</td></tr><tr><td><code>urls.lighthouse\_tti</code></td><td>array</td></tr><tr><td><code>urls.lighthouse\_tti.value</code></td><td>integer (milliseconds)</td></tr><tr><td><code>urls.lighthouse\_tti.range</code></td><td>string</td></tr><tr><td><code>urls.link\_amp</code></td><td>string (absolute URL)</td></tr><tr><td><code>urls.link\_next</code></td><td>string (absolute URL)</td></tr><tr><td><code>urls.link\_prev</code></td><td>string (absolute URL)</td></tr><tr><td><code>urls.mobile\_variant</code></td><td>string (absolute URL)</td></tr><tr><td><code>urls.title</code></td><td>string</td></tr><tr><td><code>urls.url\_id</code></td><td>string</td></tr><tr><td><code>urls.is\_video</code></td><td>boolean</td></tr><tr><td><code>urls.video\_duration</code></td><td>float (seconds)</td></tr><tr><td><code>urls.video\_title</code></td><td>string</td></tr><tr><td><code>urls.webp</code></td><td>string (absolute URL)</td></tr><tr><td><code>urls.watched\_events</code></td><td>array</td></tr><tr><td><code>urls.watched\_events.watched\_event\_name</code></td><td>string</td></tr><tr><td><code>data\_captured\_at</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>is\_data\_golden</code></td><td>boolean</td></tr></tbody></table>

### Retrieving data for a specific page within a website

#### /v2/data/page

Use this endpoint to get data for a specific page belonging to a website in your account.

#### Query Parameters

`website_id` (Required). Can be inferred from the `GET /v2/entities/websites` endpoint described above.

***

`url` (Required). Can be inferred from the value of the `url` object for a specific page returned in the `urls` array called by the `GET /v2/data/pages` endpoint described above

#### Response for a page

<table><tbody><tr><td>200</td><td><p>Successful query execution</p><p><strong>Schema: </strong>See below</p><p><strong>Examples</strong></p><p>Successful response for a page with a 2xx HTTP response code (Successful)</p><pre class="language-json"> \{
"data": \{
"url": "[https://www.conductor.com](https://www.conductor.com)",
"url\_unique\_id": "1-234",
"is\_https": true,
"ga\_v4\_active\_users": 10,
"ga\_v4\_average\_engagement\_time": 10,
"ga\_v4\_date\_range": \{
"since": "2022-05-16",
"until": "2022-08-14"
},
"ga\_v4\_engagement\_rate": 10,
"ga\_v4\_screen\_page\_views": 10,
"gsc\_clicks": 10,
"gsc\_ctr": 10,
"gsc\_date\_range": \{
"since": "2022-05-16",
"until": "2022-08-14"
},
"gsc\_impressions": 10,
"gsc\_position": 10,
"health": 881,
"is\_disallowed\_in\_robots\_txt": false,
"is\_indexable": true,
"is\_indexable\_due\_to\_meta\_robots": "yes",
"is\_indexable\_due\_to\_x\_robots\_tag": "yes",
"is\_in\_sitemap": true,
"lfa\_bing\_desktop\_frequency": null,
"lfa\_bing\_desktop\_last\_visit": null,
"lfa\_bing\_frequency": null,
"lfa\_bing\_last\_visit": null,
"lfa\_bing\_mobile\_frequency": null,
"lfa\_bing\_mobile\_last\_visit": null,
"lfa\_google\_desktop\_frequency": null,
"lfa\_google\_desktop\_last\_visit": null,
"lfa\_google\_frequency": null,
"lfa\_google\_last\_visit": null,
"lfa\_google\_mobile\_frequency": null,
"lfa\_google\_mobile\_last\_visit": null,
"lfa\_openai\_desktop\_frequency": null,
"lfa\_openai\_desktop\_last\_visit": null,
"lfa\_openai\_search\_last\_visit": null,
"lfa\_openai\_search\_frequency": null,
"lfa\_openai\_user\_last\_visit": null,
"lfa\_openai\_user\_frequency": null,
"lfa\_openai\_bot\_last\_visit": null,
"lfa\_openai\_bot\_frequency": null,
"lfa\_openai\_frequency": null,
"lfa\_openai\_last\_visit": null,
"lfa\_perplexity\_desktop\_frequency": null,
"lfa\_perplexity\_desktop\_last\_visit": null,
"lfa\_perplexity\_user\_last\_visit": null,
"lfa\_perplexity\_user\_frequency": null,
"lfa\_perplexity\_bot\_last\_visit": null,
"lfa\_perplexity\_bot\_frequency": null,
"lfa\_perplexity\_frequency": null,
"lfa\_perplexity\_last\_visit": null,
"lighthouse\_cls": \{
"value": 0,
"range": "good"
},
"lighthouse\_fcp": \{
"value": 1000,
"range": "good"
},
"lighthouse\_lcp": \{
"value": 2000,
"range": "good"
},
"lighthouse\_performance": \{
"value": 95,
"range": "good"
},
"lighthouse\_si": \{
"value": 3700,
"range": "needsImprovement"
},
"lighthouse\_tbt": \{
"value": 669,
"range": "bad"
},
"lighthouse\_tti": \{
"value": 2000,
"range": "good"
},
"relevance": 9.33,
"status\_code": 200,
"type": "page",
"enrichment\_fields\_data": \{},
"content": \[
\{
"type": "canonical",
"content": "null"
},
\{
"type": "link\_alternate\_hreflang",
"content": "null",
"hreflang": "en"
},
\{
"type": "link\_alternate\_hreflang",
"content": "null",
"hreflang": "x-default"
},
\{
"type": "title",
"content": "Some Title"
},
\{
"type": "meta\_description",
"content": "Some Meta Description"
},
\{
"type": "h1",
"content": "null"
},
\{
"type": "open\_graph\_description",
"content": "null"
},
\{
"type": "open\_graph\_image",
"content": "null"
},
\{
"type": "open\_graph\_title",
"content": "null"
},
\{
"type": "open\_graph\_type",
"content": "null"
},
\{
"type": "open\_graph\_url",
"content": "null"
},
\{
"type": "twitter\_card",
"content": "null"
},
\{
"type": "twitter\_site",
"content": "null"
},
\{
"type": "twitter\_title",
"content": "null"
},
\{
"type": "twitter\_description",
"content": "null"
},
\{
"type": "twitter\_image",
"content": "null"
},
\{
"type": "google\_analytics",
"content": "UA-12345678-1"
},
\{
"type": "google\_tag\_manager",
"content": "GTM-AB12345"
}
],
"schema\_org": \[],
"segments": \[
"1111111"
],
"app\_url": "[https://app.cm.conductor.com/websites/1-12345/pages/123456789](https://app.cm.conductor.com/websites/1-12345/pages/123456789)",
"time\_document\_download": 123,
"open\_issues": \[
\{
"name": "analytics/visual\_analytics\_missing"
},
\{
"name": "open\_graph/description\_incorrect\_length"
},
\{
"name": "open\_graph/title\_incorrect\_length"
}
],
"custom\_elements": \{},
"unstable\_last\_checked\_at": "2022-08-15T13:32:12+02:00"
},
"data\_captured\_at": "2022-08-15T13:32:29+02:00",
"is\_data\_golden": false
}</pre><p>Successful response for a page with a 3xx HTTP response code (Redirects)</p><pre><code class="language-plain">\{
"data": \{
"url": "[https://cm.conductor.com/](https://cm.conductor.com/)",
"url\_unique\_id": "123345",
"is\_https": true,
"is\_disallowed\_in\_robots\_txt": false,
"is\_indexable": false,
"is\_indexable\_due\_to\_meta\_robots": "not\_applicable",
"is\_indexable\_due\_to\_x\_robots\_tag": "not\_applicable",
"is\_in\_sitemap": false,
"redirect": \{
"location": "[https://www.conductor.com/](https://www.conductor.com/)",
"url": "[https://www.conductor.com/](https://www.conductor.com/)"
},
"status\_code": 301,
"type": "redirect",
"enrichment\_fields\_data": \{},
"segments": \[],
"app\_url": "[https://app.cm.conductor.com/websites/5-2457491/pages/12334563485638745638465837465836](https://app.cm.conductor.com/websites/5-2457491/pages/12334563485638745638465837465836)",
"time\_document\_download": 123,
"unstable\_last\_checked\_at": "2022-08-15T06:28:42+02:00"
},
"data\_captured\_at": "2022-08-15T13:55:35+02:00",
"is\_data\_golden": false
}</code></pre><p>Successful response for a page with a 4xx HTTP response code (Missing)</p><pre><code class="language-plain">\{
"data": \{
"url": "[https://cm.conductor.com/this-page-does-not-exist/](https://cm.conductor.com/this-page-does-not-exist/)",
"url\_unique\_id": "123345",
"is\_https": true,
"is\_disallowed\_in\_robots\_txt": false,
"is\_indexable": false,
"is\_indexable\_due\_to\_meta\_robots": "not\_applicable",
"is\_indexable\_due\_to\_x\_robots\_tag": "not\_applicable",
"is\_in\_sitemap": false,
"status\_code": 404,
"type": "missing",
"enrichment\_fields\_data": \{},
"segments": \[],
"app\_url": "[https://app.cm.conductor.com/websites/5-2457491/pages/12334563485638745638465837465836](https://app.cm.conductor.com/websites/5-2457491/pages/12334563485638745638465837465836)",
"time\_document\_download": 123,
"unstable\_last\_checked\_at": "2022-08-15T06:28:42+02:00"
},
"data\_captured\_at": "2022-08-15T13:55:35+02:00",
"is\_data\_golden": false
}</code></pre></td></tr><tr><td>401</td><td><p>Unauthorized:</p><ul><li>Missing authentication token. The request was received but it's lacking an authorization token and can therefore not be processed. Make sure to correctly set the Authorization header.</li><li>Authentication failed. The request could not be processed because the supplied API token is invalid or expired.</li></ul><p><strong>Examples</strong></p><pre><code class="language-plain">\{
"code": "auth\_missing\_token",
"message": "Authentication token must be passed in Authorization HTTP header.",
"errors": \[]
}
or
\{
"code": "auth\_failed",
"message": "Authentication token is expired or invalid.",
"errors": \[]
}</code></pre></td></tr><tr><td>403</td><td><p>Forbidden:</p><ul><li>Terms of use not accepted. You have not accepted Reporting API Terms of Use yet. You need to accept them in Account Settings before you start using Conductor Monitoring Reporting API.</li><li>Our CDN is blocking your user agent, which might be a generic or default user agent like Python urllib3. Changing the user agent to something less generic or more closely resembling a browser often bypasses these restrictions.</li></ul><p><strong>Example</strong></p><pre><code class="language-plain">\{
"code": "terms\_of\_use\_not\_accepted",
"message": "Reporting API Terms of Use have not been accepted yet. Please accept Terms of Use in Account Settings.",
"errors": \[]
}</code></pre></td></tr><tr><td>404</td><td><p>Not found</p><p><strong>Examples</strong></p><pre><code class="language-plain">\{
"error": "Requested website ID was not found"                                                                                                                   }</code></pre><pre>\{<br />  "error": "Requested URL was not found"<br />}</pre><p>This response means that the URL passed in the request is not monitored by Conductor Monitoring.</p><pre>\{
"error": "Requested URL cannot be provided via Reporting API"
}</pre><p>This response means that data for the URL passed in the request is not available via the Reporting API.</p></td></tr><tr><td>422</td><td><p>Unprocessable Entity.</p><ul><li>The request was received, but the authorization wasn't formatted correctly. Make sure to correctly configure the Authorization header as described in the <strong>Authentication</strong> section above.</li></ul></td></tr></tbody></table>

#### Schema data types for this endpoint

<table><tbody><tr><td><strong>Property</strong></td><td><strong>Data Type</strong></td></tr><tr><td><code>url</code></td><td>string (absolute URL)</td></tr><tr><td><code>is\_https</code></td><td>boolean</td></tr><tr><td><code>ga\_average\_time</code></td><td>integer (seconds)</td></tr><tr><td><code>ga\_bounce\_rate</code></td><td>float (percentage)</td></tr><tr><td><code>ga\_page\_views</code></td><td>integer</td></tr><tr><td><code>ga\_unique\_page\_views</code></td><td>integer</td></tr><tr><td><code>ga\_page\_value</code></td><td>float</td></tr><tr><td><code>ga\_date\_range</code></td><td>array</td></tr><tr><td><code>ga\_date\_range.since</code></td><td>date (YYYY-MM-DD)</td></tr><tr><td><code>ga\_date\_range.until</code></td><td>date (YYYY-MM-DD)</td></tr><tr><td><code>ga\_v4\_active\_users</code></td><td>integer</td></tr><tr><td><code>ga\_v4\_average\_engagement\_time</code></td><td>integer (seconds)</td></tr><tr><td><code>ga\_v4\_engagement\_rate</code></td><td>float (percentage)</td></tr><tr><td><code>ga\_v4\_screen\_page\_views</code></td><td>integer</td></tr><tr><td><code>ga\_v4\_date\_range</code></td><td>array</td></tr><tr><td><code>ga\_v4\_date\_range.since</code></td><td>date (YYYY-MM-DD)</td></tr><tr><td><code>ga\_v4\_date\_range.until</code></td><td>date (YYYY-MM-DD)</td></tr><tr><td><code>gsc\_clicks</code></td><td>integer</td></tr><tr><td><code>gsc\_impressions</code></td><td>integer</td></tr><tr><td><code>gsc\_ctr</code></td><td>float (percentage)</td></tr><tr><td><code>gsc\_position</code></td><td>float</td></tr><tr><td><code>gsc\_date\_range</code></td><td>array</td></tr><tr><td><code>gsc\_date\_range.since</code></td><td>date (YYYY-MM-DD)</td></tr><tr><td><code>gsc\_date\_range.until</code></td><td>date (YYYY-MM-DD)</td></tr><tr><td><code>health</code></td><td>number</td></tr><tr><td><code>relevance</code></td><td>float</td></tr><tr><td><code>is\_disallowed\_in\_robots\_txt</code></td><td>boolean</td></tr><tr><td><code>is\_indexable</code></td><td>boolean</td></tr><tr><td><code>is\_indexable\_due\_to\_meta\_robots</code></td><td>boolean</td></tr><tr><td><code>is\_indexable\_due\_to\_x\_robots\_tag</code></td><td>boolean</td></tr><tr><td><code>is\_in\_sitemap</code></td><td>boolean</td></tr><tr><td><code>status\_code</code></td><td>integer</td></tr><tr><td><code>time\_document\_download</code></td><td>number</td></tr><tr><td><code>type</code></td><td>string</td></tr><tr><td><code>content</code></td><td>array</td></tr><tr><td><code>content.type</code></td><td>string</td></tr><tr><td><code>content.content</code></td><td>string</td></tr><tr><td><code>custom\_elements</code></td><td>array</td></tr><tr><td><code>custom\_elements.custom\_element\_name</code></td><td>string/number/boolean/date (depending on configuration)</td></tr><tr><td><code>schema\_org</code></td><td>array (containing different Schema properties as defined by schema.org)</td></tr><tr><td><code>segments</code></td><td>array of strings (containing Segment IDs)</td></tr><tr><td><code>app\_url</code></td><td>string (absolute URL)</td></tr><tr><td><code>open\_issues</code></td><td>array</td></tr><tr><td><code>open\_issues.name</code></td><td>string (see List of issues)</td></tr><tr><td><code>lfa\_bing\_desktop\_frequency</code></td><td>array</td></tr><tr><td><code>lfa\_bing\_desktop\_frequency.value</code></td><td>float</td></tr><tr><td><code>lfa\_bing\_desktop\_frequency.unit</code></td><td>string</td></tr><tr><td><code>lfa\_bing\_desktop\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>lfa\_bing\_frequency</code></td><td>array</td></tr><tr><td><code>lfa\_bing\_frequency.value</code></td><td>float</td></tr><tr><td><code>lfa\_bing\_frequency.unit</code></td><td>string</td></tr><tr><td><code>lfa\_bing\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>lfa\_bing\_mobile\_frequency</code></td><td>array</td></tr><tr><td><code>lfa\_bing\_mobile\_frequency.value</code></td><td>float</td></tr><tr><td><code>lfa\_bing\_mobile\_frequency.unit</code></td><td>string</td></tr><tr><td><code>lfa\_bing\_mobile\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>lfa\_google\_desktop\_frequency</code></td><td>array</td></tr><tr><td><code>lfa\_google\_desktop\_frequency.value</code></td><td>float</td></tr><tr><td><code>lfa\_google\_desktop\_frequency.unit</code></td><td>string</td></tr><tr><td><code>lfa\_google\_desktop\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>lfa\_google\_frequency</code></td><td>array</td></tr><tr><td><code>lfa\_google\_frequency.value</code></td><td>float</td></tr><tr><td><code>lfa\_google\_frequency.unit</code></td><td>string</td></tr><tr><td><code>lfa\_google\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>lfa\_google\_mobile\_frequency</code></td><td>array</td></tr><tr><td><code>lfa\_google\_mobile\_frequency.value</code></td><td>float</td></tr><tr><td><code>lfa\_google\_mobile\_frequency.unit</code></td><td>string</td></tr><tr><td><code>lfa\_google\_mobile\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>lfa\_openai\_bot\_frequency</code></td><td>array</td></tr><tr><td><code>lfa\_openai\_bot\_frequency.value</code></td><td>float</td></tr><tr><td><code>lfa\_openai\_bot\_frequency.unit</code></td><td>string</td></tr><tr><td><code>lfa\_openai\_bot\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>lfa\_openai\_desktop\_frequency</code></td><td>array</td></tr><tr><td><code>lfa\_openai\_desktop\_frequency.value</code></td><td>float</td></tr><tr><td><code>lfa\_openai\_desktop\_frequency.unit</code></td><td>string</td></tr><tr><td><code>lfa\_openai\_desktop\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>lfa\_openai\_frequency</code></td><td>array</td></tr><tr><td><code>lfa\_openai\_frequency.value</code></td><td>float</td></tr><tr><td><code>lfa\_openai\_frequency.unit</code></td><td>string</td></tr><tr><td><code>lfa\_openai\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>lfa\_openai\_search\_frequency</code></td><td>array</td></tr><tr><td><code>lfa\_openai\_search\_frequency.value</code></td><td>float</td></tr><tr><td><code>lfa\_openai\_search\_frequency.unit</code></td><td>string</td></tr><tr><td><code>lfa\_openai\_search\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>lfa\_openai\_user\_frequency</code></td><td>array</td></tr><tr><td><code>lfa\_openai\_user\_frequency.value</code></td><td>float</td></tr><tr><td><code>lfa\_openai\_user\_frequency.unit</code></td><td>string</td></tr><tr><td><code>lfa\_openai\_user\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>lfa\_perplexity\_bot\_frequency</code></td><td>array</td></tr><tr><td><code>lfa\_perplexity\_bot\_frequency.value</code></td><td>float</td></tr><tr><td><code>lfa\_perplexity\_bot\_frequency.unit</code></td><td>string</td></tr><tr><td><code>lfa\_perplexity\_bot\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>lfa\_perplexity\_desktop\_frequency</code></td><td>array</td></tr><tr><td><code>lfa\_perplexity\_desktop\_frequency.value</code></td><td>float</td></tr><tr><td><code>lfa\_perplexity\_desktop\_frequency.unit</code></td><td>string</td></tr><tr><td><code>lfa\_perplexity\_desktop\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>lfa\_perplexity\_frequency</code></td><td>array</td></tr><tr><td><code>lfa\_perplexity\_frequency.value</code></td><td>float</td></tr><tr><td><code>lfa\_perplexity\_frequency.unit</code></td><td>string</td></tr><tr><td><code>lfa\_perplexity\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>lfa\_perplexity\_user\_frequency</code></td><td>array</td></tr><tr><td><code>lfa\_perplexity\_user\_frequency.value</code></td><td>float</td></tr><tr><td><code>lfa\_perplexity\_user\_frequency.unit</code></td><td>string</td></tr><tr><td><code>lfa\_perplexity\_user\_last\_visit</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>lighthouse\_performance</code></td><td>array</td></tr><tr><td><code>lighthouse\_performance.value</code></td><td>integer</td></tr><tr><td><code>lighthouse\_performance.range</code></td><td>string</td></tr><tr><td><code>lighthouse\_cls</code></td><td>array</td></tr><tr><td><code>lighthouse\_cls.value</code></td><td>float</td></tr><tr><td><code>lighthouse\_cls.range</code></td><td>string</td></tr><tr><td><code>lighthouse\_fcp</code></td><td>array</td></tr><tr><td><code>lighthouse\_fcp.value</code></td><td>integer (milliseconds)</td></tr><tr><td><code>lighthouse\_fcp.range</code></td><td>string</td></tr><tr><td><code>lighthouse\_lcp</code></td><td>array</td></tr><tr><td><code>lighthouse\_lcp.value</code></td><td>integer (milliseconds)</td></tr><tr><td><code>lighthouse\_lcp.range</code></td><td>string</td></tr><tr><td><code>lighthouse\_si</code></td><td>array</td></tr><tr><td><code>lighthouse\_si.value</code></td><td>integer (milliseconds)</td></tr><tr><td><code>lighthouse\_si.range</code></td><td>string</td></tr><tr><td><code>lighthouse\_tbt</code></td><td>array</td></tr><tr><td><code>lighthouse\_tbt.value</code></td><td>integer (milliseconds)</td></tr><tr><td><code>lighthouse\_tbt.range</code></td><td>string</td></tr><tr><td><code>lighthouse\_tti</code></td><td>array</td></tr><tr><td><code>lighthouse\_tti.value</code></td><td>integer (milliseconds)</td></tr><tr><td><code>lighthouse\_tti.range</code></td><td>string</td></tr><tr><td><code>unstable\_last\_checked\_at</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>data\_captured\_at</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>is\_data\_golden</code></td><td>boolean</td></tr></tbody></table>

### Retrieving log file data for a website

#### /v2/data/page\_lfa

Use this endpoint to return log file data from Conductor Monitoring's [Log File Analysis](/docs/monitoring/log-file-analysis/) feature for your monitored pages. Log File Analysis data gives AEO and SEO professionals a better understanding of what search engines and AI bot crawlers are actually doing on their websites.

Values returned for each day through this endpoint represent the number of times each crawler visited the page or pages for which you are querying data.

#### Query Parameters

`website_id` (Required). Can be inferred from the `GET /v2/entities/websites` endpoint described above.

***

`urls` (Required). A list of up to 50 valid URL strings from your website. Note: if any of these URLs are unknown, the endpoint returns a 404 error.

This list can be added using repeated query parameters as follows:
`urls[]=https://example.com/page1&urls[]=https://example.com/page2&urls[]=https://example.com/page3…`

***

`date_range` (Optional). This two-field parameter represents the range for which you want to query data.  By default, when this parameter is not included in the request, the endpoint returns data for the most recent 30 days. Both of the following fields must be included for the `date_range` parameter to work:

* `date_range[start_date]`. Enter the start date from which to query data.
* `date_range[end_date]`. Enter an end date up to which you want to query data.

This parameter must be formatted as follows:
`date_range[start_date]=YYYY-MM-DD&date_range[end_date]=YYYY-MM-DD`

#### Request Responses

<table><tbody><tr><td>200</td><td><p>Successful query execution</p><p><strong>Schema: </strong>See below</p><p><strong>Example</strong></p><pre><code class="language-plain">\{
"data": \{
"urls": \[
\{
"url": "[https://www.example.com/](https://www.example.com/)",
"visits\_per\_day": \{
"lfa\_bing\_desktop": \{
"2025-08-28": 2,
"2025-08-29": 1,
"2025-08-30": 2,
...
},
"lfa\_bing\_mobile": \{...},
"lfa\_google\_desktop": \{...},
"lfa\_google\_mobile": \{...},
"lfa\_openai\_bot": \{...},
"lfa\_openai\_search": \{...},
"lfa\_openai\_user": \{...},
"lfa\_perplexity\_bot": \{...},
"lfa\_perplexity\_user": \{...}
}
},
\{
"url": "[https://www.example.com/about-us/](https://www.example.com/about-us/)",
"visits\_per\_day": \{...}
},
\{...}
]
},
"data\_captured\_at": "2026-01-06T16:07:41+01:00"
}</code></pre></td></tr><tr><td>400</td><td><p>Log File Analysis is not enabled for this website in Conductor Monitoring.</p><p><strong>Examples</strong></p><pre><code class="language-plain">\{
"error": "Log File Analysis is not enabled"
}</code></pre></td></tr><tr><td>403</td><td><p> </p><ul><li>Not all URLs are one of the following types:<ul><li>Page</li><li>Redirect</li><li>Server error</li><li>Missing</li></ul></li><li>Our CDN is blocking your user agent, which might be a generic or default user agent like Python urllib3. Changing the user agent to something less generic or more closely resembling a browser often bypasses these restrictions.</li></ul><p><strong>Example</strong></p><pre><code class="language-plain">\{
"error": "Requested URL cannot be provided via Reporting API (url)"
}</code></pre></td></tr><tr><td>404</td><td><p>Not found</p><p><strong>Example</strong></p><pre><code class="language-plain">\{
"error": "Requested URL was not found (url)"
}</code></pre></td></tr></tbody></table>

#### Schema data types for this endpoint

<table><tbody><tr><td><strong>Property</strong></td><td><strong>Data Type</strong></td></tr><tr><td><code>urls</code></td><td>array</td></tr><tr><td><code>urls.url</code></td><td>string (absolute URL)</td></tr><tr><td><code>urls.visits\_per\_day</code></td><td>array</td></tr><tr><td><code>urls.visits\_per\_day.lfa\_bing\_desktop</code></td><td>array</td></tr><tr><td><code>urls.visits\_per\_day.lfa\_bing\_desktop.YYYY-MM-DD</code></td><td>integer</td></tr><tr><td><code>urls.visits\_per\_day.lfa\_bing\_mobile</code></td><td>array</td></tr><tr><td><code>urls.visits\_per\_day.lfa\_bing\_mobile.YYYY-MM-DD</code></td><td>integer</td></tr><tr><td><code>urls.visits\_per\_day.lfa\_google\_desktop</code></td><td>array</td></tr><tr><td><code>urls.visits\_per\_day.lfa\_google\_desktop.YYYY-MM-DD</code></td><td>integer</td></tr><tr><td><code>urls.visits\_per\_day.lfa\_google\_mobile</code></td><td>array</td></tr><tr><td><code>urls.visits\_per\_day.lfa\_google\_mobile.YYYY-MM-DD</code></td><td>integer</td></tr><tr><td><code>urls.visits\_per\_day.lfa\_openai\_bot</code></td><td>array</td></tr><tr><td><code>urls.visits\_per\_day.lfa\_openai\_bot.YYYY-MM-DD</code></td><td>integer</td></tr><tr><td><code>url.visits\_per\_day.lfa\_openai\_search</code></td><td>array</td></tr><tr><td><code>url.visits\_per\_day.lfa\_openai\_search.YYYY-MM-DD</code></td><td>integer</td></tr><tr><td><code>url.visits\_per\_day.lfa\_openai\_user</code></td><td>array</td></tr><tr><td><code>url.visits\_per\_day.lfa\_openai\_user.YYYY-MM-DD</code></td><td>integer</td></tr><tr><td><code>url.visits\_per\_day.lfa\_perplexity\_bot</code></td><td>array</td></tr><tr><td><code>url.visits\_per\_day.lfa\_perplexity\_bot.YYYY-MM-DD</code></td><td>integer</td></tr><tr><td><code>url.visits\_per\_day.lfa\_perplexity\_user</code></td><td>array</td></tr><tr><td><code>url.visits\_per\_day.lfa\_perplexity\_user.YYYY-MM-DD</code></td><td>integer</td></tr><tr><td><code>data\_captured\_at</code></td><td>datetime (ISO-8601 format)</td></tr></tbody></table>

### Retrieving list of alerts for a website

#### /v2/alerts

Use this endpoint to get a list of alerts for a website monitored in your account.

#### Query Parameters

`website_id` (Required). Can be inferred from the `GET /v2/entities/websites` endpoint described above.

#### Request Responses

<table><tbody><tr><td>200</td><td><p>Successful query execution</p><p><strong>Schema: </strong>See below</p><p><strong>Example</strong></p><pre class="language-json"> \{
"data": \[
\{
"id": "1",
"app\_url": "[https://app.cm.conductor.com/websites/1-234/alerts?alert=1](https://app.cm.conductor.com/websites/1-234/alerts?alert=1)",
"date\_last\_updated": "2022-08-04T13:40:50+02:00",
"date\_opened": "2022-07-27T09:34:44+02:00",
"scope": "website",
"type": "content\_change.meta\_description"
},
\{
"id": "2",
"app\_url": "[https://app.cm.conductor.com/websites/1-234/alerts?alert=2](https://app.cm.conductor.com/websites/1-234/alerts?alert=2)",
"date\_last\_updated": "2022-08-04T13:40:50+02:00",
"date\_opened": "2022-07-26T07:03:25+02:00",
"scope": "website",
"type": "pages\_became\_non\_indexable"
}
]
}</pre></td></tr><tr><td>401</td><td><p>Unauthorized:</p><ul><li>Missing authentication token. The request was received but it's lacking an authorization token and can therefore not be processed. Make sure to correctly set the Authorization header.</li><li>Authentication failed. The request could not be processed because the supplied API token is invalid or expired.</li></ul><p><strong>Examples</strong></p><pre><code class="language-plain">\{
"code": "auth\_missing\_token",
"message": "Authentication token must be passed in Authorization HTTP header.",
"errors": \[]
}
or
\{
"code": "auth\_failed",
"message": "Authentication token is expired or invalid.",
"errors": \[]
}</code></pre></td></tr><tr><td>403</td><td><p>Forbidden:</p><ul><li>Terms of use not accepted. You have not accepted Reporting API Terms of Use yet. You need to accept them in Account Settings before you start using Conductor Monitoring Reporting API.</li><li>Our CDN is blocking your user agent, which might be a generic or default user agent like Python urllib3. Changing the user agent to something less generic or more closely resembling a browser often bypasses these restrictions.</li></ul><p><strong>Example</strong></p><pre><code class="language-plain">\{
"code": "terms\_of\_use\_not\_accepted",
"message": "Reporting API Terms of Use have not been accepted yet. Please accept Terms of Use in Account Settings.",
"errors": \[]
}</code></pre></td></tr><tr><td>404</td><td><p>Not found</p><p><strong>Example</strong></p><pre><code class="language-plain">\{
"error": "Requested website ID was not found"
}</code></pre></td></tr><tr><td>422</td><td><p>Unprocessable Entity.</p><ul><li>The request was received, but the authorization wasn't formatted correctly. Make sure to correctly configure the Authorization header as described in the <strong>Authentication</strong> section above.</li></ul></td></tr></tbody></table>

#### Schema data types for this endpoint

<table><tbody><tr><td><strong>Property</strong></td><td><strong>Data Type</strong></td></tr><tr><td><code>id</code></td><td>string</td></tr><tr><td><code>app\_url</code></td><td>string (absolute URL)</td></tr><tr><td><code>date\_last\_updated</code></td><td>datetime (ISO 8601 format)</td></tr><tr><td><code>date\_opened</code></td><td>datetime (ISO 8601 format)</td></tr><tr><td><code>scope</code></td><td>string</td></tr><tr><td><code>type</code></td><td>string</td></tr></tbody></table>

### Retrieving list of pages for a website alert

#### /v2/alerts/alert\_pages

Use this endpoint to get a list of pages for a specific website alert.

```
GET /v2/alerts/alert_pages?website_id=<website_id>&alert_id=<alert_id>&page=1&per_page=100
```

#### Query Parameters

`website_id` (Required). Can be inferred from the `GET /v2/entities/websites` endpoint described above.

***

`alert_id` (Required). Can be inferred from the `GET /v2/alerts` endpoint described above.

***

`page` and `per_page` (Optional). Can be used for pagination.

#### Request Responses

<table><tbody><tr><td>200</td><td><p>Successful query execution</p><p><strong>Schema: </strong>See below</p><p><strong>Example</strong></p><pre class="language-json"> \{
"data": \{
"total": 1,
"urls": \[
\{
"app\_url": "[https://app.cm.conductor.com/websites/1-2/pages/3](https://app.cm.conductor.com/websites/1-2/pages/3)",
"relevance": 6.05,
"segments": \[],
"status": "entered",
"url": "[https://www.conductor.com/](https://www.conductor.com/)",
},
]
}
}</pre></td></tr><tr><td>401</td><td><p>Unauthorized:</p><ul><li>Missing authentication token. The request was received but it's lacking an authorization token and can therefore not be processed. Make sure to correctly set the Authorization header.</li><li>Authentication failed. The request could not be processed because the supplied API token is invalid or expired.</li></ul><p><strong>Examples</strong></p><pre><code class="language-plain">\{
"code": "auth\_missing\_token",
"message": "Authentication token must be passed in Authorization HTTP header.",
"errors": \[]
}
or
\{
"code": "auth\_failed",
"message": "Authentication token is expired or invalid.",
"errors": \[]
}</code></pre></td></tr><tr><td>403</td><td><p>Forbidden:</p><ul><li>Terms of use not accepted. You have not accepted Reporting API Terms of Use yet. You need to accept them in Account Settings before you start using Conductor Monitoring Reporting API.</li><li>Our CDN is blocking your user agent, which might be a generic or default user agent like Python urllib3. Changing the user agent to something less generic or more closely resembling a browser often bypasses these restrictions.</li></ul><p><strong>Example</strong></p><pre><code class="language-plain">\{
"code": "terms\_of\_use\_not\_accepted",
"message": "Reporting API Terms of Use have not been accepted yet. Please accept Terms of Use in Account Settings.",
"errors": \[]
}</code></pre></td></tr><tr><td>404</td><td><p>Not found</p><p><strong>Example</strong></p><pre><code class="language-plain">\{
"error": "Requested website ID was not found"
}</code></pre></td></tr><tr><td>422</td><td><p>Unprocessable Entity.</p><ul><li>The request was received, but the authorization wasn't formatted correctly. Make sure to correctly configure the Authorization header as described in the <strong>Authentication</strong> section above.</li></ul></td></tr></tbody></table>

#### Schema data types for this endpoint

<table><tbody><tr><td><strong>Property</strong></td><td><strong>Data Type</strong></td></tr><tr><td><code>total</code></td><td>integer</td></tr><tr><td><code>urls</code></td><td>array</td></tr><tr><td><code>urls.app\_url</code></td><td>string (absolute URL)</td></tr><tr><td><code>urls.relevance</code></td><td>float</td></tr><tr><td><code>segments</code></td><td>array of strings (containing Segment IDs, see Retrieving a list of segments)</td></tr><tr><td><code>status</code></td><td>string</td></tr><tr><td><code>urls.url</code></td><td>string (absolute URL)</td></tr></tbody></table>

## Retrieving a list of issues for a website or segment

#### /v2/data/issues

Use this endpoint to get a list of issues for a specific website in your account.

```
GET /v2/data/issues?website_id=<website_id>
```

#### Query Parameters

`website_id` (Required). Can be inferred from the `GET /v2/entities/websites` endpoint described above.

***

`scope` (Required). Determines whether data for the whole website is returned or specific parts. Potential values:

* `website`. Retrieves data for the whole website.
* `segment:{segment_id}`. Retrieves data for a specific segment. Segment IDs can be inferred with the `GET /v2/entities/segments` endpoint described above.
* `segment_label:{segment_label}`. Retrieves data for a specific segment. Segment label can be inferred from the `GET /v2/entities/segments` endpoint described above.

#### Request Responses

<table><tbody><tr><td>200</td><td><p>Successful query execution</p><p><strong>Schema: </strong>See below</p><p><strong>Example</strong></p><pre class="language-json"> \{
"data": \[
\{
"name": "analytics/analytics\_missing",
"points\_gained": 79,
"points\_to\_gain": 0,
"scope": "pages",
"type": "opportunity",
"tags": "seo",
"pages\_per\_issue\_state": \{
"absolute\_number": \{
"open": 0,
"closed": 0,
"ignored": 527,
"not\_applicable": 0,
"not\_required": 0,
"unknown": 0
},
"percentage": \{
"open": 0,
"closed": 0,
"ignored": 100,
"not\_applicable": 0,
"not\_required": 0,
"unknown": 0
}
}
},
],
"data\_captured\_at": "2022-08-04T14:03:19+02:00",
"is\_data\_golden": false
}</pre></td></tr><tr><td>401</td><td><p>Unauthorized:</p><ul><li>Missing authentication token. The request was received but it's lacking an authorization token and can therefore not be processed. Make sure to correctly set the Authorization header.</li><li>Authentication failed. The request could not be processed because the supplied API token is invalid or expired.</li></ul><p><strong>Examples</strong></p><pre><code class="language-plain">\{
"code": "auth\_missing\_token",
"message": "Authentication token must be passed in Authorization HTTP header.",
"errors": \[]
}
or
\{
"code": "auth\_failed",
"message": "Authentication token is expired or invalid.",
"errors": \[]
}</code></pre></td></tr><tr><td>403</td><td><p>Forbidden:</p><ul><li>Terms of use not accepted. You have not accepted Reporting API Terms of Use yet. You need to accept them in Account Settings before you start using Conductor Monitoring Reporting API.</li><li>Our CDN is blocking your user agent, which might be a generic or default user agent like Python urllib3. Changing the user agent to something less generic or more closely resembling a browser often bypasses these restrictions.</li></ul><p><strong>Example</strong></p><pre><code class="language-plain">\{
"code": "terms\_of\_use\_not\_accepted",
"message": "Reporting API Terms of Use have not been accepted yet. Please accept Terms of Use in Account Settings.",
"errors": \[]
}</code></pre></td></tr><tr><td>404</td><td><p>Not found</p><p><strong>Example</strong></p><pre><code class="language-plain">\{
"error": "Requested website ID was not found"
}</code></pre></td></tr><tr><td>422</td><td><p>Unprocessable Entity.</p><ul><li>The request was received, but the authorization wasn't formatted correctly. Make sure to correctly configure the Authorization header as described in the <strong>Authentication</strong> section above.</li></ul></td></tr></tbody></table>

#### Schema data types for this endpoint

<table><tbody><tr><td><strong>Property</strong></td><td><strong>Data Type</strong></td></tr><tr><td><code>name</code></td><td>string</td></tr><tr><td><code>points\_gained</code></td><td>integer</td></tr><tr><td><code>points\_to\_gain</code></td><td>integer</td></tr><tr><td><code>type</code></td><td>string (enum: <code>critical</code>, <code>fix</code>, <code>opportunity</code>)</td></tr><tr><td><code>tags</code></td><td>array (enum: <code>aeo</code>, <code>seo</code>)</td></tr><tr><td><code>scope</code></td><td>string</td></tr><tr><td><code>pages\_per\_issue\_state</code></td><td>array</td></tr><tr><td><code>pages\_per\_issue\_state.absolute\_number.open</code></td><td>integer</td></tr><tr><td><code>pages\_per\_issue\_state.absolute\_number.closed</code></td><td>integer</td></tr><tr><td><code>pages\_per\_issue\_state.absolute\_number.ignored</code></td><td>integer</td></tr><tr><td><code>pages\_per\_issue\_state.absolute\_number.not\_applicable</code></td><td>integer</td></tr><tr><td><code>pages\_per\_issue\_state.absolute\_number.not\_required</code></td><td>integer</td></tr><tr><td><code>pages\_per\_issue\_state.absolute\_number.unknown</code></td><td>integer</td></tr><tr><td><code>pages\_per\_issue\_state.percentage.open</code></td><td>integer</td></tr><tr><td><code>pages\_per\_issue\_state.percentage.closed</code></td><td>integer</td></tr><tr><td><code>pages\_per\_issue\_state.percentage.ignored</code></td><td>integer</td></tr><tr><td><code>pages\_per\_issue\_state.percentage.not\_applicable</code></td><td>integer</td></tr><tr><td><code>pages\_per\_issue\_state.percentage.not\_required</code></td><td>integer</td></tr><tr><td><code>pages\_per\_issue\_state.percentage.unknown</code></td><td>integer</td></tr><tr><td><code>data\_captured\_at</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>is\_data\_golden</code></td><td>boolean</td></tr></tbody></table>

### Retrieving list of pages for a website issue

#### /v2/data/affected\_pages

Use this endpoint to get list of pages for a specific website issue.

#### Query Parameters

`website_id` (Required). Can be inferred from the `GET /v2/entities/websites` endpoint described above.

***

`issue` (Required). Can be inferred from the `GET /v2/data/issues` endpoint described above.

***

`page` and `per_page` (Optional). Can be used for pagination.

#### Request Responses

<table><tbody><tr><td>200</td><td><p>Successful query execution</p><p><strong>Schema: </strong>See below</p><p><strong>Example</strong></p><pre class="language-json"> \{
"data": \{
"total": 1,
"urls": \[
\{
"app\_url": "[https://app.cm.conductor.com/websites/1-123455/pages/123455678](https://app.cm.conductor.com/websites/1-123455/pages/123455678)",
"relevance": 9.33,
"segments": \[
"88611",
],
"url": "[https://www.conductor.com/](https://www.conductor.com/)",
"url\_path": "/"
},
]
},
"data\_captured\_at": "2022-08-16T12:42:35+02:00",
"is\_data\_golden": false
}</pre></td></tr><tr><td>401</td><td><p>Unauthorized:</p><ul><li>Missing authentication token. The request was received but it's lacking an authorization token and can therefore not be processed. Make sure to correctly set the Authorization header.</li><li>Authentication failed. The request could not be processed because the supplied API token is invalid or expired.</li></ul><p><strong>Examples</strong></p><pre><code class="language-plain">\{
"code": "auth\_missing\_token",
"message": "Authentication token must be passed in Authorization HTTP header.",
"errors": \[]
}
or
\{
"code": "auth\_failed",
"message": "Authentication token is expired or invalid.",
"errors": \[]
}</code></pre></td></tr><tr><td>403</td><td><p>Forbidden:</p><ul><li>Terms of use not accepted. You have not accepted Reporting API Terms of Use yet. You need to accept them in Account Settings before you start using Conductor Monitoring Reporting API.</li><li>Our CDN is blocking your user agent, which might be a generic or default user agent like Python urllib3. Changing the user agent to something less generic or more closely resembling a browser often bypasses these restrictions.</li></ul><p><strong>Example</strong></p><pre><code class="language-plain">\{
"code": "terms\_of\_use\_not\_accepted",
"message": "Reporting API Terms of Use have not been accepted yet. Please accept Terms of Use in Account Settings.",
"errors": \[]
}</code></pre></td></tr><tr><td>404</td><td><p>Not found</p><p><strong>Example</strong></p><pre><code class="language-plain">\{
"error": "Requested website ID was not found"
}</code></pre></td></tr><tr><td>422</td><td><p>Unprocessable Entity.</p><ul><li>The request was received, but the authorization wasn't formatted correctly. Make sure to correctly configure the Authorization header as described in the <strong>Authentication</strong> section above.</li></ul></td></tr></tbody></table>

#### Schema data types for this endpoint

<table><tbody><tr><td><strong>Property</strong></td><td><strong>Data Type</strong></td></tr><tr><td><code>total</code></td><td>integer</td></tr><tr><td><code>urls</code></td><td>array</td></tr><tr><td><code>urls.app\_url</code></td><td>string (absolute URL)</td></tr><tr><td><code>urls.relevance</code></td><td>float</td></tr><tr><td><code>segments</code></td><td>array of strings (containing Segment IDs)</td></tr><tr><td><code>urls.url</code></td><td>string (absolute URL)</td></tr><tr><td><code>urls.path</code></td><td>string (absolute URL)</td></tr><tr><td><code>data\_captured\_at</code></td><td>datetime (ISO-8601 format)</td></tr><tr><td><code>is\_data\_golden</code></td><td>boolean</td></tr></tbody></table>

### List of issues

<table><tbody><tr><td><strong>Issue</strong></td><td><strong>Issue Tag</strong></td><td><strong>Type</strong></td><td><strong>Description</strong></td></tr><tr><td><code>analytics/analytics\_missing</code></td><td>seo</td><td>opportunity</td><td>No analytics installed</td></tr><tr><td><code>analytics/visual\_analytics\_missing</code></td><td>seo</td><td>opportunity</td><td>No visual analytics installed</td></tr><tr><td><code>h1/duplicate</code></td><td>aeo, seo</td><td>fix</td><td>H1 heading is not unique</td></tr><tr><td><code>h1/incorrect\_length</code></td><td>aeo, seo</td><td>fix</td><td>H1 heading has incorrect length</td></tr><tr><td><code>h1/missing</code></td><td>aeo, seo</td><td>fix</td><td>H1 heading is missing</td></tr><tr><td><code>h1/too\_many</code></td><td>aeo, seo</td><td>fix</td><td>More than one H1 heading</td></tr><tr><td><code>canonical\_link/incorrectly\_canonicalized</code></td><td>aeo, seo</td><td>fix</td><td>Canonical link to other page present on non-indexable page</td></tr><tr><td><code>canonical\_link/missing</code></td><td>aeo, seo</td><td>fix</td><td>Canonical link is missing</td></tr><tr><td><code>canonical\_link/points\_to\_unindexable</code></td><td>aeo, seo</td><td>critical</td><td>Canonical link is pointing to non-indexable page</td></tr><tr><td><code>canonical\_link/too\_many</code></td><td>aeo, seo</td><td>fix</td><td>More than one canonical link</td></tr><tr><td><code>content\_depth/html\_size\_too\_big</code></td><td>aeo, seo</td><td>opportunity</td><td>Content size greater than 2,097,152  bytes</td></tr><tr><td><code>content\_depth/body\_empty</code></td><td>aeo, seo</td><td>critical</td><td>No content in \<body></td></tr><tr><td><code>content\_depth/body\_size\_too\_big</code></td><td>aeo, seo</td><td>opportunity</td><td>Word count in \<main> greater than 5000 words</td></tr><tr><td><code>content\_depth/body\_size\_too\_small</code></td><td>aeo, seo</td><td>critical</td><td>Word count in \<main> fewer than 600 words</td></tr><tr><td><code>content\_depth/text\_to\_code\_ratio</code></td><td>aeo, seo</td><td>fix</td><td>Text-to-code ratio less than 10%</td></tr><tr><td><code>content\_depth/rich\_text\_elements\_are\_missing</code></td><td>aeo, seo</td><td>fix</td><td>Rich text elements (lists/quotes/tables ) not present in \<main></td></tr><tr><td><code>images/alt\_attribute</code></td><td>aeo, seo</td><td>fix</td><td>Images are missing alt-attribute</td></tr><tr><td><code>links/broken</code></td><td>aeo, seo</td><td>critical</td><td>Page contains broken links</td></tr><tr><td><code>links/redirected</code></td><td>aeo, seo</td><td>fix</td><td>Page contains links to redirects</td></tr><tr><td><code>links/to\_canonicalized</code></td><td>aeo, seo</td><td>fix</td><td>Page contains links to canonicalized URLs</td></tr><tr><td><code>meta\_description/duplicate</code></td><td>aeo, seo</td><td>fix</td><td>Meta description is not unique</td></tr><tr><td><code>meta\_description/incorrect\_length</code></td><td>aeo, seo</td><td>fix</td><td>Meta description has incorrect length</td></tr><tr><td><code>meta\_description/missing</code></td><td>aeo, seo</td><td>fix</td><td>Meta description is missing</td></tr><tr><td><code>meta\_description/too\_many</code></td><td>aeo, seo</td><td>fix</td><td>There are multiple meta descriptions on the page</td></tr><tr><td><code>title/duplicate</code></td><td>aeo, seo</td><td>fix</td><td>Page title is not unique</td></tr><tr><td><code>title/incorrect\_length</code></td><td>aeo, seo</td><td>fix</td><td>Page title has incorrect length</td></tr><tr><td><code>title/missing</code></td><td>aeo, seo</td><td>critical</td><td>Title is missing</td></tr><tr><td><code>title/too\_many</code></td><td>aeo, seo</td><td>fix</td><td>There are multiple titles on pages</td></tr><tr><td><code>open\_graph/description\_incorrect\_length</code></td><td>seo</td><td>opportunity</td><td>Open Graph description has incorrect length</td></tr><tr><td><code>open\_graph/description\_missing</code></td><td>seo</td><td>opportunity</td><td>Open Graph description is missing</td></tr><tr><td><code>open\_graph/image\_missing</code></td><td>seo</td><td>opportunity</td><td>Open Graph image is missing</td></tr><tr><td><code>open\_graph/title\_incorrect\_length</code></td><td>seo</td><td>opportunity</td><td>Open Graph title has incorrect length</td></tr><tr><td><code>open\_graph/title\_missing</code></td><td>seo</td><td>opportunity</td><td>Open Graph title is missing</td></tr><tr><td><code>open\_graph/url\_missing</code></td><td>seo</td><td>opportunity</td><td>Open Graph URL is missing</td></tr><tr><td><code>twitter\_cards/description\_incorrect\_length</code></td><td>seo</td><td>opportunity</td><td>Twitter Cards description has incorrect length</td></tr><tr><td><code>twitter\_cards/description\_missing</code></td><td>seo</td><td>opportunity</td><td>Twitter Cards description is missing</td></tr><tr><td><code>twitter\_cards/image\_missing</code></td><td>seo</td><td>opportunity</td><td>Twitter Cards image is missing</td></tr><tr><td><code>twitter\_cards/site\_missing</code></td><td>seo</td><td>opportunity</td><td>Twitter Cards site property is missing</td></tr><tr><td><code>twitter\_cards/title\_incorrect\_length</code></td><td>seo</td><td>opportunity</td><td>Twitter Cards title has incorrect length</td></tr><tr><td><code>twitter\_cards/title\_missing</code></td><td>seo</td><td>opportunity</td><td>Twitter Cards title is missing</td></tr><tr><td><code>twitter\_cards/type\_invalid</code></td><td>seo</td><td>opportunity</td><td>Twitter Cards type value is not valid</td></tr><tr><td><code>twitter\_cards/type\_missing</code></td><td>seo</td><td>opportunity</td><td>Twitter Cards type is not present</td></tr><tr><td><code>xml\_sitemap/incorrectly\_missing</code></td><td>aeo, seo</td><td>critical</td><td>Page is not included in XML sitemap</td></tr><tr><td><code>xml\_sitemap/incorrectly\_present</code></td><td>aeo, seo</td><td>fix</td><td>Pages incorrectly present in XML sitemap</td></tr><tr><td><code>hreflang/conflicting\_targets</code></td><td>seo</td><td>fix</td><td>Hreflang attribute value is pointed to multiple targets</td></tr><tr><td><code>hreflang/invalid\_target</code></td><td>seo</td><td>fix</td><td>Invalid hreflang target present</td></tr><tr><td><code>hreflang/invalid\_value</code></td><td>seo</td><td>fix</td><td>Invalid hreflang attribute value present</td></tr><tr><td><code>hreflang/missing\_self\_reference</code></td><td>seo</td><td>fix</td><td>Self-referencing hreflang not present</td></tr><tr><td><code>hreflang/missing\_specific\_audience</code></td><td>seo</td><td>fix</td><td>Hreflang implementation does not contain any hreflang attribute specifying a language and/or region</td></tr><tr><td><code>hreflang/missing\_x\_default</code></td><td>seo</td><td>fix</td><td>Hreflang attribute with x-default value is missing</td></tr><tr><td><code>robot\_directives/conflicting</code></td><td>aeo, seo</td><td>critical</td><td>Valid robot directives give conflicting directives to search engines</td></tr><tr><td><code>robot\_directives/invalid</code></td><td>aeo, seo</td><td>critical</td><td>Valid robot directives give conflicting directives to search engines</td></tr><tr><td><code>robot\_directives/unsupported</code></td><td>aeo, seo</td><td>critical</td><td>Valid but unsupported robot directives to a search engine present</td></tr><tr><td><code>lighthouse/performance</code></td><td>aeo, seo</td><td>opportunity</td><td>Performance score is too low</td></tr><tr><td><code>lighthouse/fcp</code></td><td>aeo, seo</td><td>opportunity</td><td>First Contentful Paint takes too long</td></tr><tr><td><code>lighthouse/lcp</code></td><td>aeo, seo</td><td>opportunity</td><td>Largest Contentful Paint takes too long</td></tr><tr><td><code>lighthouse/tti</code></td><td>aeo, seo</td><td>opportunity</td><td>Time To Interactive takes too long</td></tr><tr><td><code>lighthouse/si</code></td><td>aeo, seo</td><td>opportunity</td><td>Speed Index is too high</td></tr><tr><td><code>lighthouse/tbt</code></td><td>aeo, seo</td><td>opportunity</td><td>Total Blocking Time is too long</td></tr><tr><td><code>lighthouse/cls</code></td><td>aeo, seo</td><td>opportunity</td><td>Cumulative Layout Shift is too large</td></tr><tr><td><code>semantic\_html/core\_layout\_missing</code></td><td>aeo, seo</td><td>critical</td><td>Core semantic HTML structure is present</td></tr><tr><td><code>semantic\_html/multiple\_main\_elements</code></td><td>aeo, seo</td><td>critical</td><td>Single \<main> element is present</td></tr><tr><td><code>js\_rendering/title\_changed</code></td><td>aeo, seo</td><td>critical</td><td>Page title matches between raw HTML and rendered DOM</td></tr><tr><td><code>js\_rendering/canonical\_changed</code></td><td>aeo, seo</td><td>critical</td><td>Canonical link matches between raw HTML and rendered DOM</td></tr><tr><td><code>js\_rendering/h1\_changed</code></td><td>aeo, seo</td><td>critical</td><td>H1 heading matches between raw HTML and rendered DOM</td></tr><tr><td><code>js\_rendering/word\_count\_changed</code></td><td>aeo, seo</td><td>fix</td><td>Main content word count matches between raw HTML and rendered DOM</td></tr><tr><td><code>js\_rendering/outgoing\_links\_changed</code></td><td>aeo, seo</td><td>fix</td><td>Outgoing links match between raw HTML and rendered DOM</td></tr><tr><td><code>schema\_org/errors</code></td><td>aeo, seo</td><td>fix</td><td>Schema.org implementation has an invalid structure</td></tr><tr><td><code>schema\_org/invalid\_json</code></td><td>aeo, seo</td><td>fix</td><td>Schema element with invalid JSON-LD object present</td></tr><tr><td><code>schema\_org/invalid\_property</code></td><td>aeo, seo</td><td>fix</td><td>All schema properties are valid for their declared types</td></tr><tr><td><code>schema\_org/invalid\_property\_value</code></td><td>aeo, seo</td><td>fix</td><td>All schema property values have correct format</td></tr><tr><td><code>schema\_org/invalid\_type</code></td><td>aeo, seo</td><td>fix</td><td>All schema @type values are recognized</td></tr><tr><td><code>schema\_org/mandatory\_schema\_missing</code></td><td>aeo, seo</td><td>critical</td><td>Required schema types are present</td></tr><tr><td><code>schema\_org/missing\_required\_property</code></td><td>aeo, seo</td><td>fix</td><td>All required schema properties are present</td></tr><tr><td><code>schema\_org/missing\_recommended\_property</code></td><td>aeo, seo</td><td>opportunity</td><td>All recommended schema properties are present</td></tr></tbody></table>

## Retrieving historical data

Certain endpoints support retrieving historical data using the `captured_at` query parameter.

The `captured_at` parameter is a timestamp indicating when the data was collected by Conductor Monitoring and supports the [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) datetime format.

The `captured_at` parameter is supported by the following endpoints:

* [Retrieving statistics for a website or segment](/docs/other-apis/conductor-monitoring-reporting-api/#retrieving-statistics-for-a-website-or-websites-segment)
* [Retrieving a list of issues for a website or segment](/docs/other-apis/conductor-monitoring-reporting-api/#retrieving-a-list-of-issues-for-a-website-or-segment)

For example, to retrieve the statistics for a website from June 1st, 2022 at 05:00, you can send the following request:

```
GET /v2/data/statistics?website_id={website_id}&captured_at=2022-06-01T05:00:00+00:00
```

<Info>
  ### Data is golden

  The `is_data_golden` property indicates whether the response to this request is golden or not.

  When the data is golden, it means that when the same request is made at a later point in time, the retrieved data will always be exactly the same.

  In context of Conductor Monitoring’s data, this applies to retrieving data historically. The historical data retrieved from Conductor Monitoring will always be golden as the data cannot change anymore, as opposed to retrieving current data which is subject to change.
</Info>
