openapi: 3.0.0 info: version: 2.0.0 title: Planet Orders API description: The Orders API permits complex asset orders. security: - BasicAuth: [] - ApiKeyAuth: [] paths: /orders/v2: get: summary: List Orders description: Returns all order requests. operationId: listOrders tags: - Orders parameters: - $ref: '#/components/parameters/pPageMarker' - $ref: '#/components/parameters/pPageSize' - $ref: '#/components/parameters/pState' - $ref: '#/components/parameters/pSourceType' - $ref: '#/components/parameters/pName' - $ref: '#/components/parameters/pNameContains' - $ref: '#/components/parameters/pCreatedOn' - $ref: '#/components/parameters/pLastModified' - $ref: '#/components/parameters/pHosting' - $ref: '#/components/parameters/pSortBy' - $ref: '#/components/parameters/pDestinationRef' - $ref: '#/components/parameters/pUserID' responses: '200': description: A list of Order requests. content: application/json: schema: $ref: '#/components/schemas/OrderListPage' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/Error' default: $ref: '#/components/responses/General' post: summary: Create Order description: Orders products. operationId: createOrder tags: - Orders parameters: - $ref: '#/components/parameters/pPlanetApp' requestBody: content: application/json: schema: $ref: '#/components/schemas/OrderRequest' description: Order details. required: true responses: '202': description: The Order Request was accepted, and is processing. content: application/json: schema: $ref: '#/components/schemas/Order' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Forbidden' '403': $ref: '#/components/responses/PermissionDeniedError' '409': $ref: '#/components/responses/MaxConcurrency' '500': $ref: '#/components/responses/Error' default: $ref: '#/components/responses/General' /orders/v2/{order_id}: get: summary: Get Order description: Get order request details by Id. operationId: getOrder tags: - Orders parameters: - $ref: '#/components/parameters/pOrderId' responses: '200': description: Gets a single Order record. content: application/json: schema: $ref: '#/components/schemas/Order' '401': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/Error' default: $ref: '#/components/responses/General' put: summary: Cancel an order description: Cancel a queued order by Id. operationId: cancelOrder tags: - Orders parameters: - $ref: '#/components/parameters/pOrderId' responses: '200': description: Returns the cancelled order details. content: application/json: schema: $ref: '#/components/schemas/Order' '401': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/NotCancellable' '500': $ref: '#/components/responses/Error' default: $ref: '#/components/responses/General' /bulk/orders/v2/cancel: post: summary: Cancel Orders in bulk description: Cancel Orders in bulk operationId: bulkCancelOrders tags: - Orders requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkCancelRequest' description: >- Bulk cancel details; empty body attempts to cancel all Orders in a pre-running state. required: true responses: '200': description: Cancel succeeded for some of the specified Orders content: application/json: schema: $ref: '#/components/schemas/BulkCancelResponse' '401': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/Error' default: $ref: '#/components/responses/General' /stats/orders/v2: get: summary: Aggregated Order Stats description: >- Provides aggregated counts of Active Orders for the User and the User's Organization. operationId: stats tags: - Orders responses: '200': description: Returns the aggregated stats. content: application/json: schema: $ref: '#/components/schemas/UserOrgStats' '401': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/Error' default: $ref: '#/components/responses/General' /download: get: summary: Download Order security: [] description: Download ordered asset. operationId: downloadOrder tags: - Orders parameters: - $ref: '#/components/parameters/pToken' - $ref: '#/components/parameters/pPlanetApp' responses: '302': description: redirect to cloud provider for actual download. headers: Location: schema: type: string '401': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/Error' default: $ref: '#/components/responses/General' /spec: get: summary: Get OpenAPI spec description: Returns this OpenAPI spec operationId: getSpec security: [] tags: - Orders responses: '200': description: The spec as a JSON object content: application/json: schema: type: object '500': $ref: '#/components/responses/Error' /bundles/spec: get: summary: Get json spec for product bundles description: Returns the json spec for product bundles operationId: getBundlesSpec security: [] tags: - Orders responses: '200': description: The bundles spec as a JSON object content: application/json: schema: type: object '500': $ref: '#/components/responses/Error' /compatibility/spec: get: summary: Get compatibility specification for item types, bundles, and tools description: >- Returns the compatibility specification showing which bundles are available for each item type and which tools are compatible operationId: getCompatibilitySpec security: [] tags: - Orders parameters: - name: by in: query description: >- Filter the response to show only specific views. Valid values are 'item-types' (or 'item_types') to show only item types view, 'tools' to show only tools view, or omit to show both views (default). required: false schema: type: string enum: - item-types - item_types - tools responses: '200': description: The compatibility spec as a JSON object content: application/json: schema: type: object '500': $ref: '#/components/responses/Error' servers: - url: https://api.planet.com/compute/ops components: parameters: pOrderId: description: The Order ID (a UUID). in: path name: order_id required: true schema: type: string format: uuid pPageMarker: description: Paging marker. in: query name: page_marker schema: type: string pPageSize: description: Number of orders per page. in: query name: page_size schema: type: integer pToken: description: Download token. in: query name: token required: true schema: type: string pState: description: > Filter orders by state on ListOrders. Accepts multiple values treated as a logical OR via multiple query parameters, e.g. ?state=queued&state=running. in: query name: state explode: true schema: type: array items: type: string enum: - queued - running - failed - success - partial - cancelled pSourceType: description: | Filter orders by source_type (scenes and/or basemaps) on ListOrders. Accepts multiple values treated as a logical OR via: 1. comma-separated list, e.g. ?source_type=scenes,basemaps 2. multiple query parameters, e.g. ?source_type=scenes&source_type=basemaps All source types can be included with ?source_type=all. Defaults to only returning scenes orders for backwards-compatibility. in: query name: source_type explode: true schema: type: array items: type: string pName: description: Filter orders by name in: query name: name schema: type: string pNameContains: description: Filter orders by name containing a string in: query name: name__contains schema: type: string pCreatedOn: description: > Filter orders by created_on interval or instant. The time can be a closed interval (e.g. `2024-01-01T00:00:00.00Z/2024-02-01T00:00:00.00Z` for the month of January), an open interval (e.g. `2024-01-01T00:00:00.00Z/..` for all results in January or later and `../2024-01-01T00:00:00.00Z` for all results before January), or an instant (e.g. `2024-01-01T00:00:00.00Z`). Start times for intervals are inclusive, and end times are exclusive. in: query name: created_on schema: type: string pLastModified: description: > Filter orders by last_modified interval or instant. The time can be a closed interval (e.g. `2024-01-01T00:00:00.00Z/2024-02-01T00:00:00.00Z` for the month of January), an open interval (e.g. `2024-01-01T00:00:00.00Z/..` for all results in January or later and `../2024-01-01T00:00:00.00Z` for all results before January), or an instant (e.g. `2024-01-01T00:00:00.00Z`). Start times for intervals are inclusive, and end times are exclusive. in: query name: last_modified schema: type: string pHosting: description: >- Only return orders that contain a hosting block (e.g. Planet Insights Platform hosting) in: query name: hosting schema: type: boolean pPlanetApp: description: Identify the client making this request in: header name: X-Planet-App required: false schema: type: string pDestinationRef: description: >- Only return orders that were created with a given destination reference (e.g. pl:destinations/...) in: query required: false name: destination_ref schema: type: string pUserID: description: > Filter orders by user. Only admin users can use this parameter. Valid values are 'all' (to view all orders in the organization) or a specific user ID. If not provided, defaults to showing only orders created by the requesting user. in: query name: user_id schema: type: string pSortBy: description: > Fields to sort orders by. Multiple fields can be specified separated by commas. The sort direction can be specified by appending ' ASC' or ' DESC' to the field name. The default sort direction is ascending. When multiple fields are specified, the sort order is applied in the order the fields are listed. If no `sort_by` parameter is provided, orders will be sorted by `created_on DESC` by default. Supported fields: name, created_on, state, last_modified Examples: * `sort_by=name` * `sort_by=name DESC` * `sort_by=name,state DESC,last_modified` in: query name: sort_by schema: type: string responses: Forbidden: description: Access denied - insufficient privileges. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: Item not found. content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: Invalid request. content: application/json: schema: $ref: '#/components/schemas/APIError' Error: description: Server Error. content: application/json: schema: $ref: '#/components/schemas/APIError' CodedError: description: Server Error. content: application/json: schema: $ref: '#/components/schemas/CodedError' General: description: Other error. content: application/json: schema: $ref: '#/components/schemas/Error' MaxConcurrency: description: Order concurrency limit reached. content: application/json: schema: $ref: '#/components/schemas/Error' NotCancellable: description: Order is not in a cancellable state. content: application/json: schema: $ref: '#/components/schemas/Error' PermissionDeniedError: description: | The request was authenticated but refused by the server. The response `code` field identifies the specific reason for the refusal, and the `message` field provides a human-readable explanation suitable for display to the user. content: application/json: schema: $ref: '#/components/schemas/CodedError' securitySchemes: BasicAuth: type: http scheme: basic ApiKeyAuth: type: apiKey in: header name: Authorization schemas: Error: properties: message: description: A descriptive error message. type: string type: object Errors: description: A list of Errors. type: array items: $ref: '#/components/schemas/Error' APIError: description: >- An APIError communicates both general and field-specific errors. General errors include issues with core API usage as well as conflicts that involve more than one field. Field-specific errors correspond to an individual query parameter or request body attribute. Errors referencing nested fields will be dot-delimited (e.g. user.groups.0.name). properties: field: additionalProperties: $ref: '#/components/schemas/Errors' type: object general: $ref: '#/components/schemas/Errors' required: - general - field type: object CodedError: description: >- An CodedError is backwards compatible with a regular Error in that it contains the Message field, but also adds a Code string field for constant code checking. properties: message: description: A descriptive error message. type: string code: description: A fixed code indicating the error in a deterministic way. type: string type: object FailedCancelSummary: type: object properties: order_id: $ref: '#/components/schemas/OrderID' message: description: Human-friendly message describing why we could not Cancel this Order type: string required: - order_id - message Arbitrary: description: A generic object payload type: object Metadata: description: Metadata settings type: object properties: stac: type: object description: If this is set, the order will include metadata in STAC format Hosting: description: >- Specify a data hosting location. A hosting location removes the need to specify a delivery location. Specifying both is not allowed. If hosting is specified, no direct download links will be generated. This location cannot be updated after an order has been created. type: object properties: sentinel_hub: $ref: '#/components/schemas/SentinelHubHosting' required: - sentinel_hub SentinelHubHosting: title: Planet Insights Platform Hosting description: Planet Insights Platform (formerly Sentinel Hub) hosting details. type: object properties: collection_id: type: string format: uuid description: > A data collection to deliver to. If omitted, a new collection will be created for you and returned in the response. Collections can be found on the [Planet Insights Platform](https://insights.planet.com/data/collections). create_configuration: type: boolean description: > Determines whether to automatically create a layer configuration for your collection. - The configuration will be assigned the same name as the collection. - If no compatible configuration is found, the operation will return an error. - The `collection_id` parameter cannot be specified when `create_configuration` is set to `true`. configuration_id: type: string format: uuid description: | Specifies the ID of the layer configuration. - If `create_configuration` is enabled, this field will contain the ID of the newly created layer configuration. - Any provided value will be ignored. ActiveOrderStats: description: Aggregated details about Active Orders. type: object properties: queued_orders: type: integer running_orders: type: integer required: - queued_orders - running_orders OrderID: description: Identifier for a specific Order (a UUID) type: string format: uuid UserOrgStats: description: >- Aggregated details about the current active orders for a User and the User's Organization. type: object properties: user: $ref: '#/components/schemas/ActiveOrderStats' organization: $ref: '#/components/schemas/ActiveOrderStats' required: - user - organization Order: description: A Order is an object describing an order operation. properties: _links: $ref: '#/components/schemas/OrderLinks' id: description: A UUID to uniquely identify this Order request. format: uuid type: string name: description: A name given to this Order request. type: string tools: items: anyOf: - $ref: '#/components/schemas/harmonizeObject' - $ref: '#/components/schemas/coregisterObject' - $ref: '#/components/schemas/toarObject' - $ref: '#/components/schemas/clipObject' - $ref: '#/components/schemas/reprojectObject' - $ref: '#/components/schemas/bandmathObject' - $ref: '#/components/schemas/compositeObject' - $ref: '#/components/schemas/tileObject' - $ref: '#/components/schemas/cloud_filterObject' - $ref: '#/components/schemas/file_formatObject' - $ref: '#/components/schemas/mergeObject' - $ref: '#/components/schemas/clipBasemapsObject' - $ref: '#/components/schemas/file_formatBasemapsObject' metadata: $ref: '#/components/schemas/Metadata' products: description: The products from the Data or Basemaps API to order. items: oneOf: - $ref: '#/components/schemas/scenesSource' - $ref: '#/components/schemas/basemapsSource' type: array created_on: description: The UTC date this Order request was created. type: string last_modified: description: The UTC date this Order request was last modified. type: string state: description: The current state of this Order request. type: string enum: - queued - running - failed - success - partial - cancelled last_message: description: Some info on the current order state. type: string error_hints: description: Hints related to any reported error. type: array items: type: string delivery: $ref: '#/components/schemas/Delivery' notifications: $ref: '#/components/schemas/Notifications' order_type: description: accept order if requested products are not available? type: string enum: - partial - full default: full source_type: description: Source imagery type for all products. Default is scenes. type: string enum: - scenes - basemaps default: scenes hosting: $ref: '#/components/schemas/Hosting' required: - products type: object OrderComponent: type: object properties: delivery: description: The current state of this order request component. type: string enum: - pending - failed - success name: type: string location: description: The (optional) download link for this asset. type: string expires_at: description: When the download link (if present) expires. type: string format: date-time OrderLinks: properties: _self: description: The canonical link to this Order request. type: string results: description: The canonical links to this Order's results. type: array x-omitempty: true items: $ref: '#/components/schemas/OrderComponent' type: object OrderListLinks: properties: _self: description: The canonical link to this Order request. type: string next: description: The next page of Order requests. type: string type: object OrderListPage: properties: _links: $ref: '#/components/schemas/OrderListLinks' orders: items: $ref: '#/components/schemas/Order' type: array type: object AmazonS3: description: Amazon S3 destination details. properties: bucket: description: S3 bucket to send results. type: string aws_region: description: AWS region bucket resides in. type: string aws_access_key_id: description: S3 account access key. type: string aws_secret_access_key: description: S3 account secret key. type: string path_prefix: description: Prefix for publishing into bucket. type: string required: - bucket - aws_region - aws_access_key_id - aws_secret_access_key S3Compatible: description: S3 compatible destination details. properties: bucket: description: S3-compatible bucket to send results. type: string endpoint: description: S3-compatible service endpoint. type: string region: description: Region for the S3-compatible service. type: string access_key_id: description: Access key for authentication. type: string secret_access_key: description: Secret key for authentication. type: string path_prefix: description: Prefix for publishing into the bucket. type: string use_path_style: description: Use path-style addressing with bucket name in URL. type: boolean default: false required: - bucket - endpoint - region - access_key_id - secret_access_key AzureBlobStorage: description: Azure blob storage details. properties: account: description: Azure account. type: string container: description: ABS container name. type: string sas_token: description: Shared-Access Signature token. type: string storage_endpoint_suffix: description: The storage endpoint suffix. type: string path_prefix: description: Prefix for publishing into container. type: string required: - account - container - sas_token GoogleCloudStorage: description: Google Cloud Storage details. properties: bucket: description: GCS bucket name. type: string credentials: description: JSON-string of service account for bucket. type: string path_prefix: description: Prefix for publishing into bucket. type: string required: - bucket - credentials GoogleEarthEngine: description: Google Earth Engine details. properties: project: description: GEE project name. type: string collection: description: GEE Image Collection name. type: string credentials: description: JSON-string of service account for image collection. type: string required: - project - collection OracleCloudStorage: description: Oracle Cloud Storage details. properties: bucket: description: Oracle bucket to send results. type: string customer_access_key_id: description: Oracle account access key. type: string customer_secret_key: description: Oracle account secret key. type: string region: description: Oracle region bucket resides in. type: string namespace: description: Oracle Object Storage namespace. type: string path_prefix: description: Prefix for publishing into bucket. type: string required: - bucket - customer_access_key_id - customer_secret_key - namespace - region Destination: description: Delivery to a destination configured via Planet's Destinations API. properties: ref: description: >- pl:ref URI from a destination configured via Planet's Destinations API. type: string path_prefix: description: Prefix for publishing into bucket. type: string required: - ref PlanetFolders: description: Planet Folders (Hosted Data) delivery details. properties: folder_id: description: Planet Folders (Hosted Data) folder id type: string required: - folder_id Layout: description: Layout configuration for deliverables type: object properties: format: description: Name of format configuration to use type: string enum: - standard - legacy_deprecated required: - format Delivery: description: How should ordered products be delivered? properties: single_archive: description: >- If true, results will be combined into a single zip file, regardless of whether or not there is a merge operation. type: boolean archive_type: description: >- Archival version 2, supercedes 'zip_filename'. Type of archive, like 'zip'. Use together with 'archive_filename'. type: string archive_filename: description: >- Archival version 2, supercedes 'zip_filename'. Name of resulting archive. type: string layout: $ref: '#/components/schemas/Layout' amazon_s3: $ref: '#/components/schemas/AmazonS3' azure_blob_storage: $ref: '#/components/schemas/AzureBlobStorage' google_cloud_storage: $ref: '#/components/schemas/GoogleCloudStorage' google_earth_engine: $ref: '#/components/schemas/GoogleEarthEngine' oracle_cloud_storage: $ref: '#/components/schemas/OracleCloudStorage' planet_folders: $ref: '#/components/schemas/PlanetFolders' s3_compatible: $ref: '#/components/schemas/S3Compatible' destination: $ref: '#/components/schemas/Destination' Webhook: description: >- Details for calling your webhook. An OrderComponent will be POST'ed to endpoint. properties: url: type: string per_order: description: >- If 'true', webhook will be called when order completes. Default is 'false' type: boolean Notifications: description: How would you like to be notified when order is complete? properties: webhook: $ref: '#/components/schemas/Webhook' email: description: Send email to address associated with submitter account. type: boolean OrderRequest: description: An OrderRequest is an object describing how to order products. properties: name: description: A name given to this Order request. type: string products: description: The products from the Data or Basemaps API to order. type: array items: oneOf: - $ref: '#/components/schemas/scenesSource' - $ref: '#/components/schemas/basemapsSource' delivery: $ref: '#/components/schemas/Delivery' notifications: $ref: '#/components/schemas/Notifications' order_type: description: accept order if requested products are not available (partial)? type: string enum: - partial - full default: full source_type: description: Source imagery type for all products. Default is scenes. type: string enum: - scenes - basemaps default: scenes tools: items: anyOf: - $ref: '#/components/schemas/harmonizeObject' - $ref: '#/components/schemas/coregisterObject' - $ref: '#/components/schemas/toarObject' - $ref: '#/components/schemas/clipObject' - $ref: '#/components/schemas/reprojectObject' - $ref: '#/components/schemas/bandmathObject' - $ref: '#/components/schemas/compositeObject' - $ref: '#/components/schemas/tileObject' - $ref: '#/components/schemas/cloud_filterObject' - $ref: '#/components/schemas/file_formatObject' - $ref: '#/components/schemas/mergeObject' - $ref: '#/components/schemas/clipBasemapsObject' - $ref: '#/components/schemas/file_formatBasemapsObject' metadata: $ref: '#/components/schemas/Metadata' hosting: $ref: '#/components/schemas/Hosting' required: - name type: object BulkCancelRequest: description: A BulkCancelRequest requests a cancel of many Orders at once properties: order_ids: description: Optional array of Order IDs to attempt to cancel type: array minItems: 1 maxItems: 10000 items: $ref: '#/components/schemas/OrderID' type: object BulkCancelResponse: description: Bulk cancel succeeded for some Orders; details properties: result: description: Results of the bulk cancel request type: object properties: succeeded: type: object properties: count: description: Number of Orders that we were able to cancel type: integer required: - count failed: type: object description: Number of requested Order cancels that we were unable to perform properties: count: description: Number of Orders that we attempted to cancel but could not type: integer failures: description: List of failed Order cancel details type: array items: $ref: '#/components/schemas/FailedCancelSummary' required: - count - failures required: - succeeded - failed required: - result type: object harmonizeObject: type: object properties: target_sensor: type: - Sentinel-2 coregisterObject: type: object properties: anchor_item: type: string method: type: string anchor_bundle: type: string strict: type: boolean toarObject: type: object properties: scale_factor: type: number clipObject: type: object properties: aoi: type: object reprojectObject: type: object properties: projection: type: string kernel: type: string resolution: type: number bandmathObject: type: object properties: b1: type: string b2: type: string b3: type: string b4: type: string b5: type: string b6: type: string b7: type: string b8: type: string b9: type: string b10: type: string b11: type: string b12: type: string b13: type: string b14: type: string b15: type: string expression: type: string pixel_type: type: string compositeObject: type: object properties: group_by: type: string tileObject: type: object properties: name_template: type: string origin_x: type: number origin_y: type: number pixel_size: type: number tile_size: type: number conformal_x_scaling: type: boolean cloud_filterObject: type: object properties: clear_min: type: number cloud_max: type: number file_formatObject: type: object properties: format: type: - COG - PL_NITF options: type: string overview_levels: type: string mergeObject: type: object properties: {} clipBasemapsObject: type: object properties: {} file_formatBasemapsObject: type: object properties: format: type: - COG options: type: string overview_levels: type: string scenesSource: description: >- A scenes product is a tuple of [product_bundle/item_type/array of item_ids] to apply an operation on. properties: item_ids: description: Array of item ids. type: array items: type: string item_type: description: item-type for requested item_id. type: string product_bundle: description: asset-type for the item. type: string minLength: 1 required: - item_type - product_bundle - item_ids type: object basemapsSource: description: A basemaps product a mosaic quad to apply an operation on. properties: mosaic_name: description: Name of mosaic type: string quad_ids: description: Array of quad ids. type: array quads: type: string geometry: description: GeoJSON geometry object (Point, Polygon, or MultiPolygon) type: object required: - mosaic_name type: object