curl --request GET \
--url https://server.promptwatch.com/api/v2/sitemap/settings \
--header 'X-API-Key: <api-key>'import requests
url = "https://server.promptwatch.com/api/v2/sitemap/settings"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://server.promptwatch.com/api/v2/sitemap/settings', 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://server.promptwatch.com/api/v2/sitemap/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://server.promptwatch.com/api/v2/sitemap/settings"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://server.promptwatch.com/api/v2/sitemap/settings")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://server.promptwatch.com/api/v2/sitemap/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"allowCrossSubdomainSync": false,
"slowCrawlEnabled": false,
"verifiedBotMode": false,
"userAgent": "promptwatch-bot/1.0 (+https://promptwatch.com/bot)"
}{
"error": "Unauthorized",
"message": "Missing or invalid X-API-Key header."
}{
"code": "SITEMAP_DOMAIN_MISMATCH",
"message": "Sitemap URL domain does not match project website domain"
}Get Sitemap Settings
Crawler flags for this project (cross-subdomain sync, slow crawl, verified bot) plus the User-Agent used when verifiedBotMode is on.
curl --request GET \
--url https://server.promptwatch.com/api/v2/sitemap/settings \
--header 'X-API-Key: <api-key>'import requests
url = "https://server.promptwatch.com/api/v2/sitemap/settings"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://server.promptwatch.com/api/v2/sitemap/settings', 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://server.promptwatch.com/api/v2/sitemap/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://server.promptwatch.com/api/v2/sitemap/settings"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://server.promptwatch.com/api/v2/sitemap/settings")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://server.promptwatch.com/api/v2/sitemap/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"allowCrossSubdomainSync": false,
"slowCrawlEnabled": false,
"verifiedBotMode": false,
"userAgent": "promptwatch-bot/1.0 (+https://promptwatch.com/bot)"
}{
"error": "Unauthorized",
"message": "Missing or invalid X-API-Key header."
}{
"code": "SITEMAP_DOMAIN_MISMATCH",
"message": "Sitemap URL domain does not match project website domain"
}Authorizations
API key for authentication. Get yours from the Promptwatch dashboard under Settings > API Keys.
Response
Default Response
When true, sitemap crawls keep URLs under the project's root domain (blog.example.com, shop.example.com). When false, only the project host and www are kept. PATCH only flips the flag; it does not crawl. To ingest previously filtered subdomain URLs, POST /sitemaps/:id/sync after turning this on.
Pace page crawls at about 15 pages/min. Use for Shopify and other hosts that rate-limit crawlers.
Identify sitemap and page crawls with the branded userAgent so you can whitelist it in a WAF. Most sites do not need this.
User-Agent sent when verifiedBotMode is on. Read-only; whitelist this in Cloudflare/WAF.