Licensed data · AI inference · One API

The prism is the same: raw results still come apart into clean, typed bands. What leaves the other side is no longer only JSON — it is analysis, grounded in licensed data and computed on hardware we own.

  • Licensed sources · no anti-bot evasion
  • Processed in the EU, never sent to model vendors
  • Credits on every response header

The intelligence layer

Eight capabilities, three jobs.

Raw results are a commodity. What is not a commodity is licensed data with analysis computed on top of it — same envelope, same key, same bill.

Being built in this release. The endpoints, request shapes and credit prices below are already fixed in code, which is why we can publish them — but every card is marked soon because none of them is serving traffic yet. What is live today is further down the page: the six data bands, the twelve inference tools and catalog extraction.

Family 1 of 3

Build agents

Grounding that arrives ready to inject: deduplicated, reranked, cited, and cut to your token budget.

Context Packs

POST /v1/context

One call turns a query into grounding blocks that already fit your context window — deduplicated, reranked and citable.

3 creditsSoon
request
curl -X POST https://api.dataswap.io/v1/context \
  -d '{ "query": "vector database pricing", "token_budget": 4000 }'

Schema-Fill

POST /v1/extract/schema

Give it a JSON schema and it comes back filled from the live web, with a citation and a confidence per field — null where there is no evidence.

3 creditsSoon
request
curl -X POST https://api.dataswap.io/v1/extract/schema \
  -d '{ "query": "acme robotics funding", "json_schema": { … } }'

Dataswap MCP

npx @dataswap.io/mcp

One command wires any MCP agent to licensed search plus the analysis tools — no glue code, no scraper in your supply chain.

billed as the routes it callsSoon
request
npx @dataswap.io/mcp

# tools exposed: search · context · entity · schema_fill · answer_landscape

Family 2 of 3

Win in AI search (GEO)

The answer layer is the new results page. These two measure who the engines actually cite, and what they say about your shelf.

Answer Landscape

POST /v1/geo/answer-landscape

One call returns the organic top-10, the AI Overview and AI Mode with their citations, and sampled LLM answers — with share-of-answer computed in code, not asked of a model.

4 credits + the operations it runsSoon
request
curl -X POST https://api.dataswap.io/v1/geo/answer-landscape \
  -d '{ "query": "best home ev charger", "brand": "example.com" }'

AI Shelf

POST /v1/commerce/shelf

Share of digital shelf for a whole category in one snapshot: who is in the shopping units and at what price, who ranks, and which products the AI Overview names.

10 credits + the operations it runsSoon
request
curl -X POST https://api.dataswap.io/v1/commerce/shelf \
  -d '{ "keywords": ["trail running shoes"], "market": "pt" }'

Family 3 of 3

Know any company or product

Everything about one entity, captured at a single timestamp — and a receipt that says where it came from.

Entity Cards

POST /v1/entity

A domain-360 in one call: search presence, backlinks, technologies, reviews and registration, all read at the same instant instead of stitched from three vendors on three days.

4 credits + the operations it runsSoon
request
curl -X POST https://api.dataswap.io/v1/entity \
  -d '{ "domain": "example.com" }'

MatchGraph

POST /v1/commerce/match

The most expensive question in e-commerce as an API: is this offer the same product as that one? Verdict same / variant / bundle, with a confidence and the evidence.

5 creditsSoon
request
curl -X POST https://api.dataswap.io/v1/commerce/match \
  -d '{ "product": { "title": "Trail Runner GTX 42" } }'

Provenance Receipts

POST /v1/provenance/verify

Every response can carry a signed manifest of where it came from, and anyone can verify it without an API key — including the legal team that has to approve you.

0 creditsSoon
request
# Public and keyless — whoever audits you has no key.
curl -X POST https://api.dataswap.io/v1/provenance/verify \
  -d '{ "receipt": { … }, "payload": { … } }'

The Authorization: Bearer sk_… header is omitted above for width, not because it is optional. Composed calls quote a ceiling and settle on the real cost, so you are never billed for parts that did not run — see pricing.

Answer Landscape

Ranking first is not the same as being cited.

For one query we read the organic results, the AI Overview and AI Mode with their citations, and sampled answers from three LLMs — then compute share of answer per domain in code.

POST /v1/geo/answer-landscapeSoonbest home ev charger

Share of answer · 12 prompts per engine

Sample data, not a live call — this page never touches the API. AI Overview and AI Mode are read from the results page and are deterministic; LLM answers are not, so they are sampled over 12 prompts and the methodology travels with the response.

Who cites techradar.com

  • AI Overviewcited
  • AI Modecited
  • ChatGPTcited
  • Gemini
  • Perplexitycited
Cross-engine consensus61

How much the engines agree on the set they cite. Low consensus means the answer is still up for grabs.

Cited but barely ranked
2 of 6
domains outside the organic top 5 that the engines still cite
Engines read per call
5
AI Overview · AI Mode · three LLM answers
Synthesis cost
4 cr
plus the operations the call runs, settled at real cost

Live today

Twelve tools already in production.

The eight capabilities above are new. This part is not: these twelve have been serving and billing since July, at the same credit prices you see here.

Answer

2 cr

/v1/ai/answer

A grounded answer with [n] citations back to each source.

2 with your own sources · 4 if we fetch the SERP

Content brief

3 cr

/v1/ai/content-brief

Angles, sections and entities to cover, from the top of the SERP.

AI visibility (GEO)

3 cr

/v1/ai/visibility

Whether and how a brand shows up in AI engine answers.

Explain rank changes

2 cr

/v1/ai/serp-diff-explain

Why the rankings moved, and what to do next.

Competitor brief

3 cr

/v1/ai/competitor-brief

Who ranks, on what, and where the gaps are.

Review summary

3 cr

/v1/ai/review-summary

Recurring themes, sentiment and concrete actions.

Keyword clustering

2 cr

/v1/ai/keyword-cluster

Groups a keyword list by topic and intent.

Search intent

2 cr

/v1/ai/serp-intent

Intent classification plus the SERP features that signal it.

Content gap

3 cr

/v1/ai/content-gap

Topics your competitors cover and you do not.

Expand People-Also-Ask

2 cr

/v1/ai/paa-expand

Turns PAA questions into grounded answers.

Summarize

2 cr

/v1/ai/summarize

Multi-document summary with citations back to each document.

Rerank

1 cr

/v1/ai/rerank

Reorders documents by relevance to a query. Built for RAG pipelines.

LivePOST /v1/ai/*

How they behave

  • Grounded, with citations. Answers point back at the source that produced them, by index. No source, no claim.
  • Honest confidence. Every result carries one, and it is capped when there is nothing to ground on — the number goes down instead of the prose getting more certain.
  • Same envelope, same ledger. They return the identical response shape as the data routes and spend from the same credit balance. No second API, no second bill.
Confidence ceiling with zero sources35
Tools live
12
serving and billing since July
Cost per call
1–4 cr
depends on the tool, and on whether we fetch the sources for you

Run any of them without writing code in the Playground, or read the request bodies in the full reference.

The licensed layer

Analysis is only as good as what feeds it.

Underneath every capability above sits the same thing: results obtained under licence, refracted into typed tables with a fixed color each. All six bands are live and billing today. Hover one to see the fields it carries.

Search

Live

POST /v1/search

Organic results as a ranked, typed table. No HTML, no XPath, no parsing.

  • organic_results[].position
  • organic_results[].title
  • organic_results[].link
  • organic_results[].displayed_link
  • organic_results[].snippet
  • related_searches[].query

News

Live

POST /v1/news

Headlines with source and recency attached to every row.

  • news_results[].position
  • news_results[].title
  • news_results[].source
  • news_results[].date
  • news_results[].link
  • news_results[].snippet

Maps

Live

POST /v1/maps

The local pack with ratings, review counts and stable place IDs.

  • local_results[].position
  • local_results[].title
  • local_results[].rating
  • local_results[].reviews
  • local_results[].address
  • local_results[].place_id

AI

Live

POST /v1/serp/ai-overview

The answer blocks with the sources they cite — the raw material every GEO question is made of.

  • ai_overview.text
  • ai_overview.markdown
  • ai_overview.references[].domain
  • ai_overview.references[].url
  • ai_mode.text
  • ai_mode.references[].source

Shopping

Live

POST /v1/shopping

The product grid decomposed — prices, sellers, thumbnails.

  • shopping_results[].position
  • shopping_results[].title
  • shopping_results[].price
  • shopping_results[].source
  • shopping_results[].link
  • shopping_results[].thumbnail

Images

Live

POST /v1/images

Image results with originals and provenance attached.

  • images_results[].position
  • images_results[].title
  • images_results[].thumbnail
  • images_results[].original
  • images_results[].source

Beside the six bands run the rest of the catalogue on the same key and the same ledger: backlinks, keyword research, on-page, business and local data, Amazon, reviews, YouTube and Trends — the parts the composed capabilities read from. See every endpoint.

Decomposition

Watch a page become data.

Pick a query. The raw, unreadable SERP on the left refracts into typed, spectral JSON blocks on the right.

Sample query

google_search

text/html · 1.4 MB · unstructured
Raw SERP
req_01JX3F0R6GQ8google_search842 ms1 credit
organic_results[0]Search
{
  "position": 1,
  "title": "Best home EV chargers of 2026, tested",
  "link": "https://www.techradar.com/best/ev-chargers",
  "displayed_link": "techradar.com › best",
  "snippet": "We installed 14 level-2 chargers and measured speed, app quality and reliability."
}
organic_results[1]Search
{
  "position": 2,
  "title": "EV charger buying guide: amps, connectors, smart features",
  "link": "https://www.caranddriver.com/shopping-advice/ev-charger-guide",
  "snippet": "A 48-amp unit adds roughly 46 miles of range per hour — check your panel first."
}
news_results[0]News
{
  "position": 1,
  "title": "New NEVI round funds 1,200 fast-charging stalls",
  "source": "Reuters",
  "date": "2 days ago",
  "link": "https://www.reuters.com/business/energy/nevi-round"
}
people_also_ask[0]AI
{
  "question": "Is a 48A home charger worth it over 32A?",
  "snippet": "Only if your car's onboard charger accepts 11.5 kW or more."
}
related_searchesSearch
[
  {
    "query": "best ev charger 2026"
  },
  {
    "query": "level 2 charger installation cost"
  }
]

Local sample data — this demo never calls the API. Run it live in the playground →

Agent-native

Built for code that calls code.

The interface is the envelope — the same one for raw bands and for analysis. Predictable fields, machine-checkable costs, retries that never double-spend.

  • One clean envelope

    Every engine returns the same JSON envelope: search_metadata plus typed result tables. No HTML, ever.

  • Idempotency built-in

    Send an Idempotency-Key header and retries are safe — replays return the original response, flagged X-Idempotent-Replay.

  • Credits in the headers

    X-Credits-Used and X-Credits-Remaining ride on every response, so agents can budget without polling a dashboard.

  • Official client, zero dependencies

    npm install dataswap. It waits out the 202 handoff, retries without double-charging, and hands you typed errors — the parts you would otherwise write yourself.

  • The analysis routes are not a second API

    Context Packs, Entity Cards and the rest return the same envelope, take the same key, and spend from the same balance as a plain search. Nothing new to authenticate, meter or reconcile.

search.mjs

npm install dataswap — zero dependencies, TypeScript types included. Read the docs.

response · 200 OK
HTTP/1.1 200 OK
X-Request-Id: req_01JX3F0R6GQ8
X-Credits-Used: 1
X-Credits-Remaining: 74999

{
  "search_metadata": {
    "status": "success",
    "engine": "google_search",
    "cached": false,
    "latency_ms": 842,
    "credits_used": 1
  },
  "organic_results": [
    {
      "position": 1,
      "title": "Best home EV chargers of 2026, tested",
      "link": "https://www.techradar.com/best/ev-chargers",
      "snippet": "We installed and tested 14 level-2 chargers…"
    }
  ],
  "people_also_ask": [ … ]
}

Catalog extraction

A store URL in. Its products out, as JSON.

The same pipeline that structures a SERP, pointed at e-commerce: give it a shop and get clean product records back — titles, prices, currency, availability.

LivePOST /v1/extract/catalog
submit
curl -X POST \
  https://api.dataswap.io/v1/extract/catalog \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example-store.com/",
    "max_products": 50
  }'

# 202 Accepted — work continues server-side
{
  "job_id": "3c9a1f28-…",
  "status": "queued",
  "estimated_credits": 50
}
ResultGET /v1/extract/catalog/:jobId
200 OK
{
  "status": "completed",
  "products_found": 128,
  "products_extracted": 50,
  "credits_charged": 50,
  "result": {
    "site": "example-store.com",
    "products": [
      {
        "url": "https://example-store.com/p/trail-runner-gtx",
        "title": "Trail Runner GTX",
        "price": "129.90",
        "currency": "EUR",
        "availability": "in_stock"
      }
    ]
  }
}

Discovery included

Point it at a store, not at a list of pages. It reads the sitemap and falls back to the links on the page you submit.

Billed per product produced

Your ceiling is reserved up front, then refunded in full — you pay for the products actually extracted. A job that finds nothing costs nothing.

Asynchronous, and honest about it

You get a job id straight away and poll it. Credits stay reserved, never debited, until there is a result to hand you.

Try it without writing any code in the Playground, or read the full reference.

Provenance

A receipt your legal team can check without trusting us.

A signed manifest of where the data came from, when, and whether any inference touched it, travelling with the response. Verification is public and needs no API key — because the person who has to approve you does not have one.

Ed25519 · signed responseGET /v1/provenance/public-key
provenance
{
  "v": 1,
  "source_class": "licensed_provider",
  "bot_evasion": false,
  "inference": "eu-only",
  "operation": "answer_landscape",
  "request_id": "req_01JX3F0R6GQ8",
  "retrieved_at": "2026-08-02T09:14:27.318Z",
  "payload_sha256": "9f2c1ab5e0d47c3a8b6e5f01d2c7a934be8150f2c6d3e9a17b04c8f5a2e6d310",
  "signature": "kR7pQ2x9Lm4vTf8sJb1cN6yWzA0hE3dG…",
  "key_id": "3a91f0c47be25d18"
}

Sample receipt: the shape and the signing scheme are the ones implemented, the signature above is not real. Receipts begin riding on responses together with the capabilities at the top of this page.

What it proves

That this API issued that exact payload, at that time, under the policy stated in the receipt — the hash binds the signature to the bytes you hold, so an edited response no longer verifies.

What it does not prove

That the policy itself is true. This is a signed self-attestation, not a third-party audit or certification: it proves we said it and cannot take it back, and the licence behind it is a contract you are welcome to ask to see.

source_class
The class of the source, stated as a class: data served under licence from upstream providers. It is a contractual position, which is precisely why it can be signed.
bot_evasion
False, always. We do not bypass anti-bot protections, solve CAPTCHAs, or take from sources that forbid it. Anything built on its own crawling cannot put this line in writing and have it stay true — which is what makes it worth signing.
inference
Where the request was processed. "eu-only" means it stayed inside the EU and never reached a third-party model vendor — which is the part your legal team has to be able to check.
payload_sha256
The hash of the exact body you were served. It is what ties the receipt to the content: change one character of the response and verification fails.

Verify it yourself

Send the receipt and, if you want the strong check, the payload it covers. The endpoint is anonymous by design: an auditor with no key can confirm a signature they already hold, and nothing about your account is exposed by doing so. The public key is published at /.well-known/dataswap-provenance.json, so the check also works offline.

verify
# Public and keyless: whoever audits you has no API key.
curl -X POST https://api.dataswap.io/v1/provenance/verify \
  -d '{ "receipt": { … }, "payload": { … } }'

{
  "valid": true,
  "signature_valid": true,
  "payload_matches": true
}

Trust

Compliance is the product, not the fine print.

If your pipeline runs on data of uncertain provenance, that risk is in your product. Ours removes it at the source — and hands you a signed receipt that says so.

  • Licensed sourcing only

    We never ship anti-bot evasion, CAPTCHA solving or scraping of sources that forbid it. That is a contractual position, not a feature flag — which is why it can be signed into a receipt.

  • Inference stays in the EU

    Synthesis runs on models we host on our own hardware. Your queries and the pages we fetch to ground them are not sent to a third-party model vendor, so there is no extra sub-processor in your chain.

  • GDPR-ready, DPA from Starter

    Data minimization by default, documented flows, deletion on request, and a signed data processing agreement with every paid plan.

  • What we do not claim

    No SOC 2, no third-party certification, no uptime SLA yet. We would rather you find that out here than in procurement.

Pricing

Pay for light, not for glass.

One reservoir of credits covers everything: raw bands, the twelve inference tools, and the composed capabilities. A fresh search is 1 credit; cached costs half, live costs 1.5×, maps costs 2× base.

Free

$0/mo

No included credits

Account + API key. Credits sold separately.

No card required to sign up

Starter

$49/mo

+ 23% VAT

24,500 credits / mo

≈ 24k searches

DPA from this tier

Growth

$149/mo

+ 23% VAT

74,500 credits / mo

≈ 74k searches

For production agents

Most refracted

Business

$499/mo

+ 23% VAT

249,500 credits / mo

≈ 249k searches

Past the first million

Scale

$1,499/mo

+ 23% VAT

749,500 credits / mo

≈ 749k searches

Heavy pipelines

Enterprise

$3,000+/mo

+ 23% VAT

1,500,000 credits / mo

≈ 1500k searches

Custom terms

Prices exclude VAT. Portuguese VAT of 23% applies to customers in Portugal; for other countries the rate of your location applies, and EU businesses with a valid VAT number are reverse-charged at 0%. The exact amount is shown at checkout.

What the intelligence layer adds to the bill

Context Packs
from 3 cr + tokens returned
Schema-Fill
from 3 cr + pages read
MatchGraph
from 5 cr + searches run
Answer Landscape
from 4 cr + operations run
Entity Cards
from 4 cr + operations run
AI Shelf
from 10 cr + operations run
The twelve /v1/ai/* tools
1–4 credits
Provenance receipts
free

The synthesis runs on hardware we own, so there is no token meter on top of any of them — what moves the number is the licensed data a call has to fetch. The six composed capabilities above quote a ceiling before the call and settle on what actually ran: you are never billed for parts that did not execute, and never billed more than the ceiling we reserved.

Every response says what it cost. X-Credits-Used is what you actually paid; when the ceiling we held was higher than that, it comes back as X-Credits-Reserved and the difference is already in your balance by the time the response reaches you. GET /v1/pricing marks every operation fixed or variable, and says what a variable one depends on — so you can budget from the API instead of from this page.

Estimate your month

Dial in your query volume and freshness — we point you at the cheapest plan that covers it.

Queries per month10001000000 · drag ↑↓ or type
Credits needed
25,000
per month
Covered by
Growth
74,500 credits / mo
Estimated
$149/mo
cheapest covering plan · + 23% VAT

Assumes /v1/search at 1 credit per query × freshness multiplier (cached ×0.5 · fresh ×1 · live ×1.5). Checkout is open — subscribe to a plan or buy a prepaid pack. Amounts exclude VAT; the exact total is shown at checkout.

Put the prism to work.

Create an account and get your API key — no card required. Start on the six live bands and the twelve inference tools; the eight new capabilities land on the same key as they ship.