First-class commercial EO catalog search, ordering, and tasking from inside the app — against accounts you hold at Planet, Sentinel Hub, Skywatch (EarthCache), and SkyFi. The app acts as a thin authenticated client: it never handles billing, never takes a margin, and never sees a payment flow. Every call is proxied under your own credential, and delivered imagery lands directly on the map.
Draw an AOI rectangle on the map — or just use the current view — set date range, max cloud cover, and constellation filters, and hit Search. The server translates your query into each provider's native dialect and returns one unified scene list, whichever catalog it came from.
PSScene, sentinel-2-l2a).POST /api/eo/search./api/eo/proxy, so the browser never fights CORS and never touches the provider credential.// one REST surface, four providers behind it POST /api/eo/search → unified EoScene[] POST /api/eo/orders → archive / tasking GET /api/eo/orders/{provider}/{id} → live status GET /api/eo/orders/{provider}/{id}/deliveries GET /api/eo/proxy?url=…&profileId=… → auth stays server-side GET /api/eo/sentinelhub/wms-url → live stream, no order GET /api/eo/sentinelhub/xyz-template ● polling orders every 15 s · your key, your account
Each provider is wired behind a single unified DTO set, so the UI has one contract regardless of source — while provider-native payloads ride along verbatim for order calls that need them.
API-key auth against two surfaces: the Data API's quick-search for the catalog and the Orders API for archive orders with product bundles and AOI clipping. Delivery arrives as signed COG URLs. Planet's Tasking API (subscription-model new capture) is a Phase-2 add.
OAuth2 client-credentials with a cached, auto-refreshed bearer token. STAC + cql2-json catalog search, plus two delivery modes: a synchronous Process API render, or a live OGC tile stream (WMS / WMTS / XYZ) with no order at all.
API-key auth into EarthCache's unified archive/tasking endpoint — search product offerings, then create a pipeline to order. Credit-based: the account Test probe surfaces your remaining credit balance where the API exposes it.
API-key auth with distinct archive and tasking order endpoints. Tasking-focused, with 300+ sources behind one storefront. Vantor imagery requires a per-account EULA on the SkyFi side.
Click Order on a scene card, name the order, optionally clip to your AOI, and confirm. The order lands in the My Orders panel with live status polling every 15 seconds while anything is queued or running — and when it completes, one click adds the delivered imagery to the map.
// streaming-first: tiles without a purchase mode WMS / WMTS / XYZ from your SH collections action 🖼 Add WMS layer · 🧩 Add XYZ layer auth OAuth bearer via ?prefilter=bearer-<token> cost no order · no download only your SH subscription's processing units GET /api/eo/sentinelhub/wms-url?layer=… GET /api/eo/sentinelhub/xyz-template?layer=… ● live S-2 layer on the map · zero purchase
No reseller markup, no imagery credits sold, no payment flow anywhere in the app. You keep your provider relationships, your pricing, and your quotas — we keep the secrets encrypted and the workflow on the map.
API keys and OAuth client secrets are encrypted at rest with Windows DPAPI (CurrentUser scope). Only the same Windows account on the same machine can decrypt them, and the provider-list API never returns a secret.
Every catalog search, order, and download runs under your own provider credential. Quota and credit visibility is surfaced where the provider API exposes it — notably Skywatch credits.
The provider adapters ship with a 73-assertion test suite covering DTO round-trips and per-provider request translation — no live network required to verify the wiring.
Phase-1 scope, stated plainly: Planet tasking (subscription model), the Sentinel Hub Batch Process API, and provider webhooks are intentional Phase-2 follow-ups; pending orders are polled rather than pushed, and the order cache rebuilds from provider APIs on restart.
Connect the provider accounts you already pay for, draw an AOI, and go from catalog search to delivered imagery on the map — without the app ever standing between you and your provider.