Every AI answer, one API.

Query ChatGPT, Claude, Perplexity and Google AI in one call. Get the answer real users see, with its citations, as JSON.

sample capturejob_8t2q · 4 surfaces
POST /v1/search
{ "query": "best CRM for startups",
  "surfaces": ["chatgpt", "perplexity",
    "google_ai_overview", "claude"] }
202 { "jobId": "job_8t2q" }

one call → 4 answers, 16 credits, charged only on success

illustrative envelope, run it live with a free key

powering GEO monitoring, AI share of voice and citation tracking

Why aisearchapi.dev

The API exists because model APIs do not match what AI products show buyers.

You get the answer people actually see.

Model APIs are the wrong proxy for AI visibility because they skip the product layer your buyers interact with: web search, citations, regional behavior, ranking and rendered UI.

Stylized answer cards merging into one normalized Envelope object.
The UI is the source of truth
AI visibility work only matters if it matches what buyers see. We return the rendered answer from the live product, with citations and formatting intact, as one Envelope.
Sources are part of the answer
Surfer found that API results and scraped ChatGPT results shared only 24% of brands and 4% of sources. aisearchapi.dev keeps the full citation and source set the UI exposes, inline with the answer.
One contract beats provider sprawl
ChatGPT, Claude, Perplexity, Copilot and Google AI keep changing. Your app reads the same JSON shape instead of maintaining a different parser for every surface.
The answer comes back scored (beta)
Turn on extract and every answer returns a mentions layer: which brands are named, where they rank, the sentiment, and whether they were cited. Brand visibility without your own NLP pass. Free during the beta.

Surfaces

The engines one request can reach today, with phase-2 surfaces marked honestly.

One request. Every AI engine.

Name the engines in a surfaces array and get one result each, same JSON for every one.

ChatGPT, LiveClaude (API), LivePerplexity, LiveGemini, LiveCopilot, LiveGoogle AI Overview, LiveGoogle AI Mode, LiveGoogle Search, LiveGoogle News, Live

Integrate

Two paths to the same Envelope: connect the MCP server, or make the HTTP calls yourself.

Let an agent wire it, or make three calls.

Connect the MCP server and let your agent call the API directly, or copy the HTTP flow yourself. Both paths use the same bearer token and end in the same Envelope.

AGENT PATH

Connect the MCP server. Your agent gets the live API.

One command wires Claude Code, Cursor or Claude Desktop to the aisearchapi.dev MCP server. Your agent calls typed tools for search, watches and usage, pulling live GEO data itself, on the same key and credits as the REST API.

claude mcp add --transport http aisearchapi \
  https://api.aisearchapi.dev/mcp \
  --header "Authorization: Bearer $AISEARCH_KEY"

search, watches and usage tools, live GEO data for Claude Code, Cursor and Claude Desktop

  1. Create a key

    Sign up and create a key in the dashboard. Your first 500 credits are free, no card.

    dashboard → API keys
    $ export AISEARCH_KEY=sk_live_…
  2. Ask your question

    One POST with your question and the AI engines you want. You get a job id back in milliseconds; each engine runs as its own job.

    POST /v1/search
    $ curl -X POST https://api.aisearchapi.dev/v1/search \
        -H "Authorization: Bearer $AISEARCH_KEY" \
        -d '{"query":"best CRM for startups","surfaces":["chatgpt","perplexity"]}'
    
    → 202 { "jobId": "job_8t2q" }
  3. Read the Envelope

    Poll the job (or attach a signed webhook) and read the answer and how it was captured, the same JSON for every engine.

    GET /v1/jobs/:id
    $ curl https://api.aisearchapi.dev/v1/jobs/job_8t2q.chatgpt.US
    
    { "status": "completed", "answer": { "markdown": "…" }, "provenance": { "official": false } }

Pricing

Credits by surface, no seat math, and no add-on fee for citation fields.

Credits, not seat math.

Every capture costs a few credits by surface, every Envelope field included, charged only on success. Start free with 500 credits; move up when your volume does.

Starter150,000 credits
$49/mo
Growth750,000 credits
$199/mo
Scale2,000,000 credits
$499/mo

Estimate the credits before you build.

Set daily checks per engine. One prompt, one engine and one region equals one successful capture.

ESTIMATED USAGE

780 credits / month

Charged only on success, failed queries refund automatically.

FITS ON

Starter$49/mo

2/day
2/day
2/day
0/day
0/day
0/day
0/day
0/day
What does a capture cost?
A few credits, priced per surface (Perplexity 3, ChatGPT 5, Claude (API) 3). Every Envelope field is included. The answer, its provenance and the evidence sources are never an add-on; the opt-in proof-of-page HTML snapshot (include.html, scrape surfaces only) rides along in the same capture.
What if a capture fails?
You are charged only when a capture succeeds. A failed child job refunds its credits automatically, exactly once, guaranteed by the ledger.
Do I need a card to try it?
No. Sign-up seeds 500 free credits on first use, enough for ~100 ChatGPT captures, with no card and no sales call.
Sync or async?
A single surface and region with no webhook runs sync, one 200 with the Envelope inline. Add more surfaces or regions, or a webhook, and it goes async (202 + poll or signed webhooks). Force either with ?mode=sync or ?mode=async; no sync surcharge.

Operations

The browser, regional and durability work your product should not have to maintain.

We handle the part that breaks.

AI apps redesign constantly and fight bots. That churn is our problem. Your integration reads one stable JSON contract.

Stylized global routing map resolving regional runs into one stable Envelope object.
A real browser fleet
We run real browser sessions against the live apps. Rendering, anti-bot walls and app redesigns are our problem, never yours.
Ask from any country — or any locality
Target any ISO-3166 country, with optional state, city and language, up to 10 per request, and every browser capture egresses through a city-level residential exit. On the Google surfaces you can also pin a location geotarget — one of ~100k named localities — for precise local rank tracking. Requested vs effective region and locality are recorded on every Envelope, so drift is visible instead of silent.
Results you can re-fetch
Every result returns a structured Envelope you can re-fetch through the API. Need the page itself? Opt into a proof-of-page HTML snapshot per request and pull it back verbatim.
Built for volume
Send up to 500 questions per batch. Every query is a durable job with retries, signed webhooks and idempotency keys, and you only pay when it succeeds.
Scheduled on our side
Point a watch at a query and the Watch API re-runs it on your interval, then delivers each Envelope to your webhook like any async job. No cron, no queue, no scheduler to keep alive on your end. Creating a watch is free; each run bills the normal per-surface credits on success.

Your first results are three calls away.

Grab a bearer token, query every AI answer engine, and get the rendered answers back as structured results. 500 free credits, no card.