curl --request GET \
--url https://api.snowseo.com/v3/pages/list \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.snowseo.com/v3/pages/list"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.snowseo.com/v3/pages/list', 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.snowseo.com/v3/pages/list",
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: Bearer <token>"
],
]);
$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.snowseo.com/v3/pages/list"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.snowseo.com/v3/pages/list")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.snowseo.com/v3/pages/list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"url": "<string>",
"path": "<string>",
"title": "<string>",
"statusCode": 123,
"clicks": 123,
"impressions": 123,
"ctr": 123,
"position": 123,
"keywords": 123,
"keywordsChange": 123,
"clicksChange": 123,
"impressionsChange": 123,
"ctrChange": 123,
"positionChange": 123,
"auditScore": 123,
"indexVerdict": "<string>",
"aiCitations": 123,
"visitors": 123,
"visitorsChange": 123
}
],
"total": 123,
"connected": true,
"startDate": "<string>",
"endDate": "<string>"
}List Pages
Every page in the brand’s inventory with its search performance.
curl --request GET \
--url https://api.snowseo.com/v3/pages/list \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.snowseo.com/v3/pages/list"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.snowseo.com/v3/pages/list', 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.snowseo.com/v3/pages/list",
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: Bearer <token>"
],
]);
$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.snowseo.com/v3/pages/list"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.snowseo.com/v3/pages/list")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.snowseo.com/v3/pages/list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"url": "<string>",
"path": "<string>",
"title": "<string>",
"statusCode": 123,
"clicks": 123,
"impressions": 123,
"ctr": 123,
"position": 123,
"keywords": 123,
"keywordsChange": 123,
"clicksChange": 123,
"impressionsChange": 123,
"ctrChange": 123,
"positionChange": 123,
"auditScore": 123,
"indexVerdict": "<string>",
"aiCitations": 123,
"visitors": 123,
"visitorsChange": 123
}
],
"total": 123,
"connected": true,
"startDate": "<string>",
"endDate": "<string>"
}visitors and visitorsChange only when analyticsProvider names the brand’s connected analytics integration (ga, posthog, plausible or snow). Sorting by visitors or visitorsChange without it returns 400.Authorizations
Your SnowSEO API key (sk_...).
Query Parameters
Team ID
Start date (YYYY-MM-DD on the team's calendar).
End date (YYYY-MM-DD on the team's calendar). A start with no end runs to today; an end with no start means All Time.
Days back from today on the team's calendar, converted to startDate/endDate. Ignored when startDate or endDate is set. Defaults to 30.
x >= 1ISO-3 country code to filter Search Console rows by.
Device filter: desktop, mobile or tablet.
Search type: web, image, video or news.
Filter to pages whose URL or title contains this text.
Page size, or all for explicit bulk selection resolution.
1 <= x <= 5000Connected analytics integration to read page visitors from: ga (Google Analytics), posthog, plausible or snow (Snow Analytics). Without it, rows carry no visitor counts, and sorting by visitors returns 400.
ga, posthog, plausible, snow Rows to skip.
Column to sort on. Defaults to clicks.
clicks, impressions, ctr, position, keywords, url, auditScore, aiCitations, clicksChange, keywordsChange, positionChange, visitors, visitorsChange Sort direction. Defaults to desc.
asc, desc Was this page helpful?

