← All surfaces
surfaces: ["claude"]

Track Claude’s answers — served honestly, via the official API.

Claude sits behind a login wall, so anonymous scrapers cannot reach its consumer UI at all. We serve Claude today through the official Anthropic model API (via the OpenRouter gateway) — clearly stamped api_surrogate in every Envelope — and the authenticated own-fleet browser lane that captures the real claude.ai UI is phase-2 roadmap. That labeling is the point: you always know exactly what you measured.

Credit cost
6 credits / successful capture
Fidelity
fidelity: api_surrogate
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": "is aisearchapi good for geo tracking",
    "surfaces": ["claude"],
    "regions": [{ "country": "US" }],
    "method": "auto"
  }'
# → 202 { "jobId": "…", "children": ["….claude.…"] }
# then poll GET /v1/jobs/:childId — or add ?mode=sync for an inline Envelope

What a Claude capture returns.

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

answer.text · answer.markdown · answer.blocks

Claude’s answer normalized to the same shape as every other surface — one parser reads ChatGPT, Perplexity and Claude alike.

evidence.sources[].quote

Claude exposes verbatim cited_text — the exact snippet it quoted from a source. We carry it through as sources[].quote, provenance-grade data most pipelines drop.

evidence.sources[]

Cited and retrieved sources with roles, cited booleans and charRanges into the answer.

provenance.fidelity = "api_surrogate"

The honesty stamp: this capture came from the official model API, not the consumer UI. When the browser lane ships, its captures will say consumer_ui — you can always tell them apart.

provenance.model

Verified providerId with inferred:false and high confidence — an official API capture knows exactly which model answered.

job.artifacts.rawKey

The verbatim upstream API payload retained durably in R2 — diffable and auditable later.

Envelope excerpt — claude
{
  "job": {
    "id": "job_2d71e9bc.claude.official-api.US",
    "surface": "claude",
    "method": "official-api",
    "status": "completed",
    "warnings": [],
    "artifacts": { "rawKey": "raw/2026/06/30/job_2d71e9bc.json",
                   "screenshotKey": null, "proofHtmlKey": null }
  },
  "provenance": {
    "acquisition": "official-api",
    "official": true,
    "fidelity": "api_surrogate",
    "model": { "providerId": "claude-sonnet-4-5", "inferred": false,
               "confidence": 0.99 },
    "webSearch": { "enabled": true, "known": true },
    "surfacePresent": true,
    "requestedRoute": "auto",
    "actualRoute": "official-api"
  },
  "answer": { "text": "…", "markdown": "…", "blocks": [ … ] },
  "evidence": {
    "sources": [
      { "id": 0, "url": "https://…", "title": "…", "role": "cited",
        "cited": true, "charRanges": [[0, 58]],
        "quote": "verbatim snippet Claude cited from this source" }
    ],
    "fanOut": { "provenance": "observed", "queries": ["…"] }
  }
}

The lanes, stated honestly.

Login-walled. Served today through the official model API (Anthropic via the OpenRouter gateway), so auto resolves to official-api. The authenticated own-fleet browser lane that captures Claude’s consumer UI is phase-2 — the wedge anonymous scrapers structurally cannot reach.

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

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

Claude capture, asked precisely.

Why is Claude served via the official API instead of the browser?

Claude’s consumer UI requires a signed-in session, and our authenticated account pool is not provisioned yet — so we route auto to the official Anthropic API (via the OpenRouter gateway) and stamp every Envelope api_surrogate. We ship the honest lane rather than pretending a browser lane exists. When the account pool comes online, auto flips to own-fleet with no integration change on your side.

Is an api_surrogate capture still useful for monitoring Claude?

Yes — it is the same model family answering the same prompt with web search, and it returns cited sources including Claude’s verbatim quote snippets. What it is not is the consumer UI (no UI-layer ranking or presentation), and the fidelity field exists precisely so you never mistake one for the other.

Can any scraper reach the real claude.ai UI today?

Not anonymously — the surface is login-walled, which is why anonymous proxy-based competitors do not offer Claude at all. Reaching it requires an authenticated browser session; that account-pool lane is our phase-2 roadmap, and until it ships we say "phase-2", not "live".

What does a Claude capture cost?

Six credits per successful capture with every Envelope field included, charged only on success. New accounts start with 500 free credits.

How will I know when the consumer-UI lane ships?

The capability matrix on our surfaces page is generated from the same contract the router enforces, and provenance.fidelity on each capture tells you what actually ran. When own-fleet Claude goes live you will see it in the matrix, the changelog, and — most reliably — in the fidelity of your own Envelopes.

Capture Claude in one request.

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