Satellite imagery API: STAC catalogue search, SDKs and webhooks

Developers

Satellite imagery,
from your code

Search the archive, place orders and stream tiles into your GIS from your own scripts and pipelines. Anything you can do in Pera Portal, you can do with an API call, on the same account and at the same prices.

quickstart.ts @geopera/sdk
import { GeoperaClient } from "@geopera/sdk";

const geopera = new GeoperaClient({ token: "gpra_..." });

const results = await geopera.invoke("catalog.search", {
  collections: ["sentinel-2-l2a"],
  limit: 10,
});
//    ^? typed as the catalog.search output model
pip install geopera
Python SDK
npm install @geopera/sdk
TypeScript SDK
pip install geopera-cli
CLI, beta

What you can build on it

Imagery straight into your GIS

Point QGIS or ArcGIS at our WMTS and XYZ tiles with your API key, and the imagery loads without a download. For the data itself, search the catalogue as STAC 1.0 GeoJSON with a polygon.

Orders that are safe to retry

Estimate the cost server-side before you commit, then place the order with an idempotency key. If your job retries, you get the same order back and you are charged once.

Keys you control

Scripts and CI use API keys that you scope, set to expire and revoke yourself. People sign in with OAuth 2.0, and the CLI uses the device flow, so you can sign in from a terminal.

Webhooks instead of polling

Subscribe an HTTPS endpoint and we send it a signed POST when an order is delivered, a processing job finishes or a tasking feasibility request is answered. Every POST carries an HMAC signature you can verify.

Typed SDKs and a command line

The Python and TypeScript SDKs are typed, so an operation, its input and its result stay linked in your editor. Change one and autocomplete shows what else moved. The CLI (version 0.2.0, in beta) turns every operation into a command, so catalog.search becomes geopera catalog search.

AI agents through MCP

Connect an agent to our MCP server and it can search the catalogue, estimate and place orders, and run analytics. Every call runs with the identity and scopes of your token, and leaves the same audit trail as any other client.

Getting the files out

Downloads come as short-lived signed URLs, so your own code pulls the imagery into your storage. Each organisation has request and download limits, and the API tells you which one you hit and when to retry.

A town grid in Kimberley, South Africa: streets, roofs and a school field, from 30 cm imagery.
Kimberley, Northern Cape · 22 Sep 2026 · 0.3 m · Processed by Geopera

Moving from another platform

Authentication, catalogue search, ordering, tasking and processing calls map onto our API. We walk your developers through the differences.

Make your first catalogue search

Create an account, mint an API key in Pera Portal and run the quickstart above. For a larger integration, talk to us first.