Bing Search Insights trend
curl --request GET \
--url https://server.promptwatch.com/api/v2/search-insights/bing/trend \
--header 'X-API-Key: <api-key>'import requests
url = "https://server.promptwatch.com/api/v2/search-insights/bing/trend"
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/search-insights/bing/trend', 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/search-insights/bing/trend",
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/search-insights/bing/trend"
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/search-insights/bing/trend")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://server.promptwatch.com/api/v2/search-insights/bing/trend")
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[
{
"date": "2026-09-01",
"clicks": 12,
"impressions": 400
}
]{
"error": "Bad Request",
"code": "DATE_RANGE_TOO_LARGE",
"message": "Date range cannot exceed 90 days"
}{
"error": "Unauthorized",
"message": "Missing or invalid X-API-Key header."
}{
"code": "GOOGLE_SEARCH_CONSOLE_NOT_CONNECTED",
"message": "Google Search Console is not connected for this project"
}{
"code": "GOOGLE_SEARCH_CONSOLE_NOT_CONNECTED",
"message": "Google Search Console is not connected for this project"
}{
"code": "GOOGLE_SEARCH_CONSOLE_NOT_CONNECTED",
"message": "Google Search Console is not connected for this project"
}Search Insights
Bing Search Insights trend
Daily Bing Webmaster clicks and impressions. Dates default to the last 30 days and cannot exceed 90 days. Bing figures use complete Sat–Fri weeks and may not cover the same calendar days as Google.
GET
/
search-insights
/
bing
/
trend
Bing Search Insights trend
curl --request GET \
--url https://server.promptwatch.com/api/v2/search-insights/bing/trend \
--header 'X-API-Key: <api-key>'import requests
url = "https://server.promptwatch.com/api/v2/search-insights/bing/trend"
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/search-insights/bing/trend', 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/search-insights/bing/trend",
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/search-insights/bing/trend"
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/search-insights/bing/trend")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://server.promptwatch.com/api/v2/search-insights/bing/trend")
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[
{
"date": "2026-09-01",
"clicks": 12,
"impressions": 400
}
]{
"error": "Bad Request",
"code": "DATE_RANGE_TOO_LARGE",
"message": "Date range cannot exceed 90 days"
}{
"error": "Unauthorized",
"message": "Missing or invalid X-API-Key header."
}{
"code": "GOOGLE_SEARCH_CONSOLE_NOT_CONNECTED",
"message": "Google Search Console is not connected for this project"
}{
"code": "GOOGLE_SEARCH_CONSOLE_NOT_CONNECTED",
"message": "Google Search Console is not connected for this project"
}{
"code": "GOOGLE_SEARCH_CONSOLE_NOT_CONNECTED",
"message": "Google Search Console is not connected for this project"
}Authorizations
API key for authentication. Get yours from the Promptwatch dashboard under Settings > API Keys.
Query Parameters
Inclusive UTC start date. Omitted with endDate defaults to the last 30 days.
Inclusive UTC end date. Omitted with startDate defaults to the last 30 days.