Documentation

SatPortal exposes the same tool surface over MCP (streamable HTTP at https://satportal.decredcommunity.org/mcp) and REST (https://satportal.decredcommunity.org/api/v1). Machine-readable: openapi.json · llms.txt.

Tools

ToolPriceWhat it does
aboutfreeService manifest: prices, rails, sources. Call first.
search_scenesfreeSentinel-2 L2A scenes around a point, newest first. The funnel into the paid imagery tools.
get_preview1 credit ($0.005)512px jpeg quick look from the newest acceptable scene.
get_image2-4 credits ($0.01-$0.02): <=1024px 2, <=2048px 3, <=4096px 4, larger 4True-color rendering: png, jpeg or GeoTIFF, sized by size_km / max_px.
process3-4 credits ($0.015-$0.02): <=1024px 3, <=2048px 4, <=4096px 4, larger 4Analysis products (op: ndvi), color-ramped png or GeoTIFF.
get_ortho2-4 credits ($0.01-$0.02): <=1024px 2, <=2048px 3, <=4096px 4Aerial orthophotos (8-25 cm/px) from regional sources; coverage in about.
register · topup · balance · rotate_key · job_status · feedbackfree to callAccount lifecycle and service utilities.

Tiered tools price on the requested bound (max_px, or size_km at 10 m/px) before execution. Synchronous ceiling: 2048px per side. Failed calls are refunded; per-call payments for failed calls are never settled.

Paying per call

Every paid tool answers an unpaid call with an x402 v2 payment_required payload whose accepts array carries one entry per enabled rail (dcr402). Pay the entry your stack speaks and retry the same call with the proof:

USDC (x402 on Base)

Sign the EVM exact entry with your wallet — any x402 AutoPayment client handles this unattended. The first settled payment auto-creates an account keyed by your wallet and returns an API key.

Decred over Lightning (dcr402)

The bip122: entry carries a BOLT11 invoice in extra.invoice. Pay it over the Decred Lightning Network and retry with {"preimage": "...", "paymentHash": "..."} as the payment payload, echoing the accepted entry. A running dcr402-aware wallet does this for you — for example dcrpulse's MCP agent tools: connect your agent to both SatPortal and dcrpulse, call a paid tool here, hand the challenge to dcrpulse's x402_pay_challenge, and retry with the returned payload.

Credits

register ($0.001, proof of payment, not credited) creates your account and API key. topup adds prepaid credits over any enabled rail; send Authorization: Bearer sat_live_... and paid calls charge credits atomically, refunded on failure. 1 credit = $0.005.

Results

Imagery tools return a signed result_url (valid 24h, no auth header needed) plus the image inline as base64 when small. GeoTIFF products parse with any GIS stack.

REST examples

« free manifest »
curl https://satportal.decredcommunity.org/api/v1/about

« free scene search »
curl -X POST https://satportal.decredcommunity.org/api/v1/search_scenes \
  -d '{"lat": 52.52, "lon": 13.405, "max_cloud": 40}'

« paid preview with credits »
curl -X POST https://satportal.decredcommunity.org/api/v1/tools/get_preview \
  -H "Authorization: Bearer sat_live_..." \
  -d '{"lat": 52.52, "lon": 13.405}'

« unpaid call: read the multi-rail challenge »
curl -si -X POST https://satportal.decredcommunity.org/api/v1/tools/get_preview \
  -d '{"lat": 52.52, "lon": 13.405}' | grep -i payment-required