openapi: 3.1.0 info: title: API Reference async_process dataimport_subscription API version: 1.0.0 contact: name: Sentinel Hub description: '**NOTE:** _Asynchronous Processing API is currently in beta release._ ' servers: - url: https://services.sentinel-hub.com tags: - name: dataimport_subscription x-displayName: Subscription description: 'TPDI Service for Planet data is deprecated and will be sunset on November 11th, 2026. Please use [Planet Subscriptions API](https://docs.planet.com/develop/apis/subscriptions/reference/) instead. ' paths: /api/v1/dataimport/subscriptions: post: deprecated: true summary: Create a subscription description: 'Create a non-confirmed data subscription object. After creation you can review the parameters of the subscription and then choose to confirm it or not. ' operationId: dataImport_createSubscription tags: - dataimport_subscription requestBody: content: application/json: schema: $ref: '#/components/schemas/SubscriptionRequest' responses: '200': description: Subscription created content: application/json: schema: $ref: '#/components/schemas/Subscription' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' security: - OAuth2: [] get: deprecated: true summary: Query subscriptions operationId: dataImport_getSubscriptions tags: - dataimport_subscription parameters: - $ref: '#/components/parameters/SubscriptionStatus' - name: collectionId description: Filter subscriptions by collectionId. Omit to get all subscriptions. in: query schema: type: string format: uuid - $ref: '#/components/parameters/SearchBeanCount' - $ref: '#/components/parameters/SearchBeanViewtoken' - $ref: '#/components/parameters/SearchBeanSearch' - name: deleted description: If set to `true` the response will only return those subscriptions that had been deleted by the user. in: query schema: default: false type: boolean responses: '200': description: Successful response content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Subscription' links: $ref: '#/components/schemas/View' '401': $ref: '#/components/responses/401' security: - OAuth2: [] /api/v1/dataimport/subscriptions/{subscriptionId}: get: deprecated: true summary: Get a subscription operationId: dataImport_getSubscription tags: - dataimport_subscription parameters: - $ref: '#/components/parameters/SubscriptionId' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Subscription' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' security: - OAuth2: [] delete: deprecated: true summary: Delete a non-running subscription operationId: dataImport_deleteSubscription description: "`CREATED` subscriptions will be permanently deleted.\n\n `CANCELLED` , `COMPLETED` or `FAILED` ones will be deleted for normal querying but will still be available.\n\n `RUNNING` subscriptions cannot be deleted." tags: - dataimport_subscription parameters: - $ref: '#/components/parameters/SubscriptionId' responses: '204': description: Successful response - subscription deleted '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '409': description: Conflict - subscription cannot be deleted because it is currently being processed. security: - OAuth2: [] /api/v1/dataimport/subscriptions/{subscriptionId}/confirm: post: deprecated: true summary: Confirm a subscription description: 'Confirm the subscription and start executing it. Only subscription with status CREATED can be confirmed. ' operationId: dataImport_confirmSubscription tags: - dataimport_subscription parameters: - $ref: '#/components/parameters/SubscriptionId' responses: '200': description: Successful response - subscription confirmed content: application/json: schema: $ref: '#/components/schemas/Subscription' '401': $ref: '#/components/responses/401' '403': description: Insufficient quota for the order content: application/json: schema: $ref: '#/components/schemas/QuotaExceededError' '409': description: Conflict - subscription cannot be confirmed because its status is not CREATED. security: - OAuth2: [] /api/v1/dataimport/subscriptions/{subscriptionId}/cancel: post: deprecated: true summary: Cancel a subscription description: 'Cancel a RUNNING subscription so that it will stop executing. Already imported data will be kept. Only subscription with status RUNNING can be cancelled. ' operationId: dataImport_cancelSubscription tags: - dataimport_subscription parameters: - $ref: '#/components/parameters/SubscriptionId' responses: '200': description: Successful response - subscription cancelled content: application/json: schema: $ref: '#/components/schemas/Subscription' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '409': description: Conflict - subscription cannot be cancelled because its status is not RUNNING. security: - OAuth2: [] components: schemas: ProcessRequestInputBounds: title: Bounds description: 'Defines the request bounds by specifying the bounding box and/or geometry for the request. If both are specified it will generate an image for the bounding box and render data contained within the geometry. ' type: object properties: bbox: description: 'The request bounding box. This and/or GEOMETRY must be specified. Specify with a coordinate pair on two (opposite) vertices of the bounding box rectangle. Coordinates need to be in easting,northing or longitude, latitude, in that order in the CRS defined in the "bounds.properties.crs" parameter. ' type: array minItems: 4 maxItems: 4 items: type: number format: double example: - 13.822174072265625 - 45.85080395917834 - 14.55963134765625 - 46.29191774991382 geometry: $ref: '#/components/schemas/Geometry' properties: $ref: '#/components/schemas/ProcessRequestInputBoundsProperties' PlanetaryVariableDataSpec: deprecated: true type: object required: - dataFilter - type - id properties: dataFilter: allOf: - $ref: '#/components/schemas/PlanetSubscriptionDataFilterBase' type: type: string enum: - soil_water_content - biomass_proxy - land_surface_temperature - forest_carbon_diligence_30m - forest_carbon_monitoring_3m description: The Planetary Variable Type to subscribe to. externalDocs: description: Plantery Variables types and IDs url: https://developers.planet.com/docs/subscriptions/pvs-subs/#planetary-variables-types-and-ids id: type: string enum: - SWC-AMSR2-C_V1.0_100 - SWC-AMSR2-X_V1.0_100 - SWC-SMAP-L_V1.0_100 - SWC-AMSR2-C_V2.0_100 - SWC-AMSR2-X_V2.0_100 - SWC-SMAP-L_V2.0_100 - SWC-AMSRE-C_V4.0_1000 - SWC-AMSRE-X_V4.0_1000 - SWC-AMSR2-C_V4.0_1000 - SWC-AMSR2-X_V4.0_1000 - SWC-SMAP-L_V4.0_1000 - SWC-AMSRE-C_V5.0_1000 - SWC-AMSRE-X_V5.0_1000 - SWC-AMSR2-C_V5.0_1000 - SWC-AMSR2-X_V5.0_1000 - SWC-SMAP-L_V5.0_1000 - BIOMASS-PROXY_V3.0_10 - BIOMASS-PROXY_V4.0_10 - LST-AMSR2_V1.0_100 - LST-AMSRE_V1.0_1000 - LST-AMSR2_V1.0_1000 - CANOPY_HEIGHT_v1.1.0_30 - CANOPY_COVER_v1.1.0_30 - ABOVEGROUND_CARBON_DENSITY_v1.1.0_30 - CANOPY_HEIGHT_v1.2.0_30 - CANOPY_COVER_v1.2.0_30 - ABOVEGROUND_CARBON_DENSITY_v1.2.0_30 - CANOPY_HEIGHT_v1.0.0_3 - CANOPY_COVER_v1.0.0_3 - ABOVEGROUND_CARBON_DENSITY_v1.0.0_3 description: 'The ID of the Planetary Variable to subscribe to. Note that each `id` value is only allowed with one corresponding `type` value. ' externalDocs: description: Allowed type/id combinations url: https://developers.planet.com/docs/subscriptions/pvs-subs/#planetary-variables-types-and-ids PlanetSubscriptionRequest: deprecated: true allOf: - $ref: '#/components/schemas/Subscription' - type: object required: - input properties: input: type: object required: - provider - bounds - data - planetApiKey properties: provider: description: Specify this value to use data provider Planet. type: string enum: - PLANET planetApiKey: description: Your Planet API key. Get one from Planet https://www.planet.com. type: string bounds: description: 'Defines the bounds of the subscribed area by specifying a bounding box and/or a geometry. If both are given, the subscription will use the geometry and the bbox is ignored. ' $ref: '#/components/schemas/ProcessRequestInputBounds' data: type: array minItems: 1 maxItems: 1 description: 'Specification of the data to subscribe to. ' items: $ref: '#/components/schemas/PlanetSubscriptionDataSpec' QuotaExceededError: allOf: - $ref: '#/components/schemas/Boom' - type: object properties: errors: type: object properties: availableQuota: type: number description: Currently available quota for the provider of the order requiredQuota: type: number description: Quota that would be required for successful confirmation of the order SubscriptionStatus: description: Subscription status type: string readOnly: true enum: - CREATED - RUNNING - CANCELLED - COMPLETED - FAILED RestErrorWrapper: type: object properties: error: $ref: '#/components/schemas/Boom' SubscriptionRequest: oneOf: - $ref: '#/components/schemas/PlanetSubscriptionRequest' View: description: Links to paginate the resource type: object properties: currentToken: type: string nextToken: type: string previousToken: type: string '@id': type: string format: uri next: type: string format: uri previous: type: string format: uri Polygon: type: object properties: type: type: string enum: - Polygon coordinates: type: array items: type: array items: maxItems: 2 minItems: 2 type: array items: type: number format: double ProcessRequestInputBoundsProperties: title: BoundsProperties type: object properties: crs: description: 'The coordinate reference system of the coordinates. Must be one of the values listed at https://docs.planet.com/develop/apis/processing/#crs-support. Default CRS is WGS84, http://www.opengis.net/def/crs/OGC/1.3/CRS84. ' type: string default: http://www.opengis.net/def/crs/OGC/1.3/CRS84 MaxCloudCoverage: description: The maximum allowable cloud coverage in percent. type: number format: double minimum: 0 maximum: 100 default: 100 Subscription: type: object properties: id: description: Subscription ID type: string format: uuid readOnly: true name: description: Subscription name. It's also used as a name for a new BYOC collection, if no collection is given in collectionId field. type: string accountId: description: Account ID type: string format: uuid readOnly: true collectionId: description: 'BYOC collection ID. If given at subscription creation, the data is imported into referenced collection, which must be compatible with the data being subscribed - that is, must either be empty or contain the same bands as the data being subscribed. If not given at subscription creation, a new BYOC collection is created when the subscription is confirmed and its ID is returned in the response from the `confirm` endpoint. ' type: string format: uuid status: $ref: '#/components/schemas/SubscriptionStatus' sqkm: description: Area of the subscriptions's `input.bounds` in km2 type: number readOnly: true input: type: object description: Specification of the subscribed data TimeRange: type: object description: A time interval to filter data by acquisition date. It is defined by a start and end date and time, e.g. 2019-01-31T14:00:00+01:00. A date representation without time (e.g. 2019-01-31) will not work. Both the start and end of a time interval are inclusive and can be equal. properties: from: description: The start of a search interval. type: string format: date-time to: description: The end of a search interval. type: string format: date-time example: from: '2018-10-01T00:00:00.000Z' to: '2018-11-01T00:00:00.000Z' AnalysisReadyPlanetScopeDataSpec: deprecated: true type: object required: - dataFilter - type - id properties: dataFilter: allOf: - $ref: '#/components/schemas/PlanetSubscriptionDataFilterBase' type: type: string enum: - analysis_ready_ps description: The Analysis Ready Type to subscribe to. id: type: string enum: - PS_ARD_SR_DAILY description: 'The ID of the Analysis Ready type to subscribe to. ' externalDocs: description: Analysis Ready IDs url: https://developers.planet.com/docs/data/analysis-ready-ps/#available-ids PSSceneDataSpec: deprecated: true type: object required: - dataFilter - itemType - productBundle - harmonizeTo properties: dataFilter: allOf: - $ref: '#/components/schemas/PlanetSubscriptionDataFilterBase' - type: object properties: maxCloudCoverage: $ref: '#/components/schemas/MaxCloudCoverage' nativeFilter: type: object description: 'Planet Data API search filters ' externalDocs: description: Link to the Planet documentation page about search filters. url: https://developers.planet.com/docs/data/searches-filtering/#search-filters example: type: RangeFilter field_name: snow_ice_percent config: gte: 10 type: type: string enum: - catalog default: catalog description: 'Use `catalog` to subscribe to PlanetScope data. ' itemType: type: string enum: - PSScene description: 'The item type to subscribe to. Only [PSScene](https://developers.planet.com/docs/data/psscene/) is supported. Subscribing to [PSScene4Band](https://developers.planet.com/docs/data/psscene4band/) data is not possible since November 1st 2022. ' externalDocs: description: Item Types Documentation url: https://developers.planet.com/docs/apis/data/items-assets/#item-types productBundle: type: string enum: - analytic_udm2 - analytic_sr_udm2 - analytic_8b_udm2 - analytic_8b_sr_udm2 description: 'The product bundle to subscribe to. ' externalDocs: description: Product Bundles Reference url: https://developers.planet.com/docs/orders/product-bundles-reference/ harmonizeTo: type: string enum: - NONE - Sentinel-2 description: 'Sensing instrument whose values the data should be harmonized to, or `NONE` to disable harmonization. ' externalDocs: description: Details on PlanetScope instruments url: https://developers.planet.com/docs/data/sensors/ PlanetSubscriptionDataFilterBase: deprecated: true type: object required: - timeRange description: 'Selection criteria for the data the subscription should cover. At the minimum, `timeRange.from` must be included because subscriptions must have a start time. ' properties: timeRange: allOf: - $ref: '#/components/schemas/TimeRange' - required: - from - description: 'A time interval to filter data by the **publish** date (in contrast to orders, where the data is filtered by the acquisition date). It is defined by a start and end date and time, e.g. 2019-01-31T14:00:00+01:00. A date representation without time (e.g. 2019-01-31) will not work. Both the start and end of a time interval are inclusive and can be equal. ' MultiPolygon: type: object properties: type: type: string enum: - MultiPolygon coordinates: type: array items: type: array items: type: array items: maxItems: 2 minItems: 2 type: array items: type: number format: double PlanetSubscriptionDataSpec: deprecated: true oneOf: - $ref: '#/components/schemas/PSSceneDataSpec' - $ref: '#/components/schemas/PlanetaryVariableDataSpec' - $ref: '#/components/schemas/AnalysisReadyPlanetScopeDataSpec' Boom: type: object properties: status: description: HTTP status code type: integer format: int32 reason: description: Reason for the error type: string message: description: Friendly error message type: string code: description: Code that uniquely identifies the error type: string enum: - COMMON_BAD_PAYLOAD - COMMON_NOT_FOUND - COMMON_DATABASE_ERROR - COMMON_UNIQUE_KEY_VIOLATION - COMMON_INSUFFICIENT_PERMISSIONS - COMMON_SENTINEL_ACCOUNT_EXPIRED - COMMON_METHOD_NOT_ALLOWED - COMMON_UNSUPPORTED_MEDIA_TYPE - COMMON_ELASTICSEARCH_ERROR - COMMON_UNAUTHORIZED - COMMON_EXCEPTION - RATE_LIMIT_STORAGE_TIMEOUT - RATE_LIMIT_OVERLAPPING_POLICIES - RATE_LIMIT_EXCEEDED - RATE_LIMIT_TOKEN_COUNT_EXCEEDS_CAPACITY - DASHBOARD_PAYPAL_SALE_ERROR - DASHBOARD_PAYPAL_SUBSCRIPTION_ERROR - DASHBOARD_INVALID_PAYPAL_RESPONSE - DASHBOARD_EXECUTE_SALE_ERROR - DASHBOARD_EXECUTE_AGREEMENT_ERROR - DASHBOARD_IPN_ERROR - DASHBOARD_ADYEN_SALE_ERROR - DASHBOARD_ADYEN_PAYMENT_CANCELLED - RENDERER_EXCEPTION - OAUTH_ERROR - EMAIL_OCTOPUS_ERROR errors: description: Additional information about the error (Optional) type: object Geometry: description: The request area of interest geometry. This and/or BBOX must be specified. Coordinates need to be in easting,northing or longitude,latitude, in that order in the CRS defined in the "bounds.properties.crs" parameter. A GeoJsonObject. type: object oneOf: - $ref: '#/components/schemas/Polygon' - $ref: '#/components/schemas/MultiPolygon' example: type: Polygon coordinates: - - - 14.000701904296873 - 46.23685258143992 - - 13.822174072265625 - 46.09037664604301 - - 14.113311767578125 - 45.85080395917834 - - 14.55963134765625 - 46.038922598236 - - 14.441528320312498 - 46.28717293114449 - - 14.17236328125 - 46.29191774991382 - - 14.000701904296873 - 46.23685258143992 parameters: SearchBeanViewtoken: name: viewtoken description: 'When the total number of items is larger than *count*, the response contains *viewtoken*. This *viewtoken* can be used in the next request to retrieve the next page of items. The next page can be retrieved by repeating the query. However, replace your URL with the next URL in the returned links object. ' in: query schema: type: string SearchBeanCount: name: count description: 'Upper limit to the number of items to retrieve. It cannot be larger than the endpoint-specific limit. If omitted, the endpoint-specific limit is used. For more records, use *viewtoken* to page through.' in: query schema: type: integer format: int32 SubscriptionStatus: name: status description: Filter subscriptions by status. Omit to get all subscriptions. in: query schema: $ref: '#/components/schemas/SubscriptionStatus' SearchBeanSearch: name: search description: Optional search query. Either a single word to search for or multiple words separated by the `|` (or) and `&` (and) operators. If omitted, all items are returned. in: query schema: type: string SubscriptionId: name: subscriptionId description: Subscription ID in: path required: true schema: type: string format: uuid responses: '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/RestErrorWrapper' '403': description: Insufficient permissions '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/RestErrorWrapper' '401': description: Unauthorized securitySchemes: OAuth2: type: oauth2 description: "### Authentication\n\nMore about the authentication here.\n\nTo get an access token using curl:\n\n```\ncurl --request POST \\\n --url https://services.sentinel-hub.com/auth/realms/main/protocol/openid-connect/token \\\n --header \"content-type: application/x-www-form-urlencoded\" \\\n --data \"grant_type=client_credentials&client_id=&client_secret=\"\n```\n" flows: clientCredentials: tokenUrl: https://services.sentinel-hub.com/auth/realms/main/protocol/openid-connect/token scopes: SH: Sentinel Hub x-tagGroups: - name: Process API tags: - process - name: Catalog tags: - catalog_core - catalog_collections - catalog_features - catalog_item_search - name: Async API tags: - async_process - name: BatchV2 API tags: - batch_v2_process - batch_v2_tiling_grid - name: Stats API tags: - statistical - name: Batch Stats API tags: - batch_statistical - name: BYOC tags: - byoc_collection - byoc_tile - name: Zarr Import API tags: - zarr_collection - zarr_array - name: TPDI tags: - dataimport_search - dataimport_product - dataimport_order - dataimport_delivery - dataimport_tile_delivery - dataimport_subscription - dataimport_subscription_delivery - dataimport_subscription_tile_delivery - dataimport_quota - name: Metadata tags: - metadata_location - metadata_collection