Microsoft Copilot answers API

Copilot Scraper API: Microsoft Copilot Answers and Citations

Searlo's Copilot scraper API asks Microsoft Copilot your prompt on Bing and returns the answer, its citations and its citation pills (the source chips Copilot shows inside the answer) as JSON, for 8 credits per answer.

GET/api/v1/search/web?q=postgres+connection+pooling&num=3
200 OK0.17s1 credit85,000 results
{  "searchTime": 0.17,  "totalResults": 85000,  "page": 1,  "organic": [    {      "position": 1,      "title": "31.10. Connection Pools and Data Sources",      "link": "www.postgresql.org/docs/…",      "domain": "postgresql.org",      "snippet": "For an environment without an application se…"    },    { "position": 2, "domain": "medium.com", … },    { "position": 3, "domain": "stackoverflow.blog", … }  ],  "credits": 1}

How can I get Microsoft Copilot's answers and citations through an API?

Send the prompt to GET /search/ai/copilot. Searlo asks Copilot Search on Bing in a real browser session, waits for the answer and returns the text, the citations, the citation pills and the cited domains as JSON. Each answer costs 8 credits: $2.40 per 1,000 answers at $0.30 per 1,000 credits.

It is the answer Bing shows an anonymous visitor, not Microsoft 365 Copilot or a signed-in account. It varies from run to run, and a live one typically takes 10 to 30 seconds.

Endpoint
GET https://api.searlo.tech/api/v1/search/ai/copilot?q=…&gl=us&hl=en
Where the answer comes from
Copilot Search on Bing, asked anonymously; gl and hl become Bing's market code, such as en-US
Price
8 credits per answer: $2.40 per 1,000 at $0.30 per 1,000 credits, $1.60 on the Enterprise pack— our pricing
Returned
answer, answerMarkdown, citations, citationPills, sources, related, complete
Latency and caching
Typically 10-30 s live; the same request within 1 hour is served from cache unless cache=false
AI citations vs Google's top 10
On average 12% of URLs cited by ChatGPT, Gemini and Copilot rank in Google's top 10 for the same query (15,000 queries, August 2025)— Ahrefs

Third-party figures on this page last verified against the sources linked above. Prices change; if you find one of these stale, tell us and we will correct it.

What the Copilot scraper API returns

Microsoft's Copilot answers questions inside Bing, through Copilot Search, and shows its sources as small chips inside the answer. For a brand, those chips are the Bing Copilot citations that matter: they are where Copilot sends the reader. They are not a copy of Google's results either. In Ahrefs' study of 15,000 queries, on average only 12% of the URLs cited by ChatGPT, Gemini and Copilot ranked in Google's top 10 for the same query.

GET /search/ai/copilot asks Copilot Search for you, anonymously, in a real browser session, and reads the finished answer off the page. You get the answer text; citations in the same format as the other engines (index, url, title, domain); citationPills, with each chip's label, position and description; sources, the unique cited domains for share of voice; related, the follow-up questions Bing shows; and complete.

gl and hl become Bing's market code, written hl-GL, so gl=gb&hl=en asks as en-GB and you query the Copilot of the market you are measuring. Nothing signs in to a Microsoft account, and this is not Microsoft 365 Copilot.

Searlo is independent and is not affiliated with, endorsed by or sponsored by Microsoft. Microsoft and Copilot are trademarks of Microsoft.

Citation pills, field by field

Each entry in citationPills. citations carries the same sources in the shared format, so code written for the other engines works unchanged
Pill fieldWhat it holds
citationPillIdThe pill's id, counting from 0
positionWhere the pill sits in the answer, counting from 1
labelThe text on the chip, usually the site name, such as RTINGS.com
titleThe title of the cited page
urlThe cited page's address
domainThe page's domain, www. removed
descriptionThe snippet Copilot attaches to the source

Ask Copilot in one request

Pass the prompt as q, with gl and hl for the Bing market. A live answer typically takes 10 to 30 seconds, so give your HTTP client a generous timeout.

curl "https://api.searlo.tech/api/v1/search/ai/copilot?q=best+noise+cancelling+headphones&gl=us&hl=en" \
  -H "x-api-key: YOUR_API_KEY"

# The same question in Bing's en-GB market
curl "https://api.searlo.tech/api/v1/search/ai/copilot?q=best+noise+cancelling+headphones&gl=gb&hl=en" \
  -H "x-api-key: YOUR_API_KEY"
import requests

resp = requests.get(
    "https://api.searlo.tech/api/v1/search/ai/copilot",
    headers={"x-api-key": "YOUR_API_KEY"},
    params={"q": "best noise cancelling headphones", "gl": "us", "hl": "en"},
    timeout=180,  # a live answer typically takes 10-30 seconds
)
resp.raise_for_status()
data = resp.json()

print(data["answer"][:300])
for pill in data.get("citationPills", []):
    print(pill["position"], pill["label"], pill["url"])
print("cited domains:", data["sources"], "| complete:", data["complete"])
const params = new URLSearchParams({
  q: "best noise cancelling headphones",
  gl: "us",
  hl: "en",
});

const resp = await fetch(
  `https://api.searlo.tech/api/v1/search/ai/copilot?${params}`,
  {
    headers: { "x-api-key": "YOUR_API_KEY" },
    signal: AbortSignal.timeout(180_000), // live answers typically take 10-30 s
  },
);
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
const data = await resp.json();

for (const pill of data.citationPills ?? []) console.log(pill.position, pill.label, pill.url);
console.log("cited domains:", data.sources);

Example response (illustrative)

Real keys, illustrative values, shortened. Copilot is the only engine with citationPills; citations lists the same sources in the shared format. model is empty and threadUrl is null on Copilot.

{
  "success": true,
  "searchParameters": {
    "q": "best noise cancelling headphones",
    "type": "ai",
    "engine": "copilot",
    "mode": "ui",
    "gl": "us",
    "hl": "en"
  },
  "answer": "For noise cancelling, reviewers most often recommend over-ear models from Sony and Bose, with Apple's AirPods Max as an option for iPhone users. If you mostly fly, prioritize comfort and battery life…",
  "answerMarkdown": "For noise cancelling, reviewers most often recommend over-ear models from Sony and Bose, with Apple's AirPods Max as an option for iPhone users. If you mostly fly, prioritize comfort and battery life…",
  "citations": [
    { "index": 1, "url": "https://www.rtings.com/headphones/…", "title": "The Best Noise Cancelling Headphones", "domain": "rtings.com" },
    { "index": 2, "url": "https://www.soundguys.com/…", "title": "Best noise cancelling headphones", "domain": "soundguys.com" }
  ],
  "sources": ["rtings.com", "soundguys.com"],
  "citationPills": [
    {
      "citationPillId": 0,
      "position": 1,
      "label": "RTINGS.com",
      "title": "The Best Noise Cancelling Headphones",
      "url": "https://www.rtings.com/headphones/…",
      "domain": "rtings.com",
      "description": "Lab-tested picks across price ranges…"
    },
    {
      "citationPillId": 1,
      "position": 2,
      "label": "soundguys.com",
      "title": "Best noise cancelling headphones",
      "url": "https://www.soundguys.com/…",
      "domain": "soundguys.com",
      "description": "Our favorite noise cancelling headphones for travel and commuting…"
    }
  ],
  "related": [
    "Which headphones are best for flights?",
    "Are noise cancelling earbuds as good as headphones?"
  ],
  "model": "",
  "threadUrl": null,
  "complete": true,
  "fetchedAt": "2026-09-29T10:02:37.118Z",
  "source": "searlo.tech(copilot)",
  "cached": false
}

Response fields

Keys in a successful GET /search/ai/copilot response
KeyTypeWhat it holds
answerstringThe answer as plain text
answerMarkdownstringOn Copilot, the same rendered text as answer
citationsarrayEach cited page as { index, url, title, domain }, built from the pills
sourcesarrayThe unique cited domains, www. removed: the list to count for share of voice
citationPillsarrayCopilot's source chips, field by field as in the table above
relatedarrayThe follow-up questions Bing shows, when it shows them
modelstringEmpty on Copilot
threadUrlnullAlways null on Copilot
completebooleanfalse if the capture ended before the page stopped changing; incomplete answers are never cached
cachedbooleantrue when the answer came from the 1-hour cache

Request parameters

Query parameters for GET /search/ai/copilot; send your key in the x-api-key header
ParameterRequiredDefaultWhat it does
qYesnoneThe prompt, up to 500 characters
glNousCountry; with hl it forms Bing's market code (gl=us&hl=en is en-US). Routed through an exit in that country when one is available
hlNoenLanguage; the first half of Bing's market code
cacheNotruefalse forces a fresh run, billed like any live call; otherwise the same request within 1 hour gets the stored answer

Why a Copilot answer costs 8 credits

A Google web search on Searlo is 1 credit. A Copilot answer is 8, because it is produced live, in Copilot's own interface on Bing: a real browser session that loads the page, lets Copilot search and write, waits for the source chips to appear, and retries when Bing pushes back. That is the point, since it is exactly what a person searching on Bing is shown.

Each engine is priced on its own, because each costs a different amount to run live. Copilot and ChatGPT sit at 8 credits, Gemini at 4 and Perplexity at 2.

Credits are charged per successful call, live or cached. Refused or failed calls (HTTP 429 or 503, success: false) are refunded automatically. Packs are one-time purchases with no subscription; new users' credits are valid for 90 days.

What Copilot answers cost on each pack

8 credits per answer. Pack price ÷ credits × 8, rounded to the cent
PackPriceCopilot answersPer 1,000 answers
Micro$3.99625$6.38
Starter$9.992,500$4.00
Builder$29.999,375$3.20
Scale$74.9931,250$2.40
Pro$199.99112,500$1.78
Enterprise$799500,000$1.60

Latency, caching and non-determinism

Copilot's answers are non-deterministic: the wording, the brands and the pills can change between runs of the same prompt. Sample each prompt several times and report rates, not single answers.

  • A live answer typically takes 10 to 30 seconds while Copilot searches and writes. Run tracking jobs in the background; the samples allow 180 seconds.
  • complete is false when the capture stopped before the page stopped changing. On Copilot that can happen after the answer text is whole, because Bing keeps loading widgets under it. Incomplete answers are never cached.
  • The same request (prompt, gl and hl) within 1 hour returns the stored answer with cached: true. Pass cache=false for every sample you want independent.
  • Send repeat samples one after another. Identical requests in flight at the same moment can be merged into one run: both are billed and both get the same answer.
  • At capacity the API returns 429 with a Retry-After header. Wait that long and retry; the refused call costs nothing.
  • Country targeting is best-effort: the request goes out through an exit in the gl country when one is available.

Compare Copilot with the other engines

Pair it with Google data

What teams track in Copilot

  • Whether Copilot names your brand for your category's questions on Bing
  • Which sites Copilot's citation pills send readers to in your market
  • Share of voice on Bing's answer surface next to Google's AI Overviews
  • Market-by-market checks using Bing's own market codes
  • Client reporting for AEO and GEO agencies, per prompt and per week

FAQ

Copilot scraper API: FAQ

Is this the Microsoft Copilot API?

No. Searlo is independent and not affiliated with Microsoft. This endpoint captures the public Copilot answer on Bing, the one an anonymous visitor sees, and returns it as JSON. It does not use Microsoft 365 Copilot or any Microsoft account.

What are citation pills?

The small source chips Copilot places inside its answer, each labelled with a site name. citationPills returns them in order with citationPillId (from 0), position (from 1), label, title, url, domain and description. citations carries the same sources in the shared format, so code written for the other engines works unchanged.

How much does the Copilot scraper API cost?

8 credits per answer: $2.40 per 1,000 answers at $0.30 per 1,000 credits (the Scale pack), $1.60 on the Enterprise pack and $6.38 on the smallest. The 3,000 free credits cover 375 answers, and packs are one-time purchases with no subscription.

Can I ask Copilot from another country?

Yes. gl and hl become Bing's market code, so gl=gb&hl=en asks as en-GB, and the request goes out through an exit in that country when one is available. Treat country targeting as best-effort.

Why is complete sometimes false?

complete is false when the capture ended before the page stopped changing. On Copilot that can happen after the answer text is whole, because Bing keeps adding widgets under the answer. Incomplete answers are returned but never cached.

How long does a request take?

A live answer typically takes 10 to 30 seconds while Copilot searches and writes. The same request within an hour returns the cached answer without a new run, unless you pass cache=false.

What rate limits apply?

Copilot calls share your account's search rate limit, the same on every plan: 300 req/s, 10,000/min and 900,000/day. The tighter limit in practice is Copilot capacity. When it is full the API returns 429 with a Retry-After header, and the refused call is not charged.

Start tracking Copilot answers

3,000 free credits and no card: enough for 375 Copilot answers.