openapi: 3.1.0
info:
title: API Reference async_process byoc_tile 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: byoc_tile
x-displayName: Tile
paths:
/byoc/v1/collections/{collectionId}/tiles:
post:
summary: Create a tile
operationId: createByocCollectionTile
tags:
- byoc_tile
parameters:
- $ref: '#/components/parameters/ByocCollectionId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BYOCTile'
responses:
'201':
description: Tile created
content:
application/json:
schema:
$ref: '#/components/schemas/BYOCTileResponse'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'409':
$ref: '#/components/responses/409'
security:
- OAuth2: []
get:
summary: Get collection tiles
operationId: getByocCollectionTiles
tags:
- byoc_tile
parameters:
- $ref: '#/components/parameters/ByocCollectionId'
- name: count
description: Number of items to retrieve.
in: query
schema:
type: integer
format: int32
minimum: 1
maximum: 100
- $ref: '#/components/parameters/SearchBeanViewtoken'
- name: sort
description: Sort the tiles by created date in ascending or descending order.
in: query
schema:
type: string
enum:
- created:asc
- created:desc
- name: path
description: Get the tile with the exact path. Returns a single tile or no tile, if there's none with given path.
in: query
schema:
type: string
- name: status
description: Get only the files with the given status.
in: query
content:
application/json:
schema:
$ref: '#/components/schemas/BYOCTileStatus'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/BYOCTilesResponse'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
security:
- OAuth2: []
/byoc/v1/collections/{collectionId}/tiles/{tileId}:
get:
summary: Get a tile
operationId: getByocCollectionTileById
tags:
- byoc_tile
parameters:
- $ref: '#/components/parameters/ByocCollectionId'
- $ref: '#/components/parameters/ByocTileId'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/BYOCTileResponse'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
security:
- OAuth2: []
put:
summary: Update a tile
operationId: updateByocCollectionTileById
tags:
- byoc_tile
parameters:
- $ref: '#/components/parameters/ByocCollectionId'
- $ref: '#/components/parameters/ByocTileId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BYOCTileUpdatePayload'
responses:
'204':
description: Tile updated
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'409':
$ref: '#/components/responses/409'
security:
- OAuth2: []
delete:
summary: Delete a tile
operationId: deleteByocCollectionTileById
tags:
- byoc_tile
parameters:
- $ref: '#/components/parameters/ByocCollectionId'
- $ref: '#/components/parameters/ByocTileId'
responses:
'204':
description: Tile deleted
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
security:
- OAuth2: []
/byoc/v1/collections/{collectionId}/tiles/{tileId}/reingest:
post:
summary: Reingest a tile
description: Initiates reingestion of a tile.
operationId: reingestByocCollectionTileById
tags:
- byoc_tile
parameters:
- $ref: '#/components/parameters/ByocCollectionId'
- $ref: '#/components/parameters/ByocTileId'
responses:
'204':
description: Reingestion initiated.
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
security:
- OAuth2: []
/byoc/v1/collections/{collectionId}/tiles/{tileId}/files:
get:
summary: List files of a tile in your Planet collection
operationId: listByocTileFiles
tags:
- byoc_tile
parameters:
- $ref: '#/components/parameters/ByocCollectionId'
- $ref: '#/components/parameters/ByocTileId'
responses:
'200':
description: Successful response
content:
application/json:
schema:
items:
type: string
format: filename with path
example:
- 20241230_100706_56_24fd.json
- 20241230_100706_56_24fd_metadata.json
- 20241230_100706_56_24fd_ortho_analytic_4b_sr.tif
- 20241230_100706_56_24fd_ortho_udm2.tif
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
description: 'Collection or tile does not exists, or collection was not created by a Planet Subscription/Order.
'
security:
- OAuth2: []
/byoc/v1/collections/{collectionId}/tiles/{tileId}/files/{path}:
get:
summary: Retrieve a file from your Planet collection tile
operationId: getByocTileFile
tags:
- byoc_tile
parameters:
- $ref: '#/components/parameters/ByocCollectionId'
- $ref: '#/components/parameters/ByocTileId'
- $ref: '#/components/parameters/ByocFilePath'
- in: header
name: Range
schema:
type: string
format: RFC 7223
description: 'Optional byte range to retrieve part of a file according to [RFC 7233](https://datatracker.ietf.org/doc/html/rfc7233#section-3.1). Typically used with large files to resume interrupted downloads.
'
example: bytes=16384-23473
responses:
'200':
description: Successful response
content:
application/octet-stream:
schema:
title: file contents as delivered by the Planet subscription/order
type: string
format: binary
'206':
description: Partial response in case partial retrieval was requested with the `Range` request header
content:
application/octet-stream:
schema:
title: partial file contents as delivered by the Planet subscription/order
type: string
format: binary
headers:
Content-Range:
schema:
type: string
format: RFC 7223
description: 'Byte range of the returned part of the file according to [RFC 7233](https://datatracker.ietf.org/doc/html/rfc7233#section-4.2).
'
example: bytes 16384-23473/23474
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
description: 'Collection, tile, or file does not exists, or collection was not created by a Planet Subscription/Order.
'
security:
- OAuth2: []
head:
summary: Get size of a file from your Planet collection tile
operationId: headByocTileFile
tags:
- byoc_tile
parameters:
- $ref: '#/components/parameters/ByocCollectionId'
- $ref: '#/components/parameters/ByocTileId'
- $ref: '#/components/parameters/ByocFilePath'
responses:
'200':
description: Successful response
headers:
Content-Length:
schema:
type: integer
description: File length in bytes
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
description: 'Collection, tile, or file does not exists, or collection was not created by a Planet Subscription/Order.
'
security:
- OAuth2: []
components:
schemas:
BYOCTileAdditionalData:
type: object
properties:
failedIngestionCause:
description: Contains additional information about why ingestion failed (if applicable).
type:
- string
- 'null'
warnings:
description: Contains additional information about potential tile problems.
type:
- string
- 'null'
BYOCTileResponse:
type: object
properties:
data:
$ref: '#/components/schemas/BYOCTile'
BYOCTile:
type: object
required:
- path
properties:
id:
type: string
format: uuid
readOnly: true
path:
description: 'The path within the bucket where the files are. Can also use
the ''(BAND)'' placeholder when the file names contain more than just
the band name.
'
type: string
pattern: ^([^/](/?[^/])*)?$
example: folder/prefix_(BAND)
tileGeometry:
description: 'The tile bounding box in the CRS of the tile.
It''s automatically set to the union of all file bounding boxes.
'
readOnly: true
$ref: '#/components/schemas/Polygon'
coverGeometry:
allOf:
- description: 'The geometry as GeoJSON which outlines the area that has data.
If it isn''t specified, it is automatically set to the intersection of all file bounding boxes.
You may specify this in any CRS, however it will be converted to CRS84.
After ingestion is complete, this stays in CRS84 on our system,
however, for you convenience, we convert and return this in the CRS of the tile.
'
- $ref: '#/components/schemas/Geometry'
sensingTime:
type:
- string
- 'null'
format: date-time
description: The sensing time of the tile in ISO 8601 but without sub-millisecond precision.
status:
$ref: '#/components/schemas/BYOCTileStatus'
additionalData:
$ref: '#/components/schemas/BYOCTileAdditionalData'
created:
type: string
format: date-time
description: The time when the tile was created in ISO 8601.
readOnly: true
BYOCTilesResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/BYOCTile'
links:
$ref: '#/components/schemas/View'
BYOCTileStatus:
description: The status of the tile.
type: string
enum:
- WAITING
- QUEUED
- INGESTING
- INGESTED
- FAILED
readOnly: true
RestErrorWrapper:
type: object
properties:
error:
$ref: '#/components/schemas/Boom'
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
BYOCTileUpdatePayload:
type: object
properties:
coverGeometry:
description: 'The geometry as GeoJSON, which outlines the area that has data. If it isn''t specified, it is automatically set to the tile bounding box.
'
$ref: '#/components/schemas/Geometry'
sensingTime:
type:
- string
- 'null'
format: date-time
description: The sensing time of the tile in ISO 8601 but without sub-millisecond precision.
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
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
ByocCollectionId:
name: collectionId
in: path
required: true
schema:
type: string
format: uuid
ByocTileId:
name: tileId
in: path
required: true
schema:
type: string
format: uuid
ByocFilePath:
name: path
description: Filename with path as returned by the "List files of a tile" endpoint.
in: path
required: true
schema:
type: string
responses:
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/RestErrorWrapper'
'409':
description: Conflict in the 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