Drift Observatory · Data API
eSIM market data your agent can act on.
A monthly frozen price-per-GB index across 187 countries, a one-call best-plan resolver, and speed measurements taken on the ground — served as stable JSON with the provenance embedded in every response.
$ curl https://api.driftasia.com/v1/best-plan?country=jp&gb=10&days=15 { "recommended": { "reason": "Best value for 10GB over 15 days in Japan: fully covers the stated need at $0.73/GB. Field-tested median download in country: 79.9 Mbps.", "plan": { "reseller": "eSIM Voyage", "data_gb": 50, "validity_days": 30, "price": { "usd": 36.52, "original": { "amount": 31.90, "currency": "EUR" }, "fx_rate": 1.1448, "fx_date": "2026-07-06" }, "buy_url": "…" }, "match_score": 1 }, "alternatives": { "cheapest": {…}, "most_data": {…}, "best_speed": {…} }, "trust": { "is_frozen": true, "panel_size": 11, "measured_at": "2026-07-06T00:00:00Z", "methodology_url": "https://driftasia.com/methodology" } }
Three endpoints, one contract
All responses share the same envelope — data, query
(what the server understood), trust (provenance), schema_version.
The v1 contract is additive-only: fields are never renamed, removed or retyped.
Price index
GET /v1/price-index/{country}
Monthly frozen price-per-GB index for one country: the full plan panel plus cheapest /
median / most-expensive aggregates. Snapshots are immutable — the same month returns
identical data forever. ?month=YYYY-MM for history.
Best-plan resolver
GET /v1/best-plan
One recommended plan for a stated need (country, gb,
days, priority) plus alternatives optimizing a single criterion:
cheapest, most data, best field-tested speed. Built to answer an agent in one call.
Field tests
GET /v1/field-tests/{country}
Real speedtests taken on the ground through purchasable eSIMs: operator, location
context, download/upload, latency, network type. ?aggregate=true for
per-operator/city statistics. Data that cannot be scraped.
Provenance in every response
The trust block is the audit trail. It is what separates
Observatory data from a scrape.
is_frozenServed from an immutable monthly snapshot. Reproducible: cite a month, get the same numbers forever.
measured_at · fx_dateThe date of the data and of the FX rate — not the request time. Currency conversion is frozen with the snapshot.
panel_size · coverageHow many resellers back this response, and whether the panel is complete for this country. Honest by design.
methodology_url · licenseFull methodology is public. Data license: agent and internal use permitted; republication requires an agreement.
Quickstart
No key, no signup during launch. Plain HTTPS, JSON out.
Machine-readable spec: OpenAPI 3.1 · agent manifest:
llms.txt. Country codes are ISO 3166-1 alpha-2, lowercase.
Errors use one envelope: {"error":{"code","message","hint"}}.
Licensing & what's next
Commercial & bulk licensing
Comparators, travel platforms, insurers and researchers can license the full dataset — historical snapshots, all countries, custom exports — under a classic invoiced agreement. Write to data@driftasia.com with your use case.
Per-call payments (x402)
Metered per-request access via the x402 protocol (USDC on Base) is on the roadmap. When metering is enabled, unpaid requests receive a standard HTTP 402 challenge — agents with x402 clients need no account at all.