---
title: Imagery Ordering on ADX for APIs
description: Ursa Space's Imagery Ordering API is available through the Amazon Data Exchange (ADX)
---

[Skip to content](https://info.ursaspace.com/adx-ordering-api#main-content)

English

Show submenu for translations

![Default_Ursa Space Logo_For Light BG_Black Red](https://info.ursaspace.com/hs-fs/hubfs/Default_Ursa%20Space%20Logo_For%20Light%20BG_Black%20Red.png?width=75&height=48&name=Default_Ursa%20Space%20Logo_For%20Light%20BG_Black%20Red.png)

- [Home](https://ursaspace.com/)
- [Blog](https://ursaspace.com/all-news/)

Open main navigation

Close main navigation

- [Home](https://ursaspace.com/)
- [Blog](https://ursaspace.com/all-news/)
- English
  
  Show submenu for translations
- Go to ursaspace.com

 Go to ursaspace.com

 Hello. How can we help you?

- There are no suggestions because the search field is empty.

1. [Info](https://info.ursaspace.com/)
2. [Imagery](https://info.ursaspace.com/imagery)

# Imagery Ordering on ADX for APIs

## Ursa Space's Imagery Ordering API is available through the Amazon Data Exchange (ADX)

### Table of Contents

[Summary](https://info.ursaspace.com/adx-ordering-api#Summary)

[Workflow Overview](https://info.ursaspace.com/adx-ordering-api#Workflow-Overview)

Endpoints:

- - - [Place an Order for a Catalog Image](https://info.ursaspace.com/adx-ordering-api#Order-Catalog)
          - [Place an Order for a Tasking Image](https://info.ursaspace.com/adx-ordering-api#Order-Tasking)
          - [Price an Order Before Purchase](https://info.ursaspace.com/adx-ordering-api#Price)
          - [Get Order Status](https://info.ursaspace.com/adx-ordering-api#Status)
          - [Get All User Orders](https://info.ursaspace.com/adx-ordering-api#User-Orders)
          - [Get Order Request](https://info.ursaspace.com/adx-ordering-api#Request)
          - [Get Product Status](https://info.ursaspace.com/adx-ordering-api#Product-Status)
          - [Get Delivery Items](https://info.ursaspace.com/adx-ordering-api#Delivery)
          - [Download Image From Blob](https://info.ursaspace.com/adx-ordering-api#Download)

[Enumerations](https://info.ursaspace.com/adx-ordering-api#Enumerations)

 

---

 

### Summary

Ursa Space image ordering is now available on the AWS Data Exchange (ADX). ADX subscribers gain API access to place orders for items in Ursa Space’s archive catalog, and task future collections with a subset of vendors in Ursa Space’s virtual constellation of satellite vendors. Orders are billed per-request through ADX’s new Metered Billing service. 

Ursa Space maintains robust partnerships with existing and upcoming commercial data providers, and regularly ingests and processes a variety of SAR and non-SAR (i.e. optical, infrared, multi-spectral, and hyperspectral) data from this group of vendors in what is referred to as the Virtual Constellation.

Ursa Space performs this processing through the development and deployment of the Ursa Platform. The platform contains the data and software services required to ingest data (SAR imagery, optical imagery, external data sources for algorithmic fusion, etc.), run analytics and algorithms on these data to produce results, and provide customer access to related data feeds via API.  

In addition to ingesting, cataloging, and normalizing data from vendors in the Virtual Constellation, Ursa Space is also able to rapidly task new imagery and deliver the resulting data to customers. Users may place purchase requests to schedule a SAR collection at a future date, or purchase existing imagery from the archive catalog containing over 18 million SAR and optical images.

This listing contains API access to place orders for items in Ursa Space’s archive catalog, and task future collections with a subset of vendors in our Virtual Constellation. User-specified parameters in new image tasking are limited in this API for simplicity. For more advanced tasking parameters and options, please contact Ursa using the support contact below.

This document describes the API and service endpoints which will allow external Ursa Space users to order and request data from Ursa’s Virtual Constellation. These endpoints support ordering data from existing vendor catalogs (archive imagery), tasking new images, retrieving status of existing orders, and retrieving presigned S3 URLs for downloading delivered imagery. The workflow from placing an order to downloading a delivered image is described below.

 

[Back to Table of Contents](https://info.ursaspace.com/adx-ordering-api#Table-of-Contents)

---

### Workflow Overview

This section provides a high-level overview of the steps involved in purchasing imagery via ADX endpoints. More detail about each endpoint is provided below.

1. Retrieve the price of an order through the POST **/ios/order/price** endpoint before purchasing.
2. Place an archive catalog or new tasking order through the  POST **/ios/order** endpoint.
3. Order status and other order information is retrieved from the GET **/ios/order/{orderId}** endpoint.
4. At any time, users can retrieve all orders associated with their account via the GET **/ios/order** endpoint.
5. Information about specific products associated with an order can be accessed through the GET **/ios/order/{orderId}/product/{productId}** endpoint.
6. When the order is complete and imagery is available for download, an email will be sent to the email specified in the contactEmail of the initial order request.
7. Upon order completion, a user can retrieve what is referred to as the blobId for specific images that are available for download through the GET **/ios/order/{orderId}/product/{productId}/deliveries** endpoint.
8. User can retrieve a link to their image using the endpoint GET **/ios/order/{orderId}/download/{blobId}/url**

Note: For an image to be downloaded through this endpoint, the delivery item’s state must be delivered.

 

[Back to Table of Contents](https://info.ursaspace.com/adx-ordering-api#Table-of-Contents)

---

### Endpoints: Place an Order for a Catalog Image

This endpoint enables authorized users to place an order for one or more catalog/archive images. Images are specified using **assignedIds** returned by queries to the Ursa Space catalog. For more information, see our **Ursa Space – SAR Catalog Search **ADX product.

An example request and response are presented on the next page. In the request body:

- The field **assignedIds** must be one or more available-image assigned IDs from the imagery catalog.
- The **type** field is a required field and must have the value **catalog** for catalog/archive orders.
- The **descriptiveName**, **purchaseReason**, and **customerNotes** fields are all optional.
- The **contactEmail** will receive an email confirmation at the time of order creation and order completion.

In the response body:

- The **id** field returned in response to an order request is the Order ID that can be used for future reference.
- The **products** field refers to the products attached to that specific order. Currently each order will have a maximum of one product, which can be used in the subsequent GET endpoints.
- The **statusHistory** indicates the history of states for the order, with the final state being the current state of the order. See order state enumerations at the end of this document.
- The **request** field is an ID that can be used in the GET **/ios/order/request/{requestId}** endpoint to retrieve the original request.
- The **owner** field is the UUID associated with the user creating the order. The **customer** field is the UUID for the customer/company the user is associated with (multiple users can be associated with a single customer).

In the response header:

- The **x-amz-dataexchange-metering** header in the response will indicate the cost of the order. It will have a value of  **OrderPrice=XX.0** where **XX** is the cost of the order.

 

**Method:** POST 

**Path: ** /ios/order

**Request Body: **

```
{  “descriptiveName”: “string”,  “purchaseReason”: “string”,  “customerNotes”: “string”,  “request”: {    “type”: “catalog”,    “assignedIds”: [      “3fa85f64-5717-4562-b3fc-2c963f66afa6”    ]    “contactEmail”: “user@example.com”  }}
```

**Response Code:**  201: A new order has been created

**Metered Billing Response Header: **

```
“x-amz-dataexchange-metering”: “OrderPrice=100.0”
```

**Response Body:**

```
{  “id”: “1234-5678-9012”,  “descriptiveName”: “string”,  “purchaseReason”: “string”,  “customerNotes”: “string”,  “request”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,  “owner”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,  “customer”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,  “contract”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,  “products”: [    “3fa85f64-5717-4562-b3fc-2c963f66afa6”  ],  “statusHistory”: [    {      “state”: “created”,      “when”: “2022-05-11T14:51:52.443Z”    }  ]}
```

 

[Back to Table of Contents](https://info.ursaspace.com/adx-ordering-api#Table-of-Contents)

---

 

### Endpoints: Place an Order for a Tasking Image

This endpoint enables authorized users to place an order for tasking new images. Ursa will deliver a SCID file, GEC file, and GTC file for each successful tasking order.

In the request body:

- The field **assignedIds** must be one or more available-image assigned IDs from the imagery catalog.
- The **type** field is a required field and must have the value **tasking-parameters** for tasking orders.
- The **descriptiveName**, **purchaseReason**, and **customerNotes** fields are all optional.
- The **contactEmail** will receive an email confirmation at the time of order creation and order completion.
- In the **aois** field, we currently only support a single AOI of type point, with a latitude, longitude, and radius.
- In the **schedule** field, we currently only support a single schedule of type **range**, with a minimum and maximum datetime.
- The **collectionParameters** field is a list, but we currently only support a single collection parameter entry per request (the size of the list must be 1). The collection parameter fields are:
  
    - The **type** field is required and currently must be set to “**sar**”.
    - The **imagingMode** field is required and determines the price of the tasking request. The field is a map with two inputs:
      
          - **constraint**: one of the available imaging modes, enumerated at the end of this document.
          - **level**: this field must be set to “**required**”.

The response body and Metered Billing response header will be in the same format as catalog order responses.

 

**Method:** POST 

**Path: ** /ios/order

**Request Body: **

```
 {  “descriptiveName”: “string”,  “purchaseReason”: “string”,  “customerNotes”: “string”,  “request”: {    “contactEmail”: “user@example.com”,    “type”: “tasking-parameters”,    “aois”: [      {        “type”: “point”,        “latitude_deg”: 0,        “longitude_deg”: 0,        “radius_km”: 0      }    ],    “schedule”: [      {        “type”: “range”,        “range”: {          “min”: “2022-05-11T14:51:52.443Z”,          “max”: “2022-05-11T14:51:52.443Z”        }      }    ],    “collectionParameters”: [      {        “type”: “sar”,        “imagingMode”: {          “constraint”: “SPOTLIGHT”,          “level”: “required”        }      }    ]  }}
```

**Response Code: ** 201: A new order has been created 

**Metered Billing Response Header: **

```
“x-amz-dataexchange-metering”: “OrderPrice=100.0”
```

**Response Body:**

*Response body will be in the same format as catalog order responses.*

 

[Back to Table of Contents](https://info.ursaspace.com/adx-ordering-api#Table-of-Contents)

---

 

Endpoints: Price an Order Before Purchase

This endpoint will return the price of an order without placing the order or charging the customer. 

 

**Method:** POST

**Path: ** /ios/order/price

**Request Body: **

*Same request body as catalog or tasking order.*

**Response Code:  **200 : OK 

**Response Body for Catalog Orders: **

```
{  “catalogPrice”: {    “3fa85f64-5717-4562-b3fc-2c963f66afa6“: 1000.00,    “ab533203-9115-4327-ac9a-58f1d148ee44”: 1200.00  }}
```

**Response Body for Tasking Orders: **

```
{  “taskOrderPrice”: 1550.00}
```

 

[Back to Table of Contents](https://info.ursaspace.com/adx-ordering-api#Table-of-Contents)

---

 

### Endpoints: Get Order Status

This endpoint will return an order and its status for a given order ID.

- The **products** field refers to the products attached to that specific order. Currently each order will have a maximum of one product, which can be used in the subsequently described GET endpoints.
- The **statusHistory** indicates the history of states for the order, with the final state being the current state of the order. See order state enumerations at the end of this document.
- The request field is an ID that can be used in the GET **/ios/order/request/{requestId}** endpoint to retrieve the original request.
- The **owner** field is the UUID associated with the user creating the order. The **customer** field is the UUID for the customer/company the user is associated with (multiple users can be associated with a single customer).

 

**Method:** GET

**Path: ** /ios/order/{orderID}

**Request Body:** None 

**Response Code: **200 : OK 

**Response Body:**

```
{  “id”: “1234-5678-9012”,  “descriptiveName”: “string”,  “purchaseReason”: “string”,  “customerNotes”: “string”,  “request”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,  “owner”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,  “customer”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,  “products”: [    “3fa85f64-5717-4562-b3fc-2c963f66afa6”  ],  “statusHistory”: [    {      “state”: “created”,      “when”: “2022-05-11T14:51:52.443Z”    }  ]}
```

 

[Back to Table of Contents](https://info.ursaspace.com/adx-ordering-api#Table-of-Contents)

---

 

### Endpoints: Get All User Orders

Get all orders associated with the user making the request. The response will be a list of orders in the format of orders retrieved from GET **/ios/order/{orderId}**.

 

**Method:** GET

**Path:**  /ios/order

**Request Body:** None 

**Response Code: **200 : OK 

**Response Body: **

```
[  {    “id”: “1234-5678-9012”,    “descriptiveName”: “string”,    “purchaseReason”: “string”,    “customerNotes”: “string”,    “request”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,    “owner”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,    “customer”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,    “products”: [      “3fa85f64-5717-4562-b3fc-2c963f66afa6”    ],    “statusHistory”: [      {        “state”: “created”,        “when”: “2022-05-11T14:51:52.443Z”      }    ]  },  {    “id”: “2345-6789-0123”,    “descriptiveName”: “string”,    “purchaseReason”: “string”,    “customerNotes”: “string”,    “request”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,    “owner”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,    “customer”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,    “products”: [      “3fa85f64-5717-4562-b3fc-2c963f66afa6”    ],    “statusHistory”: [      {        “state”: “created”,        “when”: “2022-05-11T14:51:52.443Z”      }    ]  }]
```

 

[Back to Table of Contents](https://info.ursaspace.com/adx-ordering-api#Table-of-Contents)

---

 

### Endpoints: Get Order Request

Get a request using the **request** ID returned in a POST **/ios/order** or GET **/ios/order/{orderId}** call.

 

**Method:** GET

**Path:**  /ios/order/request/{requestId}

**Request Body:** None 

**Response Code: **200 : OK 

**Response Body: **

*JSON request in format provided to POST /ios/order*

 

[Back to Table of Contents](https://info.ursaspace.com/adx-ordering-api#Table-of-Contents) 

---

### Endpoints: Get Product Status

This endpoint retrieves the **product** associated with a specific **orderId**. The product will look slightly different depending on if the order is a catalog order or a new tasking order. Both types of products will contain:

- The **id** and **order** fields showing the IDs requested in the endpoint path
- An **orderDeliveries** field that will contain an ID to access deliveries when they are available.
  
    - Note: this field will initially be empty when the order is first created. It will get populated as the order is fulfilled by Ursa.
    - Note: this field is a list, but currently we support a single **orderDelivery** ID per product.
- The **statusHistory** indicates the history of states for the product, with the final state being the current state of the product. See product state enumerations at the end of this document.
  
    - Note: this is a separate status from the individual **deliveryItem** statuses described below.

In catalog order requests, the following product fields will contain catalog-specific values:

- The **type** field will have a value of “OrderProduct”
- The **images** field will have images of **type** “priced-image”. This will contain metadata about the ordered images as well as their **price** and **currency**.

In tasking order requests, the product will have fields:

- The **type** field will have a value of “taskingOrderProduct”
- The **images** field will have images of type “Image”. This will contain image metadata, but no price or currency.
  
    - Note: the **images** field will initially be empty and will be populated as tasking requests are fulfilled.
- A **taskingOrders** field with:
  
    - **imagingMode**, the determining factor in the price of a tasking request.
    - **price** and **currency** of the tasking request.

**Method:** GET

**Path:**  /ios/order/{orderID}/product/{productID}

**Request Body:** None 

**Response Code:** 200 : OK 

**Response Body for Catalog Order Products:** 

```
{  “type”: “OrderProduct”,  “id”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,  “order”: “1234-5678-9012”,  “orderDeliveries”: [ “3fa85f64-5717-4562-b3fc-2c963f66afa6” ],  “statusHistory”: [ { “state”: “created”, “when”: “2022-05-12T18:47:37.661Z”, } ],  “images”: [    {      “type”: “priced-image”      “assignedId”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,      “startTimeUTC”: “2022-05-12T18:47:37.661Z”,      “vendor”: “CAPELLA”,      “vendorMode”: “CAP_SPOTLIGHT”,      “resolution”: “0.25m”,      “wkt”: “MULTIPOLYGON(((-76.582054 42.4832555,-76.448844 42.499964,-76.430992 42.395082,-76.558708 42.388490,-76.582054 42.483255)))”,      “price”: 3163,      “currency”: “USD”    }  ]}
```

**Response Body for Tasking Order Products: **

```
{  “type”: “taskingOrderProduct”,  “id”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,  “order”: “1234-5678-9012”,  “orderDeliveries”: [ “3fa85f64-5717-4562-b3fc-2c963f66afa6” ],  “statusHistory”: [ { “state”: “created”, “when”: “2022-05-12T18:47:37.661Z”, } ],  “taskingOrders”: [    { “imagingMode”: “SPOTLIGHT”,  “price”: 2500, “currency”: “USD” }  ],  “images”: [    {      “type”: “Image”,      “assignedId”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,      “startTimeUTC”: “2022-05-12T18:44:50.358Z”,      “vendor”: “CAPELLA”,      “vendorMode”: “CAP_SPOTLIGHT”,      “resolution”: “0.25m”,      “wkt”: “MULTIPOLYGON(((-76.582054 42.4832555,-76.448844 42.499964,-76.430992 42.395082,-76.558708 42.388490,-76.582054 42.483255)))”    }  ]}
```

 

[Back to Table of Contents](https://info.ursaspace.com/adx-ordering-api#Table-of-Contents)

---

 

### Endpoints: Get Delivery Items

This endpoint gets all delivery items for a given **productId** in an order. 

- Currently, each order will have at most one **productId**. Each product is a list of json objects (“**deliveries**”) that each have a number of **deliveryItems**. Currently, each product will have at most one “delivery” (the list will be of size 1), but that delivery can have multiple **deliveryItems** as shown below.
- Each **deliveryItem** will have a **format** and a **where** field:
  
    - The **format** field indicates the format of the delivered image.
    - The **where** field will always be of type “**platform**” for ADX users and contain an **assignedId** of the image and a **blobId** to be used in the download endpoint below.
- The **statusHistory** indicates the history of states of the delivery, with the final state being the current state of the delivery. See delivery state enumerations at the end of this document.

 

**Method:** GET

**Path:**  /ios/order/{orderID}/product/{productID}/deliveries

**Request Body:** None 

**Response Code:** 200 : OK 

**Response Body: **

```
[  {    “id”: “3fa85f64-5717-4562-b3fc-2c963f66afa6”,    “deliveryItems”: [      {        “format”: “SLC_SICD”,        “where”: {          “type”: “platform”,          “assignedId”: “304907be-dd03-4990-bb80-7eaad3bfc61a”,          “blobId”: “2cb8db8e-224b-4419-a676-76488ae90e2c”        }      },{        “format”: “GEC”,        “where”: {          “type”: “platform”,          “assignedId”: “304907be-dd03-4990-bb80-7eaad3bfc61a”,          “blobId”: “4f388f22-5b79-4ef7-b575-9d2f29486a84”        }      },{        “format”: “GTC”,        “where”: {          “type”: “platform”,          “assignedId”: “304907be-dd03-4990-bb80-7eaad3bfc61a”,          “blobId”: “fc39fab3-cfeb-4111-ba6c-d526d133854d”        }      },    ],    “statusHistory”: [      { “state”: “creating”, “when”: “2022-05-12T12:29:35.224Z”, }    ]  }]
```

 

[Back to Table of Contents](https://info.ursaspace.com/adx-ordering-api#Table-of-Contents)

---

 

### Endpoints: Download Image From Blob

Generates a presigned URL for a specific image **blobId** and returns that URL in the response body. The URL will be valid for 5 minutes after creation.

- An order’s **blobIds** can be retrieved via the GET **/ios/order/{orderID}/product/{productID}/deliveries** described above.
- Note: the delivery item must be in the state “delivered” for URL retrieval to work.

 

**Method:** GET

**Path:**  /ios/order/{orderID}/download/{blobID}/url

**Request Body:** None 

**Response Code:** 200: OK

**Response:**

```
https://s3.amazonaws.com/presigned-url
```

 

 [Back to Table of Contents](https://info.ursaspace.com/adx-ordering-api#Table-of-Contents)

---

 

### Enumerations

#### Imaging Mode Collection Parameter

| Imaging Mode |
| --- |
| SPOTLIGHT |
| STRIPMAP |

 

#### Order StatusHistory States

| Order State | Description |
| --- | --- |
| created | Order has been created and is waiting for the next step |
| open | Ursa internal-only state |
| payment-pending | Payment is needed for the order to progress |
| in-progress | Order is ready to be fulfilled by the Ursa delivery team |
| cancelled | Order has been cancelled  |
| under-review | Order is currently under review by the Ursa delivery team |
| accepted | Order has been approved and is ready for delivery |
| closed | Order has been rejected |
| completed | Order has been fulfilled and delivered to the customer |

 

#### Product StatusHistory States

| Product State | Description |
| --- | --- |
| created | Product item has been created |
| completed | Product has been delivered successfully |

 

#### Delivery StatusHistory States

| Delivery State | Description |
| --- | --- |
| creating | Delivery item is being created |
| delivered | Delivery item is delivered and ready to be retrieved by the customer |

 

 

 

[Back to Table of Contents](https://info.ursaspace.com/adx-ordering-api#Table-of-Contents)

---

 

- [General](https://info.ursaspace.com/general)
- [Analytics](https://info.ursaspace.com/analytics)
- [Imagery](https://info.ursaspace.com/imagery)
- [Global Oil Storage](https://info.ursaspace.com/global-oil-storage)
- [Global Monitoring Service](https://info.ursaspace.com/global-monitoring-service)
- [Stockpile Measurement](https://info.ursaspace.com/stockpile-measurement)

- [Home](https://ursaspace.com/)
- [Blog](https://ursaspace.com/all-news/)

[![Default_Ursa Space Logo_For Light BG_Black Red](https://info.ursaspace.com/hs-fs/hubfs/Default_Ursa%20Space%20Logo_For%20Light%20BG_Black%20Red.png?width=75&height=48&name=Default_Ursa%20Space%20Logo_For%20Light%20BG_Black%20Red.png "Default_Ursa Space Logo_For Light BG_Black Red")](http://www.ursaspace.com)

Copyright © 2026, Ursa Space Systems Inc.