API v1.0 to v2.0 Reference Guide
This guide provides detailed, endpoint-by-endpoint migration instructions for moving from ICEYE Constellation API v1.0 to v2.0.
Authentication
|
API v2.0 requires Client Credentials authentication. The Resource Owner Password flow (username/password) is not supported for v2.0 APIs. If you are currently using username and password authentication, you must migrate to Client Credentials before accessing v2.0 endpoints. Contact ICEYE to obtain your Client Credentials ( |
See Authentication for details on the Client Credentials flow.
Tasking API
POST /tasks - Create Task
| v1.0 | v2.0 |
|---|---|
|
|
Request Body Changes
| Field | v1.0 | v2.0 |
|---|---|---|
|
Array of |
Removed - Use |
|
Array with |
Removed - Use |
|
Not available |
Array with |
|
Not available |
Object with |
|
Not available |
Specify which product types to receive from your contract-allowed list |
v1.0 Request Example
{
"contractID": "550e8400-e29b-41d4-a716-446655440000",
"pointOfInterest": {
"lat": 60.1699,
"lon": 24.9384
},
"acquisitionWindow": {
"start": "2025-01-15T00:00:00Z",
"end": "2025-01-17T00:00:00Z"
},
"imagingMode": "SPOTLIGHT",
"exclusivity": "PRIVATE",
"priority": "COMMERCIAL",
"sla": "SLA_8H",
"eula": "STANDARD",
"additionalProductTypes": ["SIDD"],
"deliveryLocations": [
{
"method": "sftp",
"path": "/data/imagery",
"subPath": "tasking"
}
]
}
v2.0 Request Example
{
"contractID": "550e8400-e29b-41d4-a716-446655440000",
"pointOfInterest": {
"lat": 60.1699,
"lon": 24.9384
},
"acquisitionWindow": {
"start": "2025-01-15T00:00:00Z",
"end": "2025-01-17T00:00:00Z"
},
"imagingMode": "SPOTLIGHT",
"exclusivity": "PRIVATE",
"priority": "COMMERCIAL",
"sla": "SLA_8H",
"eula": "STANDARD",
"deliveries": [
{
"locations": [
{
"configID": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"path": "/data/imagery",
"subPath": "tasking"
}
]
}
]
}
The configID is a UUID referencing a pre-configured delivery location (e.g., S3 bucket). Retrieve available config IDs using GET /api/delivery/v1/deliveries/location-configs. The deliveries parameter is optional.
|
Response Changes
The response includes new fields in v2.0:
| New Field | Required | Description |
|---|---|---|
|
Optional |
Array of delivery objects with |
|
Optional |
Webhook configuration object. Present if notifications were configured. |
|
Required |
Array of product types to be delivered |
|
Required |
EULA field is now always present in the response. |
GET /tasks/{taskID} - Get Task
| v1.0 | v2.0 |
|---|---|
|
|
PATCH /tasks/{taskID} - Cancel Task
| v1.0 | v2.0 |
|---|---|
|
|
GET /tasks/{taskID}/products - List Task Products
| v1.0 | v2.0 |
|---|---|
|
|
Response Changes
Complete schema change from custom format to STAC-like format.
v1.0 Response Format
[
{
"type": "GRD",
"assets": [
{
"title": "GRD Image",
"contentType": "application/octet-stream",
"downloadURL": "https://cdn.example.com/grd-image.tif"
}
]
}
]
v2.0 Response Format
{
"data": [
{
"id": "ICEYE_GRD_123456",
"type": "Feature",
"stac_version": "1.0.0",
"geometry": {
"type": "Polygon",
"coordinates": [[[24.9, 60.1], [25.0, 60.1], [25.0, 60.2], [24.9, 60.2], [24.9, 60.1]]]
},
"bbox": [24.9, 60.1, 25.0, 60.2],
"properties": {
"frame_id": "frame_123",
"created": "2025-01-15T12:00:00Z",
"start_datetime": "2025-01-15T10:00:00Z",
"end_datetime": "2025-01-15T10:00:30Z",
"sar:instrument_mode": "spotlight",
"sar:product_type": "GRD",
"sar:polarizations": ["VV"],
"iceye:incidence_center": 35.5,
"sat:orbit_state": "descending"
},
"collection": "tasking",
"assets": {
"data": {
"href": "https://cdn.example.com/grd-image.tif",
"title": "GRD Image",
"type": "image/tiff",
"roles": ["data"]
}
}
}
],
"cursor": "next_page_token"
}
Migration Steps
-
Update response parsing to expect
CatalogItemswrapper withdataarray -
Access products via
dataarray instead of root array -
Update asset URL access:
assets.<name>.hrefinstead ofassets[].downloadURL -
Handle pagination via
cursorfield -
Update property access to use new STAC property names (see Property Name Migration)
GET /tasks/{taskID}/products/{productType} - Get Task Product
| v1.0 | v2.0 |
|---|---|
|
|
GET /tasks/{taskID}/scene - Get Task Scene
| v1.0 | v2.0 |
|---|---|
|
|
POST /feasibility - Check Feasibility (NEW)
| v1.0 | v2.0 |
|---|---|
Not available |
|
New endpoint to validate whether tasking requests can be scheduled by the ICEYE constellation before creating tasks. See the Check Feasibility documentation for full details.
Catalog API
GET /items - List Catalog Items
| v1.0 | v2.0 |
|---|---|
|
|
Request Parameters
Existing parameters (limit, cursor, ids, bbox, datetime) are unchanged.
| Parameter | Status | Notes |
|---|---|---|
|
Enhanced |
More properties available, use STAC-prefixed names (see Property Name Migration) |
|
New in v2.0 |
Filter by collection IDs |
|
New in v2.0 |
Access control based on contract |
Response Changes
-
collectionfield is now required on each item -
Property names changed to STAC-prefixed format (see Property Name Migration)
POST /search - Search Catalog Items
| v1.0 | v2.0 |
|---|---|
|
|
Request Body Changes
Existing fields (bbox, datetime, ids, limit) are unchanged.
| Field | Status | Notes |
|---|---|---|
|
Enhanced |
Use STAC-prefixed property names (see Property Name Migration) |
|
Enhanced |
More properties available |
|
New in v2.0 |
GeoJSON geometry filter |
|
New in v2.0 |
Filter by collection IDs |
|
New in v2.0 |
Access control |
|
New in v2.0 |
Pagination in request body |
v1.0 Query Example
{
"bbox": [-5, 28, 56, 44],
"datetime": "2024-01-01T00:00:00Z/2024-12-31T23:59:59Z",
"query": {
"incidence_angle": { "gt": 15, "lt": 35 },
"product_type": { "in": ["SLC", "GRD"] },
"orbit_state": { "startsWith": "asc" }
},
"limit": 50
}
v2.0 Query Example
{
"bbox": [-5, 28, 56, 44],
"datetime": "2024-01-01T00:00:00Z/2024-12-31T23:59:59Z",
"query": {
"iceye:incidence_center": { "gt": 15, "lt": 35 },
"sar:product_type": { "in": ["SLC", "GRD"] },
"sat:orbit_state": { "startsWith": "asc" }
},
"intersects": {
"type": "Polygon",
"coordinates": [[[-5, 28], [56, 28], [56, 44], [-5, 44], [-5, 28]]]
},
"collections": ["curated", "tasking"],
"contractID": "550e8400-e29b-41d4-a716-446655440000",
"limit": 50,
"cursor": "previous_page_token"
}
POST /purchases - Purchase
| v1.0 | v2.0 |
|---|---|
|
|
Major breaking change: v2.0 purchases by frame, not by item IDs.
v1.0 Request
{
"itemIds": ["item1", "item2", "item3"],
"contractId": "550e8400-e29b-41d4-a716-446655440000",
"companyName": "ACME Corp",
"contactPerson": "John Doe",
"reference": "Project Alpha"
}
v2.0 Request
{
"frameID": "frame_123456",
"contractID": "550e8400-e29b-41d4-a716-446655440000",
"eula": "STANDARD",
"reference": "Project Alpha"
}
Request Field Mapping
| v1.0 Field | v2.0 Field | Notes |
|---|---|---|
|
|
Breaking: Single frame instead of multiple items |
|
|
Casing change (camelCase consistency) |
|
Removed |
No longer needed |
|
Removed |
No longer needed |
(not available) |
|
New: License type (STANDARD, GOVERNMENT, MULTI) |
GET /purchases - List Purchases
| v1.0 | v2.0 |
|---|---|
|
|
GET /purchases/{purchaseID} - Get Purchase
| v1.0 | v2.0 |
|---|---|
|
|
GET /purchases/{purchaseID}/products - List Purchase Products
| v1.0 | v2.0 |
|---|---|
|
|
Response Changes
-
Property names changed to STAC-prefixed format (see Property Name Migration)
-
collectionfield now required
GET /price - Get Frame Price (NEW)
| v1.0 | v2.0 |
|---|---|
Not available |
|
Property Name Migration
| v1.0 Property | v2.0 Property |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Removed - Use |
Delivery API (NEW)
All endpoints are new in v2.0. See the Delivery API documentation for full details.
Notifications API (NEW)
All endpoints are new in v2.0. The Notifications API enables webhook callbacks when task or purchase status changes. See the Notifications API documentation for full details.