Tasking API

The Tasking API supports data procurement by assessing the feasibility of, and planning future capture through various suppliers

This typically consists of the following workflow:

  1. search for available capacities
  2. obtains a feasibility study for that capacity
  3. obtain a quote for the capability (optional)
  4. order the capability
  5. await capture fulfillment

Each of these steps has a corresponding endpoint to provide the necessary information, with the primary interface based on the STAC API Standard.

Searching follows the convention of STAC collection searches, with support for a limited subset of the filter extension to ensure consistency between upstream data sources for which not all operations are available.

Search is available as a GET or POST operation against the /api/tasking/search endpoint.

Search parameters MUST be provided, and the endpoint accepts the following schema

Request

Body

KeyDescription
bboxThe bounding box that results must intersect (will be ignored if intersects is instead provided)
collectionsThe collections to query results from.
datetimeThe date range for results to be within to satisfy this query, separated by a `/`. Dates should be formatted according to RFC3339 (conventional JSON encoding).
filterFurther parameter filters to restrict results. The root operation can be `and` or any other supported query. At this time, not all properties are supported for filters, and they are defined below.
idsThe list of result IDs to retrieve, will override all other parameters and only return items from this list.
intersectsThe GeoJSON Geometry that results must intersect (or contain)
limitThe limit on the number of results to return.
Supported Filter Properties

Coming Soon

This section is coming soon

Example:

{
  "collections": [
    "landsat"
  ],
  "datetime": "2026-05-12T05:12:44Z/2026-07-02T18:24:32Z",
  "filter": {
    "args": [
      {
        "args": [
          {
            "property": "properties.gsd"
          },
          0.8
        ],
        "op": "\u003c="
      },
      {
        "args": [
          {
            "property": "properties.view:off_nadir"
          },
          3
        ],
        "op": "\u003e="
      }
    ],
    "op": "and"
  },
  "intersects": {
    "coordinates": [
      [
        [
          151.2142512,
          -33.855988
        ],
        [
          151.21637,
          -33.8561709
        ],
        [
          151.2163022,
          -33.8583387
        ],
        [
          151.2146072,
          -33.8585076
        ],
        [
          151.2137766,
          -33.8575926
        ],
        [
          151.2142512,
          -33.855988
        ]
      ]
    ],
    "type": "Polygon"
  }
}

Response

The response will contain a list of STAC Items representing capture capacities estimated to be available and pending a full feasibility study.

Body
KeyDescription
featuresThe list of results
linksLinks to related resources, such as pagination and related endpoints
stac_extensionsThe extension schemas used in this result list
stac_versionThe version of the STAC standard these results conform to
timestampTimestamp of these results generation
typeGeoJSON and STAC type attribute Will always be "FeatureCollection"
Feature result STAC Items
KeyDescription
collectionThe collection this result belongs to, typically its supplier, or a sub-collection thereof
geometryThe geometric footprint of the capture plan and its location on the planet. This will be the region ordered with the supplier if placed. Will generally be a Polygon.
idIdentifier for this orderable capability, used to identify the result for accessing further information and ordering
linksLinks to associated information, such as this items details endpoint, or further information about its capture platform (if available)
propertiesProperties of the capture
stac_extensionsThe extension schemas used in this individual result
stac_versionThe version of the STAC standard these results conform to
typeGeoJSON and STAC type attribute Will always be "Feature"
Common Properties

Most results will have the following properties defined by the STAC Common Properties scheme, as well as several standardized extensions.

KeyDescription
bandsThe spectral bands this capture plan includes
constellationThe constellation or platform group that will perform capture
datetimeThe central date and time of the capture period
end_datetimeThe end date and time of the capture period
instrument_modesThe mode(s) used to be used for capture
instrument_typeThe type of instrument to be used for capture
platformThe individual platform which will perform capture (if singular)
platform_typeThe type of platform which will perform capture
price:cloud_levelsList of cloud level guarantees that determine capture suitability, used to specify acceptance criteria
price:currencyThe ISO currency code that the unit price is in
price:license_optionsList of licenses capture can be purchased under
price:moqThe minimum quantity of units that an order may consist of, any request for less will be priced at this minimum.
price:order_levelsList of order levels capture processing can be purchased for
price:priority_optionsList of ordering priority levels capture can be ordered under to address request congestion and prioritization
price:unit_priceThe base unit price of this capture plan, ignoring any coverage based pricing or discounting (see quote endpoint).
price:unitsThe units the pricing is in (i.e. currency/sqkm)
providersThe providers of this capture capability
start_datetimeThe start date and time of the capture period
task-feas:captures_requiredEstimated number of captures required to obtain coverage of the requested area, in the time period
task-feas:estimated_revisitsEstimated number of revisit opportunities that will occur in the time period to facilitate capture(s)
task-feas:gsd_rangeRange of outcome GSD that will be acceptable for captures
task-feas:matches_searchIndicates whether the geometry of capture matches the search geometry, or is newly constructed geometry based on supplier requirements.
task-feas:platformsThe list of platforms included in the group that will be tasked to perform capture
view-range:azimuthThe range of imaging azimuth angles that are acceptable for capture
view-range:off_nadirThe range of off nadir angles that are acceptable for capture

Example:

{
  "features": [
    {
      "geometry": {
        "coordinates": [
          [
            [
              151.23556060248285,
              -33.82753939751741
            ],
            [
              151.23556060248285,
              -33.87706060248259
            ],
            [
              151.18603939751716,
              -33.87706060248259
            ],
            [
              151.18603939751716,
              -33.82753939751741
            ],
            [
              151.23556060248285,
              -33.82753939751741
            ]
          ]
        ],
        "type": "Polygon"
      },
      "id": "84f68eef300719e6b7cb65dc34612d7a",
      "links": [
        {
          "href": "/api/tasking/feasibility/84f68eef300719e6b7cb65dc34612d7a",
          "rel": "self",
          "type": "application/geo+json"
        }
      ],
      "properties": {
        "bands": [
          {
            "eo:center_wavelength": 625,
            "eo:full_width_half_max": 350,
            "eo:max": 800,
            "eo:min": 450,
            "name": "Panchromatic"
          },
          {
            "eo:center_wavelength": 480,
            "eo:full_width_half_max": 60,
            "eo:max": 510,
            "eo:min": 450,
            "name": "Blue"
          },
          {
            "eo:center_wavelength": 545,
            "eo:full_width_half_max": 70,
            "eo:max": 580,
            "eo:min": 510,
            "name": "Green"
          },
          {
            "eo:center_wavelength": 672.5,
            "eo:full_width_half_max": 35,
            "eo:max": 690,
            "eo:min": 655,
            "name": "Red"
          },
          {
            "eo:center_wavelength": 850,
            "eo:full_width_half_max": 140,
            "eo:max": 920,
            "eo:min": 780,
            "name": "Near infrared"
          }
        ],
        "constellation": "sky-scan",
        "end_datetime": "2026-10-26T05:17:39.029Z",
        "instrument_modes": [
          "pushbroom"
        ],
        "instrument_type": "multi-spectral",
        "platform_type": "satellite",
        "price:cloud_levels": [
          {
            "description": "Only attempt captures with lower cloud coverage.",
            "key": "orbit-view-low",
            "loadingAmount": 0,
            "loadingPercent": 0,
            "max": 30,
            "name": "Low"
          },
          {
            "description": "There will be no guarantee on cloud cover.",
            "key": "orbit-view-standard",
            "loadingAmount": 0,
            "loadingPercent": 0,
            "max": 100,
            "name": "Standard"
          }
        ],
        "price:license_options": [
          {
            "href": "https://creativecommons.org/licenses/by/2.0/legalcode",
            "key": "orbit-view-academic",
            "loadingAmount": 0,
            "loadingPercent": 0,
            "name": "Academic Use"
          },
          {
            "href": "https://creativecommons.org/licenses/by/3.0/legalcode",
            "key": "orbit-view-general",
            "loadingAmount": 0,
            "loadingPercent": 0,
            "name": "General Use"
          }
        ],
        "price:moq": 50,
        "price:order_levels": [
          {
            "key": "orbit-view-L2",
            "name": "L2",
            "price": 0
          }
        ],
        "price:priority_options": [
          {
            "description": "High",
            "key": "orbit-view-high",
            "loadingAmount": 0,
            "loadingPercent": 0,
            "name": "High"
          },
          {
            "description": "Medium",
            "key": "orbit-view-medium",
            "loadingAmount": 0,
            "loadingPercent": 0,
            "name": "Medium"
          },
          {
            "description": "Standard",
            "key": "orbit-view-standard",
            "loadingAmount": 0,
            "loadingPercent": 0,
            "name": "Standard"
          }
        ],
        "price:units": "sqkm",
        "providers": [
          {
            "key": "orbit-view",
            "name": "orbit-view",
            "roles": [
              "producer"
            ],
            "url": ""
          }
        ],
        "start_datetime": "2026-09-22T22:17:42.577674677Z",
        "task-feas:captures_required": 1,
        "task-feas:estimated_revisits": 104,
        "task-feas:gsd_range": [
          0.25,
          0.25
        ],
        "task-feas:matches_search": true,
        "task-feas:platforms": [
          "skyscan-1",
          "skyscan-2",
          "skyscan-3",
          "skyscan-4",
          "skyscan-5",
          "skyscan-6",
          "skyscan-7",
          "skyscan-8",
          "skyscan-9",
          "skyscan-10",
          "skyscan-11",
          "skyscan-12",
          "skyscan-13",
          "skyscan-14",
          "skyscan-15",
          "skyscan-16"
        ],
        "view-range:azimuth": [
          0,
          360
        ],
        "view-range:off_nadir": [
          0,
          30
        ]
      },
      "stac_extensions": [
        "https://docs.arlula.com/schemas/price/v1.0.0/schema.json",
        "https://docs.arlula.com/schemas/task-feas/v1.0.0/schema.json",
        "https://stac-extensions.github.io/eo/v2.0.0/schema.json",
        "https://stac-extensions.github.io/sar/v1.3.2/schema.json",
        "https://stac-extensions.github.io/view/v1.1.0/schema.json"
      ],
      "stac_version": "v1.0.0",
      "type": "Feature"
    }
  ],
  "links": [],
  "numberMatched": 0,
  "numberReturned": 0,
  "stac_extensions": [
    "https://docs.arlula.com/schemas/price/v1.0.0/schema.json",
    "https://docs.arlula.com/schemas/task-feas/v1.0.0/schema.json",
    "https://stac-extensions.github.io/eo/v2.0.0/schema.json",
    "https://stac-extensions.github.io/sar/v1.3.2/schema.json",
    "https://stac-extensions.github.io/view/v1.1.0/schema.json"
  ],
  "stac_version": "v1.0.0",
  "type": "FeatureCollection"
}

Feasibility

A feasibility study can be conducted for a given capability using its ID.

Please note, as feasibility studies are not a lock in of capability, they can become stale and expire as other orders are placed. As a result, this endpoint may return a HTTP 410 Gone status if the item has expired.

The feasibility endpoint for each capability is returned as an attached link with the self relation. However, if this link was not retained, it can be accessed via the GET /api/tasking/items/{item id} endpoint.
Where {item id} is the id provided in the original result

This will return a STAC Item containing the details provided at search, in addition to details from the feasibility study

Response

The response will be the details from the search, now expanded with any ancillary details obtained from the supplier feasibility study, including any planned overpasses and capture opportunities.

Body
KeyDescription
collectionThe collection this result belongs to, typically its supplier, or a sub-collection thereof
featuresOptional list of overpasses that make up the capability
geometryThe geometric footprint of the capture plan and its location on the planet. This will be the region ordered with the supplier if placed. Will generally be a Polygon.
idIdentifier for this orderable capability, used to identify the result for accessing further information and ordering
linksLinks to associated information, such as this items details endpoint, or further information about its capture platform (if available)
propertiesProperties of the capture
stac_extensionsThe extension schemas used in this individual result
stac_versionThe version of the STAC standard these results conform to
typeGeoJSON and STAC type attribute Will always be "Feature"
Overpasses

The feasibility response will, if provided by the supplier, include a list of features that correspond to individual capture opportunities within the campaign plan.

These features are not full GeoJSON Features, and may or may not contain geometry, indicating a specific predicted capture location v a capability to capture under differing conditions in one overpass.

Where an overpass includes an id, that id can be included in an order request to target those capabilities specifically (in cases of preferred and assured tasking).

Properties

KeyDescription
end_datetimeEnd datetime of opportunity overpass
eo:cloud_coverEstimated cloud coverage during overpass (if available)
platformPlatform with overpassing opportunity
start_datetimeStart datetime of opportunity overpass
task-feas:subsatelliteSubsatellite path during overpass (if available)
view-range:azimuthRange of view azimuth angles during overpass
view-range:off_nadirRange of off nadir viewing angles during overpass

Example:

{
  "features": [
    {
      "id": "MjAyNi0xMC0wOFQyMzo0NDowOVp+c2t5c2Nhbi0x",
      "properties": {
        "datetime": "2026-10-08T23:44:09.699648472Z",
        "end_datetime": "2026-10-08T23:44:46.503847691Z",
        "platform": "skyscan-1",
        "start_datetime": "2026-10-08T23:43:32.895449254Z",
        "task-feas:subsatellite": {
          "coordinates": [
            [
              [
                -164.1267481721544,
                74.48781547163485
              ],
              [
                -167.53918223091407,
                72.92437648355641
              ],
              [
                -170.40878390203233,
                71.31641185013665
              ],
              [
                -172.85410712314268,
                69.67437852659376
              ],
              [
                -174.9640841136029,
                68.00579734825826
              ],
              [
                -176.8058705125026,
                66.31617065707889
              ],
              [
                -178.43067747568637,
                64.60959251708614
              ],
              [
                -179.87799465898158,
                62.88915853557653
              ]
            ]
          ],
          "type": "MultiLineString"
        },
        "view-range:azimuth": [
          203.813,
          7.584
        ],
        "view-range:off_nadir": [
          2.571,
          30
        ]
      }
    }
  ],
  "geometry": {
    "coordinates": [
      [
        [
          151.23556060248285,
          -33.82753939751741
        ],
        [
          151.23556060248285,
          -33.87706060248259
        ],
        [
          151.18603939751716,
          -33.87706060248259
        ],
        [
          151.18603939751716,
          -33.82753939751741
        ],
        [
          151.23556060248285,
          -33.82753939751741
        ]
      ]
    ],
    "type": "Polygon"
  },
  "id": "84f68eef300719e6b7cb65dc34612d7a",
  "links": [
    {
      "href": "/api/tasking/feasibility/84f68eef300719e6b7cb65dc34612d7a",
      "rel": "self",
      "type": "application/geo+json"
    }
  ],
  "properties": {
    "bands": [
      {
        "eo:center_wavelength": 625,
        "eo:full_width_half_max": 350,
        "eo:max": 800,
        "eo:min": 450,
        "name": "Panchromatic"
      },
      {
        "eo:center_wavelength": 480,
        "eo:full_width_half_max": 60,
        "eo:max": 510,
        "eo:min": 450,
        "name": "Blue"
      },
      {
        "eo:center_wavelength": 545,
        "eo:full_width_half_max": 70,
        "eo:max": 580,
        "eo:min": 510,
        "name": "Green"
      },
      {
        "eo:center_wavelength": 672.5,
        "eo:full_width_half_max": 35,
        "eo:max": 690,
        "eo:min": 655,
        "name": "Red"
      },
      {
        "eo:center_wavelength": 850,
        "eo:full_width_half_max": 140,
        "eo:max": 920,
        "eo:min": 780,
        "name": "Near infrared"
      }
    ],
    "constellation": "sky-scan",
    "end_datetime": "2026-10-26T05:17:39.029Z",
    "instrument_modes": [
      "pushbroom"
    ],
    "instrument_type": "multi-spectral",
    "platform_type": "satellite",
    "price:cloud_levels": [
      {
        "description": "Only attempt captures with lower cloud coverage.",
        "key": "orbit-view-low",
        "loadingAmount": 0,
        "loadingPercent": 0,
        "max": 30,
        "name": "Low"
      },
      {
        "description": "There will be no guarantee on cloud cover.",
        "key": "orbit-view-standard",
        "loadingAmount": 0,
        "loadingPercent": 0,
        "max": 100,
        "name": "Standard"
      }
    ],
    "price:license_options": [
      {
        "href": "https://creativecommons.org/licenses/by/2.0/legalcode",
        "key": "orbit-view-academic",
        "loadingAmount": 0,
        "loadingPercent": 0,
        "name": "Academic Use"
      },
      {
        "href": "https://creativecommons.org/licenses/by/3.0/legalcode",
        "key": "orbit-view-general",
        "loadingAmount": 0,
        "loadingPercent": 0,
        "name": "General Use"
      }
    ],
    "price:moq": 50,
    "price:order_levels": [
      {
        "key": "orbit-view-L2",
        "name": "L2",
        "price": 0
      }
    ],
    "price:priority_options": [
      {
        "description": "High",
        "key": "orbit-view-high",
        "loadingAmount": 0,
        "loadingPercent": 0,
        "name": "High"
      },
      {
        "description": "Medium",
        "key": "orbit-view-medium",
        "loadingAmount": 0,
        "loadingPercent": 0,
        "name": "Medium"
      },
      {
        "description": "Standard",
        "key": "orbit-view-standard",
        "loadingAmount": 0,
        "loadingPercent": 0,
        "name": "Standard"
      }
    ],
    "price:units": "sqkm",
    "providers": [
      {
        "key": "orbit-view",
        "name": "orbit-view",
        "roles": [
          "producer"
        ],
        "url": ""
      }
    ],
    "start_datetime": "2026-09-22T22:17:42.577674677Z",
    "task-feas:captures_required": 1,
    "task-feas:estimated_revisits": 104,
    "task-feas:gsd_range": [
      0.25,
      0.25
    ],
    "task-feas:matches_search": true,
    "task-feas:platforms": [
      "skyscan-1",
      "skyscan-2",
      "skyscan-3",
      "skyscan-4",
      "skyscan-5",
      "skyscan-6",
      "skyscan-7",
      "skyscan-8",
      "skyscan-9",
      "skyscan-10",
      "skyscan-11",
      "skyscan-12",
      "skyscan-13",
      "skyscan-14",
      "skyscan-15",
      "skyscan-16"
    ],
    "view-range:azimuth": [
      0,
      360
    ],
    "view-range:off_nadir": [
      0,
      30
    ]
  },
  "stac_extensions": [
    "https://docs.arlula.com/schemas/price/v1.0.0/schema.json",
    "https://docs.arlula.com/schemas/task-feas/v1.0.0/schema.json",
    "https://stac-extensions.github.io/eo/v2.0.0/schema.json",
    "https://stac-extensions.github.io/sar/v1.3.2/schema.json",
    "https://stac-extensions.github.io/view/v1.1.0/schema.json"
  ],
  "stac_version": "v1.0.0",
  "type": "Feature"
}

Quote

The Quote endpoint will provide details of the pricing of a given combination of capability, order level, license, priority and cloud_level to allow for accurate pricing of items.

It is available via the GET /api/tasking/quote endpoint.

Request

Body

KeyDescription
itemsArray of tasking items to be quoted for.

Quote Items

KeyDescription
cloudLevelThe cloud level requirement to purchase under, taken from the `key` property of one of the results `price:cloud_levels` members
idThe id of the item to be quoted
licenseThe license to purchase it under, taken from the `href` property of one of the results `price:license_options` members
opportunitiesOptional list of opportunities to be specifically ordered, obtained as the `id` of entries of the overpass `features` list.
orderLevelThe order level to purchase it at, taken from the `key` property of one of the results `price:order_levels` members
priorityThe priority level to purchase it at, taken from the `key` property of one of the results `price:priority_options` members

Example:

{
  "items": [
    {
      "cloudLevel": "orbit-view-low",
      "id": "84f68eef300719e6b7cb65dc34612d7a",
      "license": "orbit-view-general",
      "opportunities": [
        "MjAyNi0xMC0wOFQyMzo0NDowOVp+c2t5c2Nhbi0x"
      ],
      "orderLevel": "orbit-view-L2",
      "priority": "orbit-view-medium"
    }
  ]
}

Response

The response will contain a list of line items quotes, as well as the total pricing for the combined items.

Body
KeyDescription
itemsThe list of items quoted, and their individual line item pricing
pricingAggregate pricing for the quote request
Items
KeyDescription
idThe ordering ID of the item quoted
licensethe license quoted under
orderLevelThe ordering level quoted at
pricingThe pricing quoted for this item

Example:

{
  "items": [
    {
      "id": "8e68c3188049796a1b275ba6a5d48ede",
      "license": "landsat-cc",
      "orderLevel": "landsat-default",
      "pricing": {
        "cloud": 0,
        "license": 0,
        "orderLevel": 1000,
        "priority": 200,
        "total": 1200
      }
    }
  ],
  "pricing": {
    "cloud": 0,
    "license": 0,
    "orderLevel": 1000,
    "priority": 200,
    "total": 1200
  }
}

Order

Ordering tasking items will create an order containing the requested tasking campaigns which can then be managed through the order api.

It is accessed through a call to POST /api/tasking/order

Request

Body

KeyDescription
couponCoupon to apply to the order
emailsEmails to receive status updates for the order and its item
itemsList of items to be ordered
paymentPayment account used for the order (if required)
teamTeam the order should be added to (will be added to the requester directly if omitted)
webhooksWebhooks to receive status updates for the order and its items

Order Items

KeyDescription
cloudKey of the cloud level to purchase the capability under, taken from the `key` property of one of the results `price:cloud_levels` members
eulaHref of license to purchase the capability under, taken from the `href` property of one of the results `price:license_options` members
idOrder id of capability to purchase
levelKey of the order level to purchase the capability at, taken from the `key` property of one of the results `price:order_levels` members
opportunitiesOptional list of opportunities to be specifically ordered, obtained as the `id` of entries of the overpass `features` list.
priorityKey of the priority to purchase the capability at, taken from the `key` property of one of the results `price:priority_options` members

Example:

{
  "items": [
    {
      "cloudLevel": "orbit-view-low",
      "id": "84f68eef300719e6b7cb65dc34612d7a",
      "license": "orbit-view-general",
      "opportunities": [
        "MjAyNi0xMC0wOFQyMzo0NDowOVp+c2t5c2Nhbi0x"
      ],
      "orderLevel": "orbit-view-L2",
      "priority": "orbit-view-medium"
    }
  ],
  "payment": "6912fe74-60d6-458c-b000-9e8854fc440e",
  "team": "caf2173a-795e-4c64-bae3-954fa4359955"
}

Response

The response will contain a STAC catalog, containing a STAC Item for each ordered item.

Body
KeyDescription
idID of the order, used to identify it in all api calls
linksList of links to associated resources, including the order itself, and its content tasking campaigns and datasets
propertiesProperties of the order
stac_extensionsThe extension schemas used in this result list
stac_versionThe version of the STAC standard these results conform to
titleTitle of the order, as it appears in the dashboard
typeGeoJSON and STAC type attribute Will always be "Catalog"
Properties
KeyDescription
createdDate and time the order was created at
order:dateDate and time the order was created at
order:statusCurrent status of the order
paid:amountAmount (in currency) paid for the order
paid:currencyCurrency that the amount paid for the order was paid in.
updatedDate and time of the most recent update to the order

Example:

{
  "id": "d185277c-8f81-4aa6-9465-aad3f269278c",
  "links": [
    {
      "href": "/api/order/d185277c-8f81-4aa6-9465-aad3f269278c",
      "rel": "self",
      "title": "This Order",
      "type": "application/geo+json"
    },
    {
      "href": "/api/order/d185277c-8f81-4aa6-9465-aad3f269278c/campaigns",
      "rel": "child",
      "title": "All Order Campaigns",
      "type": "application/geo+json"
    },
    {
      "href": "/api/campaign/1de3bfd8-65e6-42f6-8db7-7c7919d895f7",
      "rel": "item",
      "title": "Campaign",
      "type": "application/geo+json"
    }
  ],
  "properties": {
    "created": "2026-06-02T23:56:37.140218Z",
    "order:date": "2026-06-02T23:56:37.140218Z",
    "order:status": "complete",
    "paid:amount": 85700,
    "paid:currency": "USD",
    "updated": "2026-06-02T23:56:50.271228Z"
  },
  "stac_extensions": [
    "https://github.com/radiantearth/stac-spec/blob/master/item-spec/json-schema/datetime.json",
    "https://stac-extensions.github.io/order/v1.1.0/schema.json",
    "https://docs.arlula.com/schemas/paid/v1.0.0/schema.json"
  ],
  "stac_version": "v1.0.0",
  "title": "example Tasking order",
  "type": "Catalog"
}

Fulfillment and Next Steps

Tasking fulfillment will occur over time as captures happen and fulfill the campaign.
The status of the order as a whole, as well as its contained items can be reviewed through the orders api using the order get and dataset get endpoints respectively.

This will create new datasets within their respective tasking campaign for each capture, also attaching them to the order.