Skip to main content

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:

  1. WKT / GeoJSON → Tile GUIDs
    Supply wkt or geoJson to get back all matching tile GUIDs (and their EPSG & DataGeogWkt).
  2. Tile GUIDs / MiniTile GUIDs → Geometries
    Supply tileGuids or miniTileGuids to retrieve each tile’s WKT geometry (and EPSG/DataGeogWkt).
  3. Single Tile GUID → MiniTile GUIDs
    Supply tileGuidForMiniTiles 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

NameTypeDefaultDescription
recurringOnlybooleanfalseIf true, only return recurring orders.
getExpiredbooleanfalseIf 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

NameTypeDescription
taskOrderGuidstringThe 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

FieldDescription
intersectedActiveZonesAny data-bearing tile for the specified date, model & constellations overlaps your geometry.
intersectedActiveZonesUtmEpsgAny tile produced directly in the requested EPSG overlaps your geometry.
fullyAvailableAll overlapping tiles have imagery ready to download for that date, model & constellations.
uncertaintyAvailableAll overlapping tiles have uncertainty layers ready to download.
partiallyAvailableSome (but not all) overlapping tiles have imagery available.
partiallyUncertaintyAvailableSome (but not all) overlapping tiles have uncertainty layers available.
polygonInDataAreaYour geometry intersects at least one area with any data (ignoring date).
dataAvailableForUserYou have access to data (for any date) in your geometry, model & constellations.
dataOnZoneDataFrequencyDateThe chosen date matches the zone’s expected acquisition schedule.
allImagesPredictedPredictions exist for every overlapping tile on that date.
anyImageWithinStorageMonthsAt least one predicted image is still within its storage retention window.
ordersCoverPolygonExisting 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)

FieldTypeDescription
wktstring | nullWKT polygon of the search area. Either wkt or geoJson must be provided.
geoJsonGeoJsonGeometryDto | nullGeoJSON geometry of the search area. Either wkt or geoJson must be provided.
datestring date-timeTarget date for composite, e.g. 2022-05-26.
resolutioninteger int32Ground resolution in meters: 10, 20, 40, 80, 160, 320, 640, 1280.
epsgProjectioninteger int32Output CRS code, e.g. 4326, 3857, 32632.
fileTypestringOutput file format, e.g. tif.
pixelSelectionModestringintersect (include pixels touching area) or contained (only pixels fully within area).
dataTypestringINT16 (NODATA=-32768) or UINT8 (NODATA=0).
utmDataSelectionModestring | nullsingle_utm_fully_covered, single_utm, or combined_utm (only for UTM EPSG zones 32601–32660 & 32701–32760).
utmGridForcePixelResolutionSizebooleantrue to force exact resolution during reprojection; false to allow slight pixel-size variation.
satelliteConstellationsstring[] | nullList of constellations, e.g. ["Sentinel1","Sentinel2","Landsat89"].
modelstringPrediction model, e.g. Stratus2, Stratus2NoSnow.
bandnamesstringComma-separated bands or indices. Exclusive: rgb or all. Composable: B2,B3,B4,B5,B6,B7,B8,B8A,B11,B12 or indices like [B8_B4].
allowPartialImagebooleanfalse to fail if any zone is missing data; true to return a partial composite.
automaticOrderCreationbooleanfalse to error if area/date not covered; true to enqueue automatic order on error code 1006.
uploadUrlstring | nullURL 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
}
important

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"
}
]
}
]
}
}