API Endpoints
Below you can see a non-exhaustive list of API endpoints relevant for ordering, seeing orders, understanding available data, and more. For an exhaustive list of all ClearSKY API endpoints consider visiting api.clearsky.vision.
Search Tiles Endpoint
POST /api/tasking/search/tiles
Returns information about orderable tiles and geometries. You can call this endpoint three ways:
- WKT / GeoJSON → Tile GUIDs
Supplywkt
orgeoJson
to get back all matching tile GUIDs (and their EPSG & DataGeogWkt). - Tile GUIDs / MiniTile GUIDs → Geometries
SupplytileGuids
orminiTileGuids
to retrieve each tile’s WKT geometry (and EPSG/DataGeogWkt). - Single Tile GUID → MiniTile GUIDs
SupplytileGuidForMiniTiles
to list all minitile GUIDs contained in that tile.
Example Requests
// Flow 1: WKT → Tiles
{
"wkt": "POLYGON((9.87 56.47, 10.19 56.47, 10.19 56.28, 9.87 56.28, 9.87 56.47))",
"geoJson": null,
"tileGuids": null,
"miniTileGuids": null,
"tileGuidForMiniTiles": null
}
// Flow 2a: Tile GUIDs → Geometries
{
"wkt": null,
"geoJson": null,
"tileGuids": ["tile-guid-1","tile-guid-2"],
"miniTileGuids": null,
"tileGuidForMiniTiles": null
}
// Flow 2b: MiniTile GUIDs → Geometries
{
"wkt": null,
"geoJson": null,
"tileGuids": null,
"miniTileGuids": ["minitile-guid-1","minitile-guid-2"],
"tileGuidForMiniTiles": null
}
// Flow 3: Tile GUID → MiniTile GUIDs
{
"wkt": null,
"geoJson": null,
"tileGuids": null,
"miniTileGuids": null,
"tileGuidForMiniTiles": "tile-guid-xyz"
}
Example Response
{
"succeeded": true,
"error": null,
"data": {
"tiles": [ // for Flows 1 & 2
{
"tileGuid": "tile-guid-1",
"epsg": 32633,
"dataGeogWkt": "POLYGON((…))"
}
],
"miniTiles": [ // for Flow 3
"minitile-guid-1",
"minitile-guid-2"
]
}
}
Tasking/Order Endpoints
If you want to create an order, see what orders have already been placed, or want a price estimate back for a given order, this section explains the relevant endpoints for doing so.
See Orders
GET /api/tasking/orders
This endpoint retrieves a list of your tasking orders, including status, billing cycle, area, dates, model, constellations, and other metadata. You can limit the reponse to only include recurring orders as well as include already expired orders in the list.
Query Parameters
Name | Type | Default | Description |
---|---|---|---|
recurringOnly | boolean | false | If true , only return recurring orders. |
getExpired | boolean | false | If true , include orders that have expired. |
Example Reponse
{
"Data": {
"TaskOrders": [
{
"TaskOrderGuid": "c3528462-02fc-4301-bb37-8d226b45f149",
"BillingCycle": "Monthly",
"OrderingProcessStatus": "Initialize",
"StorageMonths": 1,
"ApiRequests": 1,
"TaskOrderAreaKm2": 525.3,
"SatelliteConstellations": [
"Sentinel1",
"Sentinel2",
"Landsat89"
],
"Model": "Stratus2",
"ImageFrequency": 2,
"ReferenceDate": "2023-06-01",
"From": "2023-06-01",
"To": null,
"Tiles": [ ],
"MiniTiles": [ ],
"Wkt": "GEOMETRYCOLLECTION (POLYGON ((8.675127 55.962046, 8.675127 55.963407, 8.679411 55.963407, 8.679411 55.962046, 8.675127 55.962046)), POLYGON ((8.472053 56.105382, 8.472053 56.337398, 8.948552 56.337398, 8.948552 56.105382, 8.472053 56.105382)), POLYGON ((8.678 55.948533, 8.678 56.068376, 8.878589 56.068376, 8.878589 55.948533, 8.678 55.948533)))",
"CreatedDate": "2025-01-01T00:00:00Z",
"IsAutomaticOrder": false
},
// more orders if applicable...
]
},
"Succeeded": true,
"Error": null
}
Estimate Order
POST /api/satelliteimages/process/tasking/orders/estimate
This endpoint returns a cost estimate for a new tasking order. The estimate assumes that your new order does not overlap any existing orders. Either supply a WKT or a GeoJSON or Tile GUIDs and Minitile GUIDs.
Example Request
{
"Wkt": "GEOMETRYCOLLECTION (POLYGON ((8.675127 55.962046, 8.675127 55.963407, 8.679411 55.963407, 8.679411 55.962046, 8.675127 55.962046)), POLYGON ((8.472053 56.105382, 8.472053 56.337398, 8.948552 56.337398, 8.948552 56.105382, 8.472053 56.105382)), POLYGON ((8.678 55.948533, 8.678 56.068376, 8.878589 56.068376, 8.878589 55.948533, 8.678 55.948533)))",
"GeoJson": null,
"TileGuids": null,
"MiniTileGuids": null,
"SatelliteConstellations": [
"Sentinel1",
"Sentinel2",
"landsat89"
],
"Model": "Stratus2",
"StorageMonths": 1,
"ApiRequests": 1,
"ImageFrequency": 3,
"ReferenceDate": "2025-01-01",
"From": "2025-04-01",
"To": null
}
Example Reponse
{
"Data": {
"StorageMonths": 1,
"ApiRequests": 1,
"SatelliteConstellations": [
"Sentinel1",
"Sentinel2",
"Landsat89"
],
"Model": "Stratus2",
"CancellationDate": "2024-04-30",
"AreaKm2": 931.61,
"AreaKm2BeforeMinimum1Km2PerAoi": 930.65,
"CurrentMonthCost": 1009.98,
"NextMonthCost": 609.98,
"Costs": {
"CurrencyCode": "EUR",
"CurrentMonthOrderCostEstimate": 999.99,
"CurrentMonthStorageCosts": 9.99,
"NextMonthOrderCostEstimate": 599.99,
"NextMonthStorageCosts": 9.99
},
"UsageUnits": {
"CurrentMonthOrderUsageUnitsEstimate": 9999.99,
"NextMonthOrderUsageUnitsEstimate": 9999.99
},
"Tiles": [ ],
"MiniTiles": [ ],
"AreasOfInterestWkt": "GEOMETRYCOLLECTION (POLYGON ((8.675127 55.962046, 8.675127 55.963407, 8.679411 55.963407, 8.679411 55.962046, 8.675127 55.962046)), POLYGON ((8.472053 56.105382, 8.472053 56.337398, 8.948552 56.337398, 8.948552 56.105382, 8.472053 56.105382)), POLYGON ((8.678 55.948533, 8.678 56.068376, 8.878589 56.068376, 8.878589 55.948533, 8.678 55.948533)))",
"ImageDates": ["2025-04-01","2025-04-04","2025-04-07","2025-04-10","2025-04-13", "2025-04-16","2025-04-19","2025-04-22","2025-04-25","2025-04-27","2025-04-30"]
},
"Succeeded": true,
"Error": null
}
Create Order
POST /api/satelliteimages/process/tasking/orders
This endpoint places an order for a given area and time period defined with image frequency and reference date. Either supply a WKT or a GeoJSON to order as a composite order or supply Tile GUIDs and Minitile GUIDs to make a tile order. Tile orders get a significant discount but tiles predefined in size and placement. To find relevant Tile GUIDs or Minitile GUIDs, you can utilize our "Search Orderable Tiles" endpoint.
Example Request
{
"Wkt": "GEOMETRYCOLLECTION (POLYGON ((8.675127 55.962046, 8.675127 55.963407, 8.679411 55.963407, 8.679411 55.962046, 8.675127 55.962046)), POLYGON ((8.472053 56.105382, 8.472053 56.337398, 8.948552 56.337398, 8.948552 56.105382, 8.472053 56.105382)), POLYGON ((8.678 55.948533, 8.678 56.068376, 8.878589 56.068376, 8.878589 55.948533, 8.678 55.948533)))",
"GeoJson": null,
"TileGuids": null,
"MiniTileGuids": null,
"SatelliteConstellations": [
"Sentinel1",
"Sentinel2",
"landsat89"
],
"Model": "Stratus2",
"StorageMonths": 1,
"ApiRequests": 1,
"ImageFrequency": 3,
"ReferenceDate": "2025-01-01",
"From": "2025-04-01",
"To": null
}
Example Response
{
"Data": {
"TaskOrderGuid": "c3528462-02fc-4301-bb37-8d226b45f149",
"BillingCycle": "Monthly",
"OrderingProcessStatus": "Initialize",
"StorageMonths": 1,
"ApiRequests": 1,
"TaskOrderAreaKm2": 525.3,
"SatelliteConstellations": [
"Sentinel1",
"Sentinel2",
"Landsat89"
],
"Model": "Stratus2",
"ImageFrequency": 3,
"ReferenceDate": "2025-01-01",
"From": "2025-04-01",
"To": null,
"Tiles": [ ],
"MiniTiles": [ ],
"Wkt": "GEOMETRYCOLLECTION (POLYGON ((8.675127 55.962046, 8.675127 55.963407, 8.679411 55.963407, 8.679411 55.962046, 8.675127 55.962046)), POLYGON ((8.472053 56.105382, 8.472053 56.337398, 8.948552 56.337398, 8.948552 56.105382, 8.472053 56.105382)), POLYGON ((8.678 55.948533, 8.678 56.068376, 8.878589 56.068376, 8.878589 55.948533, 8.678 55.948533)))",
"CreatedDate": "2025-04-03T00:00:00Z",
"IsAutomaticOrder": false
},
"Succeeded": true,
"Error": null
}
Cancel Order
DELETE /api/tasking/orders/cancel
This endpoint can be used to cancel a recurring order from repeating next month, or to cancel an order placed by mistake. An order can only be fully cancelled if done while in "Review" stage. An recurring order can be cancelled up until a day before the following month.
Query Parameters
Name | Type | Description |
---|---|---|
taskOrderGuid | string | The GUID for the task order that should be cancelled |
Available Data Endpoints
If you are interested in knowing what data is available to you and where, there are two relevant endpoints each with their own benefits depending on usage patterns.
Available Dates
POST /api/satelliteimages/search/available
This endpoint searches for available satellite imagery within a given area and time period. It intersects your search geometry (WKT or GeoJSON) with the underlying ordered tiles/geographies and returns all dates on which imagery exists in that area between the specified bounds.
Example Request
{
"Wkt": "POLYGON ((9.877893206725581 56.47856668238974, 10.196496722350581 56.47856668238974, 10.196496722350581 56.27782087776097, 9.877893206725581 56.27782087776097, 9.877893206725581 56.47856668238974))",
"GeoJson": null,
"From": "2024-05-01T00:00:01Z",
"Until": 2024-06-01T00:00:01Z
}
Example Response
{
"succeeded": true,
"error": null,
"data": {
"modelImageDates": [
{
"model": "Stratus2",
"satelliteConstellations": ["Sentinel1","Sentinel2","Landsat89"],
"datesByGeog": [
{
"wkt": "POLYGON ((10.016785 56.291373, 10.171966 56.291373, 10.171966 56.376637, 10.016785 56.376637, 10.016785 56.291373))",
"dates": ["2024-05-01","2024-05-03","2024-05-05", "2024-05-07", "2024-05-09","2024-05-11","2024-05-13","2024-05-15","2024-05-17","2024-05-19","2024-05-21","2024-05-23","2024-05-25","2024-05-27","2024-05-29", "2024-05-31"]
}
]
},
// more models/dates if applicable...
]
}
}
Availability Check
POST /api/satelliteimages/process/composite/available
This endpoint checks whether a composite request can be fulfilled for a given area and date, under your chosen projection, model and constellation settings. Either a WKT or a GeoJSON geometry may be supplied (not both).
Example Request
{
"Wkt": "POLYGON ((10.016785 56.291373, 10.171966 56.291373, 10.171966 56.376637, 10.016785 56.376637, 10.016785 56.291373))",
"GeoJson": null,
"Date": "2024-08-24T14:15:22Z",
"UtmDataSelectionMode": "single_utm_fully_covered",
"SatelliteConstellations": [
"Sentinel1",
"Sentinel2",
"Landsat89",
],
"Model": "Stratus2",
"EpsgProjection": 32633,
"Bandnames": "all"
}
Example Response
{
"succeeded": true,
"error": null,
"data": {
"intersectedActiveZones": true,
"intersectedActiveZonesUtmEpsg": true,
"fullyAvailable": true,
"uncertaintyAvailable": false,
"partiallyAvailable": false,
"partiallyUncertaintyAvailable": false,
"polygonInDataArea": true,
"dataAvailableForUser": true,
"dataOnZoneDataFrequencyDate": true,
"allImagesPredicted": true,
"anyImageWithinStorageMonths": true,
"ordersCoverPolygon": false
}
}
Response Fields
Field | Description |
---|---|
intersectedActiveZones | Any data-bearing tile for the specified date, model & constellations overlaps your geometry. |
intersectedActiveZonesUtmEpsg | Any tile produced directly in the requested EPSG overlaps your geometry. |
fullyAvailable | All overlapping tiles have imagery ready to download for that date, model & constellations. |
uncertaintyAvailable | All overlapping tiles have uncertainty layers ready to download. |
partiallyAvailable | Some (but not all) overlapping tiles have imagery available. |
partiallyUncertaintyAvailable | Some (but not all) overlapping tiles have uncertainty layers available. |
polygonInDataArea | Your geometry intersects at least one area with any data (ignoring date). |
dataAvailableForUser | You have access to data (for any date) in your geometry, model & constellations. |
dataOnZoneDataFrequencyDate | The chosen date matches the zone’s expected acquisition schedule. |
allImagesPredicted | Predictions exist for every overlapping tile on that date. |
anyImageWithinStorageMonths | At least one predicted image is still within its storage retention window. |
ordersCoverPolygon | Existing orders already cover the full geometry for that date, model & constellations. |
Download Endpoints
Estimate Credit Cost
POST /api/satelliteimages/process/composite/estimate
This endpoint can be used to acquire credit cost estimate as well as estimates for area, file size and estimated time. The endpoint supports composite, tile and minitile estimates.
Example Request
{
"Wkt": "POLYGON ((9.877893206725581 56.47856668238974, 10.196496722350581 56.47856668238974, 10.196496722350581 56.27782087776097, 9.877893206725581 56.27782087776097, 9.877893206725581 56.47856668238974))",
"GeoJson": null,
"MiniTileGuid": null,
"TileGuid": null
}
Example Response
{
"Succeeded": true,
"Error": {
"Message": "string",
"Code": 0
},
"Data": {
"SlowTimeEstimateSeconds": 0,
"FastTimeEstimateSeconds": 0,
"AreaEstimateKm2": 12,
"FileSizeEstimateMB": 0.1,
"CreditEstimate": 1.2
}
}
Composite Download
POST /api/satelliteimages/process/composite
Returns a composite image for the requested date, area, model and constellations. Either wkt
or geoJson
must be provided (not both). The response is a binary stream (e.g. GeoTIFF).
Request Body (application/json)
Field | Type | Description |
---|---|---|
wkt | string | null | WKT polygon of the search area. Either wkt or geoJson must be provided. |
geoJson | GeoJsonGeometryDto | null | GeoJSON geometry of the search area. Either wkt or geoJson must be provided. |
date | string date-time | Target date for composite, e.g. 2022-05-26 . |
resolution | integer int32 | Ground resolution in meters: 10 , 20 , 40 , 80 , 160 , 320 , 640 , 1280 . |
epsgProjection | integer int32 | Output CRS code, e.g. 4326 , 3857 , 32632 . |
fileType | string | Output file format, e.g. tif . |
pixelSelectionMode | string | intersect (include pixels touching area) or contained (only pixels fully within area). |
dataType | string | INT16 (NODATA=-32768) or UINT8 (NODATA=0). |
utmDataSelectionMode | string | null | single_utm_fully_covered , single_utm , or combined_utm (only for UTM EPSG zones 32601–32660 & 32701–32760). |
utmGridForcePixelResolutionSize | boolean | true to force exact resolution during reprojection; false to allow slight pixel-size variation. |
satelliteConstellations | string[] | null | List of constellations, e.g. ["Sentinel1","Sentinel2","Landsat89"] . |
model | string | Prediction model, e.g. Stratus2 , Stratus2NoSnow . |
bandnames | string | Comma-separated bands or indices. Exclusive: rgb or all . Composable: B2,B3,B4,B5,B6,B7,B8,B8A,B11,B12 or indices like [B8_B4] . |
allowPartialImage | boolean | false to fail if any zone is missing data; true to return a partial composite. |
automaticOrderCreation | boolean | false to error if area/date not covered; true to enqueue automatic order on error code 1006. |
uploadUrl | string | null | URL to PUT the resulting file; if provided, composite will be uploaded to this URL instead of returned directly. |
Example Request
{
"wkt": "POLYGON((9.8778932067 56.4785666824,10.1964967224 56.4785666824,10.1964967224 56.2778208778,9.8778932067 56.2778208778,9.8778932067 56.4785666824))",
"geoJson": null,
"date": "2024-05-03",
"resolution": 10,
"epsgProjection": 32632,
"fileType": "tif",
"pixelSelectionMode": "contained",
"dataType": "INT16",
"utmDataSelectionMode": "combined_utm",
"utmGridForcePixelResolutionSize": true,
"satelliteConstellations": ["Sentinel1","Sentinel2","Landsat89"],
"model": "Stratus2",
"bandnames": "all",
"oldPixelSelectionMode": false,
"allowPartialImage": false,
"uploadUrl": null
}
You can acquire imagery using either download endpoint no matter how the data was purchased. E.g. Tile purchases can be downloaded as custom shapes using our Composite download endpoint.
Tile Download
POST /api/satelliteimages/process/tile
Downloads the composite for a single tile on a given date, model and constellation set. Provide either an uploadUrl
(to PUT the file) or receive the binary stream directly.
Example Request
{
"TileGuid": "c3528462-02fc-4301-bb37-8d226b45f149",
"Date": "2024-05-03T00:00:00Z",
"SatelliteConstellations": ["Sentinel1","Sentinel2","Landsat89"],
"Model": "Stratus2",
"UploadUrl": "https://service-allowing-put-requests-to-upload.xyz"
}
MiniTile Download
POST /api/satelliteimages/process/minitile
Downloads the composite for a single minitile on a given date, model and constellation set. Provide either an uploadUrl
(to PUT the file) or receive the binary stream directly.
{
"MiniTileGuid": "c3528462-02fc-4301-bb37-8d226b45f149",
"Date": "2024-05-03T00:00:00Z",
"SatelliteConstellations": ["Sentinel1","Sentinel2","Landsat89"],
"Model": "Stratus2",
"UploadUrl": "https://service-allowing-put-requests-to-upload.xyz"
}
Input Product Endpoints
Our cloudless service is built around large amounts of satellite data fused together, but as a transparency measure you can query the utilized input data.
Input Satellite Products
POST /api/satelliteproducts/satellitezones/composite
This endpoint retrieves satellite products intersecting your requested area.
{
"succeeded": true,
"error": null,
"data": {
"satelliteProductsForComposite": [
{
"satelliteConstellation": "Sentinel1",
"productGeogWkt": "string",
"imageDate": "2019-08-24T14:15:22Z"
}
]
}
}
Acquisition Plans
POST /api/satelliteproducts/acquisitionplans
This endpoints retrieves planned satellite products acquisitions intersecting your requested area.
{
"succeeded": true,
"error": null,
"data": {
"plans": [
{
"date": "2019-08-24T14:15:22Z",
"acquisitionPlans": [
{
"satellite": "S1A",
"acquisitionStatus": "string",
"publicationStatus": "string",
"wkt": "string"
}
]
}
]
}
}