← All surfaces
surfaces: ["copilot"]

The Microsoft Copilot scraper API for the real answer surface.

Copilot fronts Bing’s retrieval stack with a consumer answer UI — and there is no public API that returns what that UI shows. We capture it browser-first on our own fleet: the rendered Copilot answer, its cited sources and related queries, as one canonical Envelope with a durable screenshot and proof-of-page behind every claim.

Credit cost
5 credits / successful capture
Fidelity
fidelity: consumer_ui
Regions
9 countries
POST /v1/search
curl -sS -X POST "https://api.aisearchapi.dev/v1/search" \
  -H "Authorization: Bearer $AISEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "best project management software",
    "surfaces": ["copilot"],
    "regions": [{ "country": "US" }, { "country": "DE" }],
    "method": "auto"
  }'
# → 202 { "jobId": "…", "children": ["….copilot.…"] }
# then poll GET /v1/jobs/:childId — or add ?mode=sync for an inline Envelope

What a Copilot capture returns.

One canonical Envelope — the same four sections every surface returns — with the fields Copilot actually populates. Field names below are the contract, not a summary.

answer.text · answer.markdown · answer.blocks

The Copilot answer as rendered, normalized to the same block structure as every other surface.

evidence.sources[]

Copilot’s inline citations and reference links with roles, cited booleans and charRanges.

evidence.fanOut

Observed related queries — what Copilot searched or suggested around your prompt.

evidence.mentions

The derived brand-mentions layer for share-of-voice work, with sentiment and supporting sources.

provenance

consumer_ui fidelity, loginState (guest today), requested-vs-effective region, captcha and stop-reason — every capture self-describes.

job.artifacts

Screenshot + proof-of-page HTML + raw capture in R2, kept durably.

Envelope excerpt — copilot
{
  "job": {
    "id": "job_4b6a913f.copilot.own-fleet.US",
    "surface": "copilot",
    "method": "own-fleet",
    "status": "completed",
    "warnings": [],
    "artifacts": {
      "screenshotKey": "shots/2026/06/30/job_4b6a913f.png",
      "proofHtmlKey": "proof/2026/06/30/job_4b6a913f.html",
      "rawKey": "raw/2026/06/30/job_4b6a913f.json"
    }
  },
  "provenance": {
    "acquisition": "own-fleet",
    "fidelity": "consumer_ui",
    "loginState": "logged_out",
    "webSearch": { "enabled": true, "known": true },
    "surfacePresent": true,
    "region": { "requested": "US", "effective": "US" }
  },
  "answer": { "text": "…", "markdown": "…", "blocks": [ … ] },
  "evidence": {
    "sources": [
      { "id": 0, "url": "https://…", "title": "…",
        "role": "cited", "cited": true, "charRanges": [[40, 96]] }
    ],
    "fanOut": { "provenance": "observed", "queries": ["…"] },
    "mentions": { "engine": "mentions@0.9.0", "confidence": 0.78, "items": [ … ] }
  }
}

The lanes, stated honestly.

Captured live by own-fleet browser render of the Copilot UI. The Copilot official-api and managed-vendor lanes are phase-2.

Phase-2 lanes are roadmap, not product — pinning one returns an honest 422 today. The full picture is on the capability matrix.

own-fleet · auto
Supported
managed-vendor
Phase 2
official-api
Phase 2
cost: 5 credits (charged on success only)free tier: 500 credits — pricing
regions:USGBDEFRCAAUINJPBR+ optional city & language

Copilot capture, asked precisely.

How is Copilot captured?

Own-fleet browser render: a real stealth-browser session loads the Copilot UI as a guest, submits your prompt, waits for the answer to finish streaming, and normalizes the result. auto routes here; the Copilot official-api and managed-vendor lanes are phase-2 and a pin to either returns an honest 422 today.

Is there an official Copilot API you could use instead?

A Copilot API lane is on our phase-2 roadmap, but the consumer answer surface — the ranking, citations and presentation your customers actually see — is only observable by rendering the UI. That is the lane we shipped first, and the capability matrix marks the rest honestly.

What does a Copilot capture cost?

Five credits per successful capture, all Envelope fields included, charged only on success. 500 free credits on sign-up.

Which regions are supported?

The nine v1 countries — US, GB, DE, FR, CA, AU, IN, JP, BR — as structured regions objects, one child capture per region, with requested-vs-effective geo recorded in provenance.

What if Copilot shows no answer for my query?

The capture completes truthfully: surfacePresent false, a surface_absent warning, zero credits charged — and the screenshot proves the absence. We never coerce an empty surface into a fake result.

Capture Copilot in one request.

500 free credits, charged only on success — and the same Envelope for every other surface when you add them.