Get Search Console keyword position history for a page
curl --request GET \
--url https://api.snowseo.com/v3/integrations/gsc/website-traffic/keywords-for-page \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.snowseo.com/v3/integrations/gsc/website-traffic/keywords-for-page"
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/integrations/gsc/website-traffic/keywords-for-page', 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/integrations/gsc/website-traffic/keywords-for-page",
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/integrations/gsc/website-traffic/keywords-for-page"
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/integrations/gsc/website-traffic/keywords-for-page")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.snowseo.com/v3/integrations/gsc/website-traffic/keywords-for-page")
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": [
{
"keyword": "<string>",
"clicks": 123,
"impressions": 123,
"position": 123,
"points": [
{
"date": "<string>",
"position": 123
}
]
}
]
}{
"success": true,
"error": "<string>",
"code": "<string>",
"message": "<string>",
"reference": "<string>"
}Google Search Console
Keywords for a Page
See the keywords a page ranks for, each with a daily average-position series.
GET
/
v3
/
integrations
/
gsc
/
website-traffic
/
keywords-for-page
Get Search Console keyword position history for a page
curl --request GET \
--url https://api.snowseo.com/v3/integrations/gsc/website-traffic/keywords-for-page \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.snowseo.com/v3/integrations/gsc/website-traffic/keywords-for-page"
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/integrations/gsc/website-traffic/keywords-for-page', 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/integrations/gsc/website-traffic/keywords-for-page",
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/integrations/gsc/website-traffic/keywords-for-page"
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/integrations/gsc/website-traffic/keywords-for-page")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.snowseo.com/v3/integrations/gsc/website-traffic/keywords-for-page")
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": [
{
"keyword": "<string>",
"clicks": 123,
"impressions": 123,
"position": 123,
"points": [
{
"date": "<string>",
"position": 123
}
]
}
]
}{
"success": true,
"error": "<string>",
"code": "<string>",
"message": "<string>",
"reference": "<string>"
}See the keywords a page ranks for, each with a daily average-position series. Pass the
page query parameter, and optionally keywords to limit the result.
Shared parameters and response fields are described on Google Search Traffic.Authorizations
bearerAuthapiKey
Your SnowSEO API key (sk_...).
Query Parameters
Team ID
Days back from today on the team's calendar, converted to startDate/endDate. Ignored when startDate or endDate is set. Defaults to 30.
Required range:
x >= 1Start date (YYYY-MM-DD)
End date (YYYY-MM-DD)
Country filter
Device filter
Search appearance/type filter
Maximum rows to return
Page URL
Return these keywords (exact match, up to 20) instead of the most visible ones
Response
Default Response
Show child attributes
Show child attributes
Was this page helpful?

