Capture what Claude (Anthropic) actually shows a user for a prompt — answered in a real browser, in the live app — and receive it as the canonical Envelope. Claude typically returns a prose answer plus cited sources and entity mentions.
PropertyValue
surfaces valueclaude
ProviderAnthropic
Credits per capture6
Commonly returnsanswer, evidence.sources, evidence.mentions
Every surface normalizes to the same Envelope. Code you write to parse a Claude result parses a ChatGPT, Perplexity, or Gemini result unchanged — that is the whole point. See Output formats.

Request

Add "claude" to surfaces on POST /v1/search. By default this is asynchronous: it returns 202 with a parent job and one child per surface × region. Poll GET /v1/jobs/:id or register a webhook for each child’s Envelope.
curl -X POST https://api.aisearchapi.dev/v1/search \
  -H "Authorization: Bearer $AISEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "what is retrieval augmented generation",
    "surfaces": ["claude"],
    "regions": [{ "country": "US" }]
  }'

Response 202 Accepted

{
  "jobId": "job_8t2q",
  "status": "processing",
  "children": ["job_8t2q.claude.us"]
}
Read the dotted child id — job_8t2q.claude.us — with GET /v1/jobs/job_8t2q.claude.us to fetch its Envelope.

Per-surface alias

POST /v1/search/claude targets Claude only and is sync by default — no ?mode=sync needed. It accepts two convenience fields: prompt (alias of query) and country (flat sugar for regions: [{ "country": "..." }]). It returns 200 with the Envelope inline.
curl -X POST https://api.aisearchapi.dev/v1/search/claude \
  -H "Authorization: Bearer $AISEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "what is retrieval augmented generation",
    "country": "US"
  }'
You can get the same inline Envelope from POST /v1/search by requesting a single surface with ?mode=sync or the header Prefer: wait. See Synchronous requests.

Envelope

A completed Claude child returns the canonical Envelope. Below is a trimmed example — answer.markdown is always populated, and answer.blocks[].referenceIds point into evidence.sources.
{
  "job": {
    "id": "job_8t2q.claude.us",
    "query": "what is retrieval augmented generation",
    "surface": "claude",
    "region": "US",
    "status": "completed",
    "warnings": [],
    "requestedAt": "2026-06-30T17:02:11Z",
    "completedAt": "2026-06-30T17:02:26Z"
  },
  "provenance": {
    "model": {
      "providerId": "anthropic",
      "observedLabel": "Claude",
      "inferred": false,
      "confidence": 0.97
    },
    "region": { "requested": "US", "effective": "US" },
    "surfacePresent": true
  },
  "answer": {
    "text": "Retrieval augmented generation (RAG) combines a language model with a retrieval step...",
    "markdown": "**Retrieval augmented generation (RAG)** combines a language model with a retrieval step...",
    "blocks": [
      { "type": "paragraph", "text": "Retrieval augmented generation (RAG)...", "referenceIds": [1, 2] }
    ]
  },
  "evidence": {
    "sources": [
      {
        "id": 1,
        "url": "https://example.com/rag-explained",
        "title": "Retrieval Augmented Generation, explained",
        "role": "cited",
        "cited": true,
        "charRanges": [[0, 62]],
        "quote": "RAG grounds model output in retrieved documents."
      },
      {
        "id": 2,
        "url": "https://example.com/rag-patterns",
        "title": "Common RAG patterns",
        "role": "cited",
        "cited": true,
        "charRanges": [[64, 120]],
        "quote": "A retriever fetches passages before generation."
      }
    ],
    "mentions": ["RAG", "vector database", "embeddings"]
  }
}
See The Envelope for every field, and Output formats for text vs markdown vs blocks.
If Claude returns nothing for a prompt, the job still completes: provenance.surfacePresent is false, job.warnings carries a surface_absent warning, and answer is empty. An empty capture costs no credits.

Credits

Each successful Claude capture costs 6 credits — the full Envelope, every field included. Credits are charged only on success; failed or empty captures are free. See Credits.

Regions

Request Claude in specific locations with regions. One child is created per surface × region, and each child’s provenance.region reports the requested vs effective location if it could not be honored exactly.
{
  "query": "best project management tools",
  "surfaces": ["claude"],
  "regions": [
    { "country": "US" },
    { "country": "GB", "city": "London" },
    { "country": "DE", "language": "de" }
  ]
}
This fans out to job_<id>.claude.us, job_<id>.claude.gb, and job_<id>.claude.de. See Regions.

Create a search

Full request body, sync variants, and idempotency.

The Envelope

Every field in the canonical per-surface result.

Output formats

How to read text, markdown, and blocks.

Credits

What each surface costs and when you are charged.