CreatePageReviewAPI mirrors erdo_review_pages: start a review of one or more
curl --request POST \
--url https://api.erdo.ai/v1/page-reviews \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"audience": "<string>",
"goal": "<string>",
"urls": [
"<string>"
]
}
'import requests
url = "https://api.erdo.ai/v1/page-reviews"
payload = {
"audience": "<string>",
"goal": "<string>",
"urls": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({audience: '<string>', goal: '<string>', urls: ['<string>']})
};
fetch('https://api.erdo.ai/v1/page-reviews', 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.erdo.ai/v1/page-reviews",
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([
'audience' => '<string>',
'goal' => '<string>',
'urls' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.erdo.ai/v1/page-reviews"
payload := strings.NewReader("{\n \"audience\": \"<string>\",\n \"goal\": \"<string>\",\n \"urls\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.erdo.ai/v1/page-reviews")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"audience\": \"<string>\",\n \"goal\": \"<string>\",\n \"urls\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.erdo.ai/v1/page-reviews")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"audience\": \"<string>\",\n \"goal\": \"<string>\",\n \"urls\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"audience": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"error": "<string>",
"goal": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"input_urls": [
"<string>"
],
"report": {
"category_scores": {
"action": 123,
"clarity": 123,
"credibility": 123,
"friction": 123
},
"pages": [
{
"captures": [
{
"bucket_key": "<string>",
"label": "<string>",
"media_type": "<string>",
"url": "<string>"
}
],
"category_scores": {
"action": 123,
"clarity": 123,
"credibility": 123,
"friction": 123
},
"context": "<string>",
"defects": [
{
"basis": "<string>",
"because": "<string>",
"category": "<string>",
"evidence": "<string>",
"fix": "<string>",
"issue": "<string>",
"severity": "<string>",
"viewports": [
"<string>"
]
}
],
"error": "<string>",
"lighthouse": {
"accessibility": 123,
"best_practices": 123,
"fetched_at": "2023-11-07T05:31:56Z",
"performance": 123,
"seo": 123
},
"score": 123,
"strengths": [
"<string>"
],
"url": "<string>"
}
],
"score": 123,
"version": 123
},
"status": "<string>",
"updated_at": "2023-11-07T05:31:56Z"
}{
"code": "not_found",
"details": {},
"message": "<string>"
}API Reference
CreatePageReviewAPI mirrors erdo_review_pages: start a review of one or more
external page URLs with the real landing critic. Returns a review id immediately (status=pending); poll GET /v1/page-reviews/:reviewID for the typed findings.
POST
/
v1
/
page-reviews
CreatePageReviewAPI mirrors erdo_review_pages: start a review of one or more
curl --request POST \
--url https://api.erdo.ai/v1/page-reviews \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"audience": "<string>",
"goal": "<string>",
"urls": [
"<string>"
]
}
'import requests
url = "https://api.erdo.ai/v1/page-reviews"
payload = {
"audience": "<string>",
"goal": "<string>",
"urls": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({audience: '<string>', goal: '<string>', urls: ['<string>']})
};
fetch('https://api.erdo.ai/v1/page-reviews', 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.erdo.ai/v1/page-reviews",
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([
'audience' => '<string>',
'goal' => '<string>',
'urls' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.erdo.ai/v1/page-reviews"
payload := strings.NewReader("{\n \"audience\": \"<string>\",\n \"goal\": \"<string>\",\n \"urls\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.erdo.ai/v1/page-reviews")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"audience\": \"<string>\",\n \"goal\": \"<string>\",\n \"urls\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.erdo.ai/v1/page-reviews")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"audience\": \"<string>\",\n \"goal\": \"<string>\",\n \"urls\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"audience": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"error": "<string>",
"goal": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"input_urls": [
"<string>"
],
"report": {
"category_scores": {
"action": 123,
"clarity": 123,
"credibility": 123,
"friction": 123
},
"pages": [
{
"captures": [
{
"bucket_key": "<string>",
"label": "<string>",
"media_type": "<string>",
"url": "<string>"
}
],
"category_scores": {
"action": 123,
"clarity": 123,
"credibility": 123,
"friction": 123
},
"context": "<string>",
"defects": [
{
"basis": "<string>",
"because": "<string>",
"category": "<string>",
"evidence": "<string>",
"fix": "<string>",
"issue": "<string>",
"severity": "<string>",
"viewports": [
"<string>"
]
}
],
"error": "<string>",
"lighthouse": {
"accessibility": 123,
"best_practices": 123,
"fetched_at": "2023-11-07T05:31:56Z",
"performance": 123,
"seo": 123
},
"score": 123,
"strengths": [
"<string>"
],
"url": "<string>"
}
],
"score": 123,
"version": 123
},
"status": "<string>",
"updated_at": "2023-11-07T05:31:56Z"
}{
"code": "not_found",
"details": {},
"message": "<string>"
}Authorizations
An Erdo API key (erdo_api_...) or scoped token (erdo_token_...).
Response
Success response
the create request. Empty when none was declared.
back from the create request. Empty when none was declared.
submitted URL. Version guards the shape as the report grows.
Show child attributes
Show child attributes
ListPageReviewsAPI mirrors erdo_list_page_reviews: past reviews newest first
GetPageReviewAPI mirrors erdo_get_page_review: read a review's status and,
⌘I

