Quickstart
Run your first satellite analysis with SateAIs in under five minutes.
This guide walks you through submitting a detection job, polling for its status, and downloading the GeoJSON result.
Prefer an SDK?
The official Python and JavaScript SDKs do the whole submit → poll → download flow in a few lines:
from sateais import Client
client = Client() # reads SATEAIS_API_KEY
job = client.analyze.oilslick(scene_id="S1A_IW_GRDH_...")
result = client.jobs.wait(job.job_id) # poll until completed
print(len(result["features"]), "detections")import { Client } from "@sateais/sdk";
const client = new Client(); // reads SATEAIS_API_KEY
const job = await client.analyze.oilslick({ scene_id: "S1A_IW_GRDH_..." });
const result = await client.jobs.wait(job.job_id); // poll until completed
console.log(result.features.length, "detections");The rest of this guide uses curl to show the underlying REST calls.
Prerequisites
- A SateAIs API Console account
- An API key (
sk_live_...) — see Authentication curlavailable in your shell
1. Submit a detection job
Submit an oil slick detection job by scene ID. Scene IDs come from ASF Search — filter File Type = GRD (SateAIs only accepts Sentinel-1 GRD products).
curl -X POST https://api.spcsft.com/api/v1/analyze/oilslick \
-H "Authorization: Bearer sk_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"satellite_id": "sentinel-1",
"scene_id": "S1A_IW_GRDH_1SDV_20260312T150000_20260312T150025_054876_069DEF_5678"
}'You will receive a job_id and an initial status:
{
"job_id": "351e635d-7c25-4ae8-a2a5-60c01a6f434c",
"status": "pending",
"created_at": "2026-03-12T15:00:00Z",
"completed_at": null,
"result_path": null,
"error": null
}2. Poll the job status
Check the job status about once per minute until status becomes completed. Runtime depends on the analysis type and analyzed area — see How it works for per-endpoint estimates.
curl https://api.spcsft.com/api/v1/jobs/351e635d-7c25-4ae8-a2a5-60c01a6f434c \
-H "Authorization: Bearer sk_live_xxxxx"Detection jobs typically take 30–60 minutes depending on the analysis type and area. See How it works for recommended polling intervals.
3. Download the result
Once the job completes, fetch the GeoJSON:
curl -L https://api.spcsft.com/api/v1/jobs/351e635d-7c25-4ae8-a2a5-60c01a6f434c/result.geojson \
-H "Authorization: Bearer sk_live_xxxxx" \
-o result.geojsonThe response is a standard GeoJSON FeatureCollection in EPSG:4326. You can view results directly on the map in the SateAIs API Console, or open the file in any GIS tool.
Results are available for 30 days after completion. After that, the endpoint returns 410 Gone. Download and archive results you need to retain.