Skip to main content

Power AI agents with real-world data they can prove.

The context API for the physical world. Every answer carries a signed receipt that anyone can check without a key, an account, or us — the managed deployment of the open emem protocol.

request
# No key. No account. Open-vocabulary — you name the classes.
curl -X POST https://geo.qa/api/v1/object-detection \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://example.com/street.jpg",
    "prompts": ["car", "person", "building"]
  }'
response
{
  "detections": [
    {
      "label": "person",
      "confidence": 0.906,
      "bbox_normalized": [0.467, 0.261, 0.533, 0.484],
      "mask_polygon": [ … ],
      "area": 6612
    }
  ],
  "total_objects": 1,
  "model": "sam3",
  "processing_time_ms": 1363
}

Open-vocabulary segmentation on any image, no key. You name the classes at call time — no training, no fixed label set.

Ask · Prove · Ship
Public cameras + major satellites
Verify · no key, no account
the cell lattice≈10 m per cell
Every place on Earth resolves to a stable address roughly ten metres on a side, matched to the Sentinel pixel pitch. Every observation, from any sensor, files against it — which is what makes an answer addressable enough to sign.

What you can call

Three verbs. Perceive, ground, prove.

The whole published surface, on one screen — every route below is in the OpenAPI spec. 5 of them need a key. 6 need nothing at all, so you can judge the output before you decide whether to trust us.

Perceive

Point a model at pixels — an image, a satellite tile, a live feed — and get structured objects back.

  • POST/api/v1/object-detectionno key

    Open-vocabulary detection + segmentation masks on any image. You name the classes at call time.

  • POST/api/mcp · analyze_scenekey

    Vision-language description of a scene — prose about what is actually in frame.

  • POST/api/tool/camera-stream/detectionskey

    Detections across a live camera feed, not a single frame.

Ground

Turn a place into an answer. Every result resolves to a cell64 address, so two agents asking about the same ground get the same address rather than two descriptions of it.

  • GET/api/tool/satellite/lulc/analyzekey

    Land use and land cover at a point, from Sentinel-2, Landsat or Sentinel-1.

  • POST/api/tool/satellite/lulc/bboxkey

    The same, over a bounding box — fractional coverage per class.

  • POST/api/tool/satellite/lulc/polygonkey

    The same, clipped to an arbitrary polygon: a field, a concession, a district.

Prove

The part nobody else ships. Every answer above carries a signed receipt, and checking one has never required our permission — these five endpoints take no key at all.

  • POST/api/world-model/verify/receiptno key

    Re-check one signed receipt. ed25519, offline-checkable, no account.

  • POST/api/world-model/verify/batchno key

    Up to 256 receipts in one call. Over that it refuses rather than truncating.

  • GET/api/world-model/verify/log/sthno key

    Signed tree head of the transparency log — the root everything else hangs from.

  • GET/api/world-model/verify/log/proof/{cid}no key

    RFC 6962 inclusion proof: this fact is in the log, at this position.

  • GET/api/world-model/verify/log/consistencyno key

    Proof the log only ever appended — that we never rewrote history.

What it costs

One meter. You pay to ask, never to check.

The old table advertised six units on the free tier alone — calls a day, cells, cameras, monitoring loops, storage, model families — so choosing a plan meant guessing which one would bind first. One axis now, priced against what an answer actually costs to produce: real-world data is not web scraping, and a GPU pass over satellite imagery is not a page fetch.

One meter: an answer. A detection, a land-cover read, a recall — anything that returns signed data — costs one.

Checking costs nothing, on every tier. Verifying a receipt, pulling an inclusion proof or auditing the transparency log is free forever, because an answer you have to pay us to re-check was never proof.

Free
$0
no card
Answers
1,000 / month
Storage
500 MB
Live feeds
2 live cameras

Trying it, and small agents that ask occasionally.

Start free
Pro
$99
per month
Answers
30,000 / month
Storage
50 GB
Live feeds
20 live cameras

A product in production with one team behind it.

Choose Pro
Max
$599
per month
Answers
250,000 / month
Storage
500 GB
Live feeds
100 live cameras

Continuous watch, training runs, and priority pipeline.

Choose Max
Enterprise
Talk to us
your terms
Answers
Unmetered
Storage
Unlimited
Live feeds
Dedicated

Your own tenancy, your keys, your jurisdiction — on-prem or air-gapped.

Contact

Team seats and annual billing are on the full pricing page. Prices in USD, billed through Razorpay.

What it is

Ask a place. Prove the answer.

Put an AI agent into production and, sooner or later, it answers a question about a place it has never observed: fluently, and wrong. geo.qa is the fix. One call returns what was observed at a place, with a signed receipt anyone can check offline, no key and no account. When the ground cannot answer, it says so, instead of guessing.

1 · Aska place and a question, in one call.
2 · Get proofa signed answer: direct, derived, or an honest “no data”. Never a silent guess.
3 · Verifyresolve the receipt offline against the open emem.dev protocol. No key, no account, no trust in us.
Vembanad Lake · the cellSentinel-2
Sentinel-2 true-colour crop of cell defi.zb46d.hiro.xekO, Vembanad Lake
# an ungrounded model ask is there standing water at Vembanad Lake right now? → "No recent flooding reported." (invented) # the same question, grounded by geo.qa ask how often does water stand at Vembanad Lake? → surface_water.recurrence = 100.0% cell defi.zb46d.hiro.xekO · JRC Global Surface Water fact 26vxcutzz2… · signed · merkle ✓ # resolve & verify offline at emem.dev/verify
A real signed fact, and it says what it is: recurrence is a long-run statistic from the JRC Global Surface Water layer, computed over imagery to 2021 and signed into the record on 29 Jul 2026. It is not a reading taken this morning, and the question above is phrased so it cannot be read as one. Paste the cell or the fact and it resolves; where the ground has no data, the same call returns an honest “no data here”, not a guess.

How it works

From sensor to signed fact.

For the cameras, drones and ground sensors you run, the encoder sits at the edge of capture, so what leaves is a latent, not raw footage. For satellites, geo.qa builds on the signed embeddings of the open emem.dev ledger. A decoder resolves each latent onto one shared, addressable Earth memory.

01

Observe

Satellites, drones, vehicle cameras and fixed CCTV, all on the same ground.

02

Encode → latent

For the sensors you run, a frame becomes a latent vector on-site, so raw footage never leaves. Satellite scenes arrive already encoded, as emem.dev embeddings.

03

Decode → memory

The decoder resolves each latent onto the cell lattice: one shared Earth memory.

04

File a fact

Filed with its band, its time and a signed receipt. Nothing is overwritten.

05

Agent cites

Your model answers with the exact observations that support it, receipt attached.

The decode path. For edge sensors, bandwidth and exposure both collapse at step 02: only the latent moves on.
Cell×Band×TslotFact
cellWhere. A stable address ≈ 9.55 m on a side. Every place resolves to exactly one; neighbours are one hop away.
bandWhat. A measured quantity: optical, NDWI, SAR, thermal, pressure, or a signed human report.
tslotWhen. The instant of observation. History is append-only.
factThe answer. A value at cell × band × tslot, carrying its provenance. Direct, derived, or a signed absence, never a silent guess.
receiptThe proof. An ed25519 signature over a BLAKE3 hash of the canonical CBOR, verifiable offline against the open emem.dev protocol.
factgreenness (NDVI) = 0.234
celldefi.zb4e6.fIsI.hujO
placeNashik, Maharashtra
bandsNDVI · NDMI · LAI
sources12 signed facts · Sentinel-2 + MODIS
fact oqdnpskm… · ed25519 signed · emem.dev verifiable
Nashik · the cellband × tslot
Sentinel-2 true-colour crop of cell defi.zb4e6.fIsI.hujO, Nashik

Use it

An interface agents already speak.

One call shape, shared with the open emem.dev protocol. Every source writes into the same addressable record, and every answer comes back with the fact ids behind it, so the next agent in the chain can check the claim instead of taking it on trust.

query.py
# check the Nashik reading printed above. no key, no account.
curl -s https://geo.qa/api/world-model/verify \
  -H 'content-type: application/json' \
  -d '{"token":"emem:fact:defi.zb4e6.fIsI.hujO:oqdnpskm73q53cnuo46ieyb5dvtxr4fey6qlffxtkjqbzqe7y5gq"}'

# → { "matches": true,
#     "value_verbatim": "0.23483583750695602",
#     "signer": "777er3yih…" }

# the metered tenant call, once you have a key
curl -s \
  "https://geo.qa/api/tool/satellite/lulc/analyze?lat=25.276&lon=55.296" \
  -H "Authorization: Bearer $GEOQA_KEY"
locate(lat, lon)a place → its stable cell address
ask(cell, band)a fact at an address, with its receipt
recall(cell)every signed fact filed at a place
watch(cell, bands)stream changes as they are observed
recall_polygon(geo)read a whole neighbourhood in one call
verify(token)check any receipt against emem.dev, offline
Live · cameras being analysed online
Connecting to the live picture…
Every observation signed, verifiable offlinesee the live picture →
01

Autonomous fleets

The vehicle’s cameras write to the memory; the car reads neighbouring cells to know what is round the corner before it sees it.

what is in the next cell right now?

02

Energy & infrastructure

Pads, lines and stations watched by every sensor at once. A page goes out only when independent witnesses agree.

did pressure at G-247 drop overnight?

03

Insurance & risk

Price and settle against what was observed, not what was claimed, and every fact arrives with its receipt.

was this parcel underwater on 04 May?

04

Defence & GEOINT

An owned, airgapped memory with full provenance: answers built to survive an audit, weeks later.

what changed at this site since Tuesday?

Own it

Take the rung you can reach.

emem is open, and checking it needs nobody’s permission. geo.qa runs it for you and adds the sensors you own. So access is a ladder rather than a gate, and the free rung is the one that matters: an answer you cannot check is worth nothing, so checking is free forever and never asks who you are.

Verifyre-check any receipt, pull the signing key, walk the log. Nothing to present, now or ever.
Readthe open tools, bounded per address. Enough to decide about us without asking us.
Keya bearer key a person mints once, after which an agent runs unattended.
Pay per calla refusal comes back as an offer in x402 shape, so an agent settles and retries inside one request instead of waking someone.
Tenancyyour own memory, your own keys, your own jurisdiction, on your own iron if it has to be.
Fine-tunetrain on the facts filed under your tenancy, inside it. Jobs are live; a general training API is not, and we will not print one until it is.

What never leaves

what the wire carries, not what a contract promises

  • Raw imagery. Encoded at the edge of capture; only the latent vector moves on.
  • Your memory. A single tenant: your keys, your retention, your jurisdiction.
  • Your models. Trained and served inside your boundary. No calls home, no training on your data by us.

What you keep

what you can still show six months later

  • Provenance. Every answer carries a signed, verifiable receipt.
  • Audit. Replay any decision against the exact observations it used.
  • Interop. The same call shape as the open emem.dev protocol.

Where it sits

Under the models, on emem.

A model that generates a plausible world is not the same thing as a record of this one. geo.qa is the record: what was observed, when, by what, filed at an address, and signed. Everything below writes into it.

#ModalityWhat it writes into the memoryCadence
01
Satellite opticalmultispectral surface
land cover, water, change, vegetation indicesdaily–weekly
02
Satellite SARall-weather radar
structure, moisture, flood, motion, through cloud1–6 days
03
Thermal / IRheat signature
flares, fires, equipment activity, anomaliessub-daily
04
Drone surveycentimetre detail
close-range inspection of a single asseton tasking
05
Vehicle camerasstreet level
what is round the corner, lane by lanecontinuous
06
Fixed CCTVthe perimeter
gate, yard, fence line, occupancycontinuous
07
Ground sensorsSCADA / IoT
pressure, flow, level, vibrationseconds
08
Weather fieldsenvironment
rain, wind, temperature, soil moisturehourly
09
AIS / vesselmaritime tracks
who is where on the water, and whenminutes
10
Field reportssigned human notes
a person's observation, attributableon event
11
Cadastral / GISthe record of record
parcels, assets, boundaries, ownershipon change
12
Acousticsound events
alarms, gunshots, machinery, leakscontinuous

Give your model a memory.

Stop letting it guess about the world. Start letting it cite, and train on what it cites.

geo.qa · a vortx ground decoder · emem.dev open protocol