curl --request GET \
--url https://api.cm.conductor.com/v2/data/pages \
--header 'Authorization: <api-key>'import requests
url = "https://api.cm.conductor.com/v2/data/pages"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.cm.conductor.com/v2/data/pages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cm.conductor.com/v2/data/pages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.cm.conductor.com/v2/data/pages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.cm.conductor.com/v2/data/pages")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cm.conductor.com/v2/data/pages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"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",
"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/",
"url_depth": 0,
"url_path": "/",
"visual_analytics_services": null
}
]
},
"data_captured_at": "2022-08-16T11:24:27+02:00",
"is_data_golden": false
}{
"code": "auth_missing_token",
"message": "Authentication token must be passed in Authorization HTTP header.",
"errors": []
}{
"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": []
}{
"error": "Requested website ID was not found"
}{
"code": "auth_malformed",
"message": "Authorization HTTP header must conform to format described in docs.",
"errors": []
}{
"code": "rate_limit_exceeded",
"message": "Too many requests. Try again in a minute.",
"errors": []
}List pages for a website
Retrieve a paginated list of every tracked URL on a website, with full SEO metadata for each page.
curl --request GET \
--url https://api.cm.conductor.com/v2/data/pages \
--header 'Authorization: <api-key>'import requests
url = "https://api.cm.conductor.com/v2/data/pages"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.cm.conductor.com/v2/data/pages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cm.conductor.com/v2/data/pages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.cm.conductor.com/v2/data/pages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.cm.conductor.com/v2/data/pages")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cm.conductor.com/v2/data/pages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"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",
"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/",
"url_depth": 0,
"url_path": "/",
"visual_analytics_services": null
}
]
},
"data_captured_at": "2022-08-16T11:24:27+02:00",
"is_data_golden": false
}{
"code": "auth_missing_token",
"message": "Authentication token must be passed in Authorization HTTP header.",
"errors": []
}{
"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": []
}{
"error": "Requested website ID was not found"
}{
"code": "auth_malformed",
"message": "Authorization HTTP header must conform to format described in docs.",
"errors": []
}{
"code": "rate_limit_exceeded",
"message": "Too many requests. Try again in a minute.",
"errors": []
}Authorizations
Send your Reporting API token as Authorization: token {reporting_api_token} — the literal string token, a space, then the token itself. Find it in Conductor Monitoring under Account > Account tab > Integration Tokens.
Query Parameters
Required.
Required. Pagination control. How many results to return per request, 1–1000. It counts result rows, not web pages on your site.
1 <= x <= 1000Optional on this endpoint. Pagination control. Which page of results to return, numbered from 1. It selects a slice of the result set and is unrelated to the web pages the endpoint returns.
Optional. Pagination control. Cursor from next_page_cursor in the previous response. Faster and more reliable than page on large result sets, and it takes precedence over page — do not send both.
Optional.
Optional. asc or desc.
asc, desc 