API changelog
This changelog lists all of the user-facing changes to the ICEYE API since its initial release in May 2024.
-
POST tasking/v1/tasks
endpoint — when requesting non-standard product types with theadditionalProductTypes
parameter, it is now possible to specifySICD
on its own,SIDD
on its own, or bothSICD
andSIDD
together, provided that the specified products types are defined as SLA products in your contract. Previously, specifyingSICD
on its own orSIDD
on its own would raise an error.
The following improvements were made to error messages in API Platfform:
-
GET /company/v1/contracts
,GET /tasking/v1/tasks
,GET /catalog/v1/purchases
, andGET /catalog/v1/items
endpoints — now return a HTTP 400 Bad Request error if the paginationlimit
parameter is out of range (thelimit
parameter must lie within the range 0 to 10000). -
GET tasking/v1/tasks/{taskID}/products
endpoint — now returns a HTTP 404 Not Found error if the task products are unavailable (for example, if the task ID was not found or the task is not fulfilled yet). Previously, a HTTP 500 error was being returned.
-
POST /tasking/v1/tasks
endpoint — in thecreateTask
operation, you can task for a Spot Fine 1-look image by setting theimagingMode
request parameter toSPOTLIGHT_FINE_1L
.
-
POST /tasking/v1/tasks
endpoint — in thecreateTask
operation, you can task for a Dwell Precise image by setting theimagingMode
request parameter toSPOTLIGHT_EXTENDED_DWELL_PRECISE
.
-
GET tasking/v1/tasks/{taskID}
andGET tasking/v1/tasks
endpoints — the response to agetTask
operation or alistTasks
operation now omit theeula
field when the task does not have a EULA specified.
-
POST /tasking/v1/tasks
endpoint — in thecreateTask
operation, theincidenceAngle
request parameter has now been updated so that the default incidence angle range (when then parameter is left unspecified) is set automatically to the recommended range (Performant Incidence Range) of the specified imaging mode, as documented in the ICEYE Product Specification.
-
GET tasking/v1/tasks/{taskID}/products/{productType}
andGET /purchases/{purchaseID}/products
endpoints — the list of products returned by these endpoints is now limited to show only the products considered suitable for delivery. Images acquired by ICEYE satellites can be processed multiple times and each processing run produces new products (for example, reprocessing images to take advantage of software updates that produce images with the latest specifications). -
GET company/v1/contracts/{contractID}
andGET company/v1/contracts
endpoints — the Company API spec documentation has been updated to correctly show theimagingModes.allowed
property in the JSON response as an array, not a nested array.
-
POST catalog/v1/search
endpoint — changedstart_datetime
metadata query property tostart_time
, in accordance with the STAC specification.
-
POST catalog/v1/search
endpoint — newsearchCatalogItems
operation for searching the ICEYE public catalog. This endpoint supports an advanced query syntax based on the STAC API - Query Extension Specification. See Search catalog items. -
GET catalog/v1/items
endpoint — thequery
query parameter has been removed from thelistCatalogItems
operation. This parameter was never fully implemented and the intended functionality is now provided by the newPOST catalog/v1/search
endpoint. -
GET tasking/v1/tasks/{taskID}/scene
endpoint — thegetTaskScene
operation has been implemented and is now fully supported. You can invoke thegetTaskScene
operation to discover the planned imaging time (and other imaging parameters) for a specified task. See Get task scene.
-
POST catalog/v1/purchases
endpoint — thepurchaseCatalogItems
operation now takes an optionalreference
parameter, which is a user-supplied ID that can be used to track a purchased item or group of purchased items. -
GET catalog/v1/purchases
andGET /catalog/v1/purchases/{purchaseID}
endpoints — thegetPurchasedItem
andlistPurchasedItems
operations now include thereference
parameter in the item descriptions, if the user provided thereference
parameter when purchasing the items.
-
GET company/v1/contracts/{contractID}
andGET company/v1/contracts
endpoints — the contract details returned by these endpoints now include the allowed EULA and default EULA settings. -
GET /catalog/v1/purchases/{purchaseID}
endpoint — thegetPurchaseItem
operation now returns a HTTP 404 error if thepurchaseID
is not found (previously, a HTTP 500 error was returned). -
GET tasking/v1/tasks/{taskID}/scene
endpoint — thegetTaskScene
operation was added initially for development testing. This endpoint is fully supported since the September 3, 2024 release.
-
POST tasking/v1/tasks
endpoint — thecreateTask
operation now automatically requestsCSI
andVID
as additional standard product for the Dwell imaging mode. See Standard products. -
GET tasking/v1/tasks/{taskID}/products
andGET tasking/v1/tasks/{taskID}/products/{productType}
endpoints — thelistTaskProducts
operation andgetTaskProduct
operation now includeCSI
andVID
in the listed standard products. -
GET /catalog/v1/items
endpoint — thelistCatalogItems
operation now lists each image only once, as a single catalog item. Previously, thelistCatalogItems
operation returned multiple catalog items for each image, where each product type (GRD
,SLC
, and so on) was returned as a separate item. When you purchase an image from the catalog, all of the image’s product types are included in the purchase and theproduct_type
field is now omitted from the STAC item.
-
GET company/v1/contracts
endpoint — in thelistContracts
operation, fixed the error response to return the correct HTTP error statuses (for example, an incorrect parameter value now returns HTTP 400 instead of HTTP 500). -
POST catalog/v1/purchases
endpoint — in thepurchaseCatalogItems
operation, fixed a bug in the OpenAPI spec, replacing thepurchaseIds
parameter byitemIds
.
-
All endpoints — new problem details format is enabled by including
application/problem+json
in theAccept
header of API requests. For details, see Error handling. -
POST tasking/v1/tasks
endpoint — in thecreateTask
operation, take the default value ofexclusivity
from the value of theImagesPrivateByDefault
setting in the contract.
-
GET catalog/v1/items
endpoint — in thelistCatalogItems
operation, fixed a bug affecting thebbox
query parameter, where validation of thebbox
array parameters was failing.
-
POST tasking/v1/tasks
endpoint — thecreateTask
operation request now takes an optionaleula
parameter to select the end user license agreement (EULA) that applies to the tasking products. For details, see EULA. -
GET tasking/v1/price
endpoint — thegetPrice
operation request now takes a requiredeula
parameter to select the end user license agreement (EULA) that applies to the tasking products. For details, see EULA. -
GET company/v1/contracts/{contractID}
andGET company/v1/contracts
endpoints — the response to agetContract
operation or alistContracts
operation now includes the applicable EULA value in theeula
property. -
GET tasking/v1/tasks/{taskID}
andGET tasking/v1/tasks
endpoints — the response to agetTask
operation or alistTasks
operation now includes the applicable EULA value in theeula
property. -
GET tasking/v1/tasks/{taskID}
andGET tasking/v1/tasks
endpoints — the response to agetTask
operation or alistTasks
operation now includes a list ofdeliveryLocations
. -
All endpoints — the API Platform now incorporates a validation framework that checks all incoming requests to make sure that they conform to the API specifications. In particular:
-
If any required parameters are missing, a HTTP 400 error is returned.
-
If any unknown parameters are provided (could also be caused by mis-spelling a parameter), a HTTP 400 error is returned.
-
If a parameter value is missing or does not conform to the API specification, a HTTP 400 error is returned.
-
Breaking changes
-
POST tasking/v1/tasks
endpoint — in thecreateTask
operation, the approach to specifying delivery locations has been refactored. The following changes have been made to thecreateTask
Request format:-
The
deliveryLocationIDs
array parameter has been removed. -
The
deliveryLocations
array parameter has been added, enabling you to specify each location by providingmethod
,path
, andsubpath
properties. See Create task.
-
-
GET /company/v1/contracts/{contractID}
endpoint — in thegetContract
operation, the data returned indeliveryLocations
no longer includes theid
field, because the delivery location ID has been removed from the API. -
GET /company/v1/contracts
endpoint — in thelistContracts
operation, the data returned indeliveryLocations
no longer includes theid
field, because the delivery location ID has been removed from the API.
-
GET /tasking/v1/tasks/{taskID}
endpoint andGET /tasking/v1/tasks
endpoint — the delivery location IDs returned from thegetTask
andlistTasks
operations are now formatted as unchanging, unique UUID5 strings. -
POST tasking/v1/tasks
endpoint — when you invoke thecreateTask
operation with a combination of constraints that do not exist in the pricing plan, the endpoint responds with a 403 status code and error code equal toERR_PARAMETERS_FORBIDDEN
(previous to this fix, the endpoint would return the error codeERR_INSUFFICIENT_FUNDS
). -
POST tasking/v1/tasks
endpoint — thecreateTask
operation now listsQUICKLOOK
as an additional product type. But this feature is not yet complete and it is currently not possible to orderQUICKLOOK
images using the API.
-
GET tasking/v1/price
endpoint — when you invoke thegetPrice
operation with a contract that is not yet valid or already expired, the endpoint responds with a 400 status code and error code equal toERR_OUT_OF_BOUND_CONTRACT
. -
GET tasking/v1/price
endpoint — when you invoke thegetPrice
operation with a contract that is not associated with a pricing plan, the endpoint responds with a 403 status code and error code equal toERR_OUT_OF_BOUND_CONTRACT
.
-
POST tasking/v1/tasks
endpoint — when you invoke thecreateTask
operation with a contract that is not yet valid or already expired, the endpoint responds with a 400 status code and error code equal toERR_OUT_OF_BOUND_CONTRACT
. In particular, this error is returned in the following cases:-
When you try to create a task under a contract that is already expired.
-
When you try to create a task under a contract that will be expired by the end of the acquisition window.
-
When you try to create a task under a contract that is not yet valid by the start of the acquisition window.
-
-
GET /tasking/v1/tasks
endpoint — addedcreatedAfter
andcreatedBefore
parameters for filtering tasks. See Filtering by date-time range. -
POST tasking/v1/tasks
endpoint — fixed bug where response fromcreateTask
operation indicatedBACKGROUND
priority, even though the task was created withCOMMERCIAL
priority.