curl --request POST \
--url https://api.athenahq.ai/api/v1/seo/issues \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"website_id": "<string>",
"check": "<string>",
"search": "<string>",
"assignee": "me",
"page": 123,
"page_urls": [
"<string>"
],
"page_size": 123
}
'import requests
url = "https://api.athenahq.ai/api/v1/seo/issues"
payload = {
"website_id": "<string>",
"check": "<string>",
"search": "<string>",
"assignee": "me",
"page": 123,
"page_urls": ["<string>"],
"page_size": 123
}
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>',
search: '<string>',
assignee: 'me',
page: 123,
page_urls: ['<string>'],
page_size: 123
})
};
fetch('https://api.athenahq.ai/api/v1/seo/issues', 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",
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>',
'search' => '<string>',
'assignee' => 'me',
'page' => 123,
'page_urls' => [
'<string>'
],
'page_size' => 123
]),
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"
payload := strings.NewReader("{\n \"website_id\": \"<string>\",\n \"check\": \"<string>\",\n \"search\": \"<string>\",\n \"assignee\": \"me\",\n \"page\": 123,\n \"page_urls\": [\n \"<string>\"\n ],\n \"page_size\": 123\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")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"website_id\": \"<string>\",\n \"check\": \"<string>\",\n \"search\": \"<string>\",\n \"assignee\": \"me\",\n \"page\": 123,\n \"page_urls\": [\n \"<string>\"\n ],\n \"page_size\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.athenahq.ai/api/v1/seo/issues")
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 \"search\": \"<string>\",\n \"assignee\": \"me\",\n \"page\": 123,\n \"page_urls\": [\n \"<string>\"\n ],\n \"page_size\": 123\n}"
response = http.request(request)
puts response.read_body{
"groups": [
{
"check": "<string>",
"title": "<string>",
"why_it_matters": "<string>",
"owner": "writer",
"effort": "minutes",
"bucket": "technical_cleanup",
"severity": "critical",
"priority": "high",
"site_wide": true,
"counts": {
"open": 123,
"in_progress": 123,
"fixed": 123,
"verified": 123,
"dismissed": 123
},
"sections": [
{
"section": "<string>",
"open": 123,
"audited": 123
}
],
"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_pages": true
}
],
"total": 123,
"counts": {
"open": 123,
"in_progress": 123,
"fixed": 123,
"verified": 123,
"dismissed": 123
},
"page_size": 123,
"has_evidence": true
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Lister les problèmes d'État du site
Liste les problèmes d’État du site d’un site web : un groupe par type de problème (check) avec son titre, pourquoi il compte, sa gravité (critical, warning, opportunity), sa priorité (high, medium, low), son responsable (writer, developer ou either ; null s’il est inconnu), l’effort (minutes, hours, days), s’il concerne tout le site, le nombre de pages touchées par statut (open, in_progress, fixed, verified, dismissed), jusqu’à trois sections où il se concentre, et des pages touchées en exemple avec, pour chacune, le détail, la recommandation, les preuves, la personne assignée et task_revision. Filtrez par statut, check, terme de recherche, URL stockées de pages précises (page_urls) ou assignee “me” (connexions avec session uniquement). Les groupes sont paginés : page commence à 0, page_size vaut 25 par défaut (200 au maximum) et total compte les groupes correspondants ; counts additionne les pages par statut sur tout le site, sans tenir compte du filtre de statut. Un groupe contient au plus 50 pages en exemple (10 lorsqu’un outil l’appelle, ce qui limite aussi page_size à 25) ; has_more_pages indique de lire le reste avec la lecture des pages du problème (get_site_health_issue_pages ou POST /v1/seo/issues/pages), dont la page 0 reprend les pages en exemple. has_evidence à false signifie que le site n’a jamais été exploré ni audité. Nécessite État du site dans l’offre du site web ; sinon l’appel échoue avec un code 403.
curl --request POST \
--url https://api.athenahq.ai/api/v1/seo/issues \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"website_id": "<string>",
"check": "<string>",
"search": "<string>",
"assignee": "me",
"page": 123,
"page_urls": [
"<string>"
],
"page_size": 123
}
'import requests
url = "https://api.athenahq.ai/api/v1/seo/issues"
payload = {
"website_id": "<string>",
"check": "<string>",
"search": "<string>",
"assignee": "me",
"page": 123,
"page_urls": ["<string>"],
"page_size": 123
}
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>',
search: '<string>',
assignee: 'me',
page: 123,
page_urls: ['<string>'],
page_size: 123
})
};
fetch('https://api.athenahq.ai/api/v1/seo/issues', 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",
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>',
'search' => '<string>',
'assignee' => 'me',
'page' => 123,
'page_urls' => [
'<string>'
],
'page_size' => 123
]),
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"
payload := strings.NewReader("{\n \"website_id\": \"<string>\",\n \"check\": \"<string>\",\n \"search\": \"<string>\",\n \"assignee\": \"me\",\n \"page\": 123,\n \"page_urls\": [\n \"<string>\"\n ],\n \"page_size\": 123\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")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"website_id\": \"<string>\",\n \"check\": \"<string>\",\n \"search\": \"<string>\",\n \"assignee\": \"me\",\n \"page\": 123,\n \"page_urls\": [\n \"<string>\"\n ],\n \"page_size\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.athenahq.ai/api/v1/seo/issues")
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 \"search\": \"<string>\",\n \"assignee\": \"me\",\n \"page\": 123,\n \"page_urls\": [\n \"<string>\"\n ],\n \"page_size\": 123\n}"
response = http.request(request)
puts response.read_body{
"groups": [
{
"check": "<string>",
"title": "<string>",
"why_it_matters": "<string>",
"owner": "writer",
"effort": "minutes",
"bucket": "technical_cleanup",
"severity": "critical",
"priority": "high",
"site_wide": true,
"counts": {
"open": 123,
"in_progress": 123,
"fixed": 123,
"verified": 123,
"dismissed": 123
},
"sections": [
{
"section": "<string>",
"open": 123,
"audited": 123
}
],
"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_pages": true
}
],
"total": 123,
"counts": {
"open": 123,
"in_progress": 123,
"fixed": 123,
"verified": 123,
"dismissed": 123
},
"page_size": 123,
"has_evidence": true
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Corps
Cette page vous a-t-elle été utile ?