Bing rank tracking and Copilot visibility: what to use for each
Bing visibility now has two separate parts. Bing web rankings are positions of your pages on Bing’s results page. Copilot visibility is whether Microsoft’s assistant mentions and cites you when it answers. They need different data sources. For Bing web rankings, use Bing Webmaster Tools data for your own site, a rank tracker that supports Bing, or a SERP API with a Bing engine. For Copilot, use an answer monitoring API. This API covers Copilot; it does not return Bing web results, and there is no Bing endpoint in its OpenAPI document.
What changed for Bing data
Two Microsoft changes shape the options, both checked 2026-09-17:
- The Bing Search APIs are retired. Microsoft retired them on August 11, 2025 and decommissioned existing instances (lifecycle notice).
- The suggested replacement does not return results. Grounding with Bing Search, now documented under Microsoft Foundry Agent Service, gives an agent’s model web grounding, but the documentation states that developers and end users do not have access to the raw content it returns (Microsoft docs). You get the model’s answer with citations, not a ranked list.
So there is no first-party API that returns Bing’s ranked results for arbitrary queries.
Options for Bing web rankings
| Option | What you get | Limits |
|---|---|---|
| Bing Webmaster Tools and its API | Your verified sites’ queries with impressions, clicks and average positions | Your sites only; averages, not per-check positions; weekly updates for query stats |
| Rank tracker with Bing support | Scheduled Bing positions for your keyword list, with UI and reports | Plan limits; Bing support varies by vendor |
| SERP API with a Bing engine | Bing results pages as data for any query | Per-request pricing; you build the pipeline |
Bing Webmaster Tools data
For your own verified sites, the Bing Webmaster API is the first-party source. Its GetQueryStats method returns per query: Query, Impressions, Clicks, AvgImpressionPosition, AvgClickPosition and Date, and Microsoft’s reference says the data is updated every week (GetQueryStats). Microsoft’s documentation also says the legacy SOAP and POX interfaces retire on August 31, 2026, so new integrations should use the REST interface.
Average position from Webmaster data is an aggregate over your impressions, which makes it good for trends on your own site and useless for competitors or for queries where you have no impressions.
Rank trackers that list Bing
From vendor pages checked 2026-09-17:
| Tracker | Bing support | Source |
|---|---|---|
| AccuRanker | Google and Bing, desktop and mobile | help |
| SE Ranking | Google, Bing, Yahoo and YouTube | Bing tracking |
| Semrush Position Tracking | Bing’s first 50 results (announced 2023-12-18) | announcement |
| Nightwatch | Google, YouTube, Bing, Yahoo, DuckDuckGo, Google Maps | Bing rank tracker |
| Advanced Web Ranking | Bing among other engines | pricing |
| Serpstat | Not available for Bing | Serpstat |
We found no Bing rank tracking on Ahrefs’ or Wincher’s pages. Entry prices for these tools are compared in rank tracking software vs building on an API.
SERP APIs with a Bing engine
Several SERP APIs include Bing; the vendors and their surfaces are compared in best SERP APIs. If you need Bing web positions as data for any query, that is the category to evaluate. This API is not in it.
Copilot visibility with this API
Copilot visibility is how often, and how prominently, Microsoft Copilot mentions your brand or cites your pages when answering the prompts your customers ask.
On grounding: Microsoft’s documentation for Microsoft 365 Copilot says Copilot may fetch information from the Bing search service, turning a prompt into a short search query sent to Bing (Microsoft Learn). The transparency note for consumer Microsoft Copilot says it is grounded in web search results (Microsoft). Either way, the searches Copilot runs and the pages it cites are what you can observe, and both are in the response.
The request
POST /v1/monitor/copilot takes:
| Field | Required | Notes |
|---|---|---|
prompt |
Yes | Up to 10,000 characters |
country |
Yes | Country or region code |
state |
No | Two-letter US state code; only valid with country US |
include.markdown |
No | Adds a markdown rendering |
include.html |
No | Adds a URL to the answer’s full HTML |
include.rawResponse |
No | Adds the raw streaming events |
curl -X POST https://api.answerline.dev/v1/monitor/copilot \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{ "prompt": "What is the best project management tool for a 10-person agency?", "country": "US", "state": "TX" }'
The response
result contains:
text: the answer.sources[]: sources referenced, withposition,url,labelanddescription.citationPills[]: inline citations, one entry per pill and source pair, withcitationPillId,url,domain,labelandposition. A pill that cites several sources yields several entries sharing acitationPillId.searchQueries[]: the web searches Copilot ran while generating the answer, included automatically when available at no extra charge.shoppingCards[]: product cards with products, prices, sellers and ratings, when shown.map[]: places with name, address, coordinates, reviews and category, when shown.markdown,htmlandrawResponsewhen requested.
Copilot responses have no entities[] field, so brand mentions come from matching names in text. Monitoring Copilot with an API walks through every field.
Turning Copilot answers into rankings
Define four numbers per prompt, market and run:
- Mention: your brand name, or an alias, appears in
text. - Citation: a
sources[].urlorcitationPills[].domainis on your domain. - Citation rank: the lowest
positionamong your sources, empty when not cited. - Fan-out overlap: how many
searchQueriescorrespond to keywords you track on Bing.
import re
from urllib.parse import urlparse
BRAND = re.compile(r"\b(acme|acme pm)\b", re.I)
MY_DOMAIN = "acme.example"
def host(url: str) -> str:
h = urlparse(url).netloc.lower()
return h[4:] if h.startswith("www.") else h
def copilot_row(prompt_id: str, market: str, result: dict, tracked_keywords: set[str]) -> dict:
mine = [s["position"] for s in result.get("sources", []) if host(s["url"]).endswith(MY_DOMAIN)]
pills = {p["citationPillId"] for p in result.get("citationPills", []) if p.get("domain", "").endswith(MY_DOMAIN)}
queries = [q.lower() for q in result.get("searchQueries", [])]
return {
"prompt": prompt_id,
"market": market,
"mentioned": bool(BRAND.search(result.get("text", ""))),
"cited": bool(mine),
"citation_rank": min(mine) if mine else None,
"inline_pills": len(pills),
"search_queries": queries,
"fanout_tracked": sum(1 for q in queries if q in tracked_keywords),
}
Connecting Copilot to Bing keywords
searchQueries is the bridge between the two halves. Collect them over a few weeks and:
- Count how often each query appears across your prompt set.
- Compare frequent fan-out queries with the queries in your Bing Webmaster
GetQueryStatsexport. - Queries Copilot runs often, where your site has no impressions in Webmaster data, are content gaps for both Bing and Copilot.
- Add frequent fan-out queries to your Bing rank tracker’s keyword list.
Query fan-out explains the same technique for ChatGPT.
Scheduling a Copilot program
Copilot answers vary between runs, so treat each run as a sample and aggregate over several. Submit prompts as async tasks in batches of up to 500:
import os
from datetime import date
import requests
API = "https://api.answerline.dev"
HEADERS = {"Authorization": f"Bearer {os.environ['ANSWERLINE_API_KEY']}"}
prompts = {
"pm-agency": "What is the best project management tool for a 10-person agency?",
"pm-vs": "Acme PM vs Trello for client work",
}
states = ["CA", "NY", "TX", "FL", "IL"]
run = date.today().isoformat()
tasks = [
{
"taskType": "COPILOT",
"payload": {"prompt": text, "country": "US", "state": st},
"idempotencyKey": f"copilot:{run}:{pid}:US-{st}",
"webhook": {"url": "https://example.com/hooks/copilot"},
}
for pid, text in prompts.items()
for st in states
]
resp = requests.post(f"{API}/v1/async/task/batch", headers=HEADERS, json=tasks, timeout=60)
resp.raise_for_status()
print(resp.json()["summary"])
GET /v1/states?country=US lists the state codes supported for state-level targeting. Results arrive at the webhook as the task status body; verify Webhook-Signature before storing (how). Local AI answers by state covers reading state sweeps without mistaking noise for geography.
What it costs
A Copilot async task is 5 credits and a synchronous call 7. Copilot’s include flags add no credits.
| Program | Calculation | Credits per month |
|---|---|---|
| 100 prompts, US, weekly | 100 × 4 × 5 | 2,000 |
| 100 prompts, 5 states, weekly | 100 × 5 × 4 × 5 | 10,000 |
| 50 prompts, 51 US state codes, monthly | 50 × 51 × 5 | 12,750 |
| 100 prompts, US, daily, 3 samples per day | 100 × 30 × 3 × 5 | 45,000 |
The free tier’s 500 credits cover 100 Copilot tasks, enough for a baseline of your top prompts. Plan prices are on /pricing.
A combined Bing and Copilot report
| Section | Source | Metric |
|---|---|---|
| Bing web performance | Bing Webmaster GetQueryStats |
Impressions, clicks, average position per query, weekly |
| Bing positions vs competitors | Bing-capable rank tracker or SERP API | Position per keyword per check |
| Copilot presence | This API, Copilot tasks | Mention rate, citation rate, median citation rank per prompt cluster |
| Bridge | Copilot searchQueries joined to Webmaster queries |
Fan-out queries with and without impressions |
Pitfalls
- Expecting Bing results from this API. It has no Bing web endpoint; use Webmaster data, a tracker or a Bing SERP API.
- Treating Grounding with Bing Search as a data source. It does not return raw results.
- Comparing Webmaster average positions with tracker positions. One is an impression-weighted average for your site, the other a point observation.
- Single-run Copilot conclusions. Sample repeatedly and report rates.
- Matching brands only on domains. Copilot can mention you without citing you; check
texttoo. - Using
stateoutside the US. It is only valid withcountryUS.
Start with the Copilot engine page or the quickstart.
Questions
Does this API return Bing search results?
No. Its OpenAPI document has no Bing web search endpoint. It covers Microsoft Copilot answers through POST /v1/monitor/copilot, returning the answer text, sources, citation pills, the searches Copilot ran, shopping cards and map results.
Is the Bing Search API still available for rank tracking?
No. Microsoft retired the Bing Search APIs on August 11, 2025. Its suggested replacement, Grounding with Bing Search in Azure AI agents, does not give developers the raw search results, so it cannot serve as a rank data source.
How can I see my own site's Bing rankings for free?
Bing Webmaster Tools reports search performance for sites you have verified. Its API's GetQueryStats returns, per query, impressions, clicks, average impression position and average click position, and Microsoft says that data is updated weekly.
Which rank trackers support Bing?
On vendor pages checked 2026-09-17, AccuRanker, SE Ranking, Semrush Position Tracking (first 50 Bing results), Nightwatch and Advanced Web Ranking list Bing tracking. Serpstat states Bing rank tracking is not available, and we found no Bing tracking on Ahrefs or Wincher pages.
What does it cost to track Copilot answers?
A Copilot async task is 5 credits and a synchronous call is 7. Tracking 100 prompts in the US weekly is 100 × 4 × 5 = 2,000 credits a month; a sweep across 51 US state codes multiplies that by 51.