List the pages a Site Health issue affects
curl --request POST \
--url https://api.athenahq.ai/api/v1/seo/issues/pages \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"website_id": "<string>",
"check": "<string>",
"page": 123,
"page_id": "<string>"
}
'import requests
url = "https://api.athenahq.ai/api/v1/seo/issues/pages"
payload = {
"website_id": "<string>",
"check": "<string>",
"page": 123,
"page_id": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({website_id: '<string>', check: '<string>', page: 123, page_id: '<string>'})
};
fetch('https://api.athenahq.ai/api/v1/seo/issues/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.athenahq.ai/api/v1/seo/issues/pages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'website_id' => '<string>',
'check' => '<string>',
'page' => 123,
'page_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.athenahq.ai/api/v1/seo/issues/pages"
payload := strings.NewReader("{\n \"website_id\": \"<string>\",\n \"check\": \"<string>\",\n \"page\": 123,\n \"page_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.athenahq.ai/api/v1/seo/issues/pages")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"website_id\": \"<string>\",\n \"check\": \"<string>\",\n \"page\": 123,\n \"page_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.athenahq.ai/api/v1/seo/issues/pages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"website_id\": \"<string>\",\n \"check\": \"<string>\",\n \"page\": 123,\n \"page_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"pages": [
{
"finding_id": "<string>",
"page_id": "<string>",
"property_id": "<string>",
"url": "<string>",
"status": "open",
"page_title": "<string>",
"detail": "<string>",
"recommendation": "<string>",
"shared_value": "<string>",
"evidence": [
"<string>"
],
"evidence_links": [
{
"label": "<string>",
"url": "<string>"
}
],
"robots_txt_rule": {
"url": "<string>",
"line": 123,
"excerpt": [
{
"line": 123,
"text": "<string>"
}
]
},
"first_seen_at": "<string>",
"last_seen_at": "<string>",
"resolved_at": "<string>",
"last_checked_at": "<string>",
"assignee": {
"id": "<string>",
"name": "<string>"
},
"task_revision": 123,
"draft": {
"run_id": "<string>",
"status": "<string>"
}
}
],
"has_more": true
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Site Health
List the pages a Site Health issue affects
Page through every page one Site Health issue affects, 50 per page, open pages first and most recently seen first within a status. Give the check from the issue list; filter by status; page is 0-based and has_more says whether to continue; page 0 starts from the first affected page, so it repeats the sample pages the issue list showed inline. page_id returns that one page’s row for the check. Each row carries the finding_id and task_revision an update of the page’s task needs, the finding’s detail, recommendation and evidence, the assignee, and the dates it was first and last seen and last checked. Requires Site Health on the website’s plan; otherwise the call fails with 403.
POST
/
api
/
v1
/
seo
/
issues
/
pages
List the pages a Site Health issue affects
curl --request POST \
--url https://api.athenahq.ai/api/v1/seo/issues/pages \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"website_id": "<string>",
"check": "<string>",
"page": 123,
"page_id": "<string>"
}
'import requests
url = "https://api.athenahq.ai/api/v1/seo/issues/pages"
payload = {
"website_id": "<string>",
"check": "<string>",
"page": 123,
"page_id": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({website_id: '<string>', check: '<string>', page: 123, page_id: '<string>'})
};
fetch('https://api.athenahq.ai/api/v1/seo/issues/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.athenahq.ai/api/v1/seo/issues/pages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'website_id' => '<string>',
'check' => '<string>',
'page' => 123,
'page_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.athenahq.ai/api/v1/seo/issues/pages"
payload := strings.NewReader("{\n \"website_id\": \"<string>\",\n \"check\": \"<string>\",\n \"page\": 123,\n \"page_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.athenahq.ai/api/v1/seo/issues/pages")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"website_id\": \"<string>\",\n \"check\": \"<string>\",\n \"page\": 123,\n \"page_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.athenahq.ai/api/v1/seo/issues/pages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"website_id\": \"<string>\",\n \"check\": \"<string>\",\n \"page\": 123,\n \"page_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"pages": [
{
"finding_id": "<string>",
"page_id": "<string>",
"property_id": "<string>",
"url": "<string>",
"status": "open",
"page_title": "<string>",
"detail": "<string>",
"recommendation": "<string>",
"shared_value": "<string>",
"evidence": [
"<string>"
],
"evidence_links": [
{
"label": "<string>",
"url": "<string>"
}
],
"robots_txt_rule": {
"url": "<string>",
"line": 123,
"excerpt": [
{
"line": 123,
"text": "<string>"
}
]
},
"first_seen_at": "<string>",
"last_seen_at": "<string>",
"resolved_at": "<string>",
"last_checked_at": "<string>",
"assignee": {
"id": "<string>",
"name": "<string>"
},
"task_revision": 123,
"draft": {
"run_id": "<string>",
"status": "<string>"
}
}
],
"has_more": true
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Body
application/json
Was this page helpful?