openapi: 3.2.0
info:
description: This service provides access to high-resolution aerial imagery through a tile server. It offers both historical and latest mosaic tiles. Users can query surveys by geographic area (using WKT), time ranges, and coverage parameters. The service supports standard XYZ tile coordinates, multiple image formats (PNG, JPEG), and includes capabilities for retrieving survey metadata, coverage information, and mosaic updates. The API enables dynamic tile serving, making it suitable for web mapping applications and geospatial analysis. All endpoints support standard HTTP responses and include proper error handling for authentication, authorization, and resource availability.
termsOfService: /tos
title: Service Tile API
version: 1.0.1
tags:
- name: Tile
paths:
/tile/rsm/{z}/{x}/{y}.{ext}:
get:
parameters:
- description: Zoom level of the tile
in: path
name: z
required: true
schema:
type: integer
- description: X coordinate of the tile
in: path
name: x
required: true
schema:
type: integer
- description: Y coordinate of the tile
in: path
name: y
required: true
schema:
type: integer
- description: File extension of the tile (e.g., png, jpeg)
in: path
name: ext
required: true
schema:
type: string
default: png
- description: Survey name for the tile
in: query
name: survey
required: false
schema:
type: string
default: NSL_BASEMAP_v7
responses:
'200':
content:
image/jpeg:
schema:
format: binary
type: string
image/png:
schema:
format: binary
type: string
description: RSM tile retrieved successfully
'400':
description: Bad Request - Invalid parameters
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Tile out of range or not found
'500':
description: Internal Server Error - Unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieve an RSM mosaic tile
tags:
- Tile
/tile/surveys:
get:
deprecated: true
description: You can retrieve a JSON-formatted list of all available surveys through our survey endpoint:
responses:
'200':
content:
application/json:
examples:
example1:
summary: Example output
value:
- - capture_date_end: 2023-08-29 15:07:24 UTC
capture_date_start: 2023-06-25 16:11:50 UTC
footprint: MULTIPOLYGON (((-82.33154296875 27.64460638194332, ...[truncated]
id: 2023Q3-FL-TPA
spectral_range: visible
- capture_date_end: 2023-04-10 19:58:30 UTC
capture_date_start: 2023-04-10 13:49:17 UTC
footprint: MULTIPOLYGON (((-85.97900390625 39.23225314171489, ...[truncated]
id: 2023Q2-IN-COL
spectral_range: visible
schema:
items:
properties:
capture_date_end:
description: End date of the survey capture
format: datetime
type: string
capture_date_start:
description: Start date of the survey capture
format: datetime
type: string
footprint:
description: WKT string of the survey footprint
type: string
id:
description: Unique identifier of the survey
type: string
spectral_range:
description: Spectral range of the survey
type: string
type: object
type: array
description: Surveys retrieved successfully
'400':
description: Bad Request - Invalid parameters
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Resource does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieve all available surveys
tags:
- Tile
/tile/surveys/coverage:
get:
deprecated: true
description: Search for available surveys by geographic area and capture date using the survey coverage endpoint. Metadata timestamps are returned as `YYYY-MM-DD HH:MM:SS UTC`.
parameters:
- description: WKT string defining the area of interest. The area cannot exceed 696,000 square kilometers
in: query
name: wkt
required: true
schema:
type: string
- description: Start date for observations (YYYY-MM-DD)
in: query
name: observed_start
schema:
type: string
format: date
- description: End date for observations (YYYY-MM-DD)
in: query
name: observed_end
schema:
type: string
format: date
responses:
'200':
content:
application/json:
examples:
example1:
summary: Example output
value:
- - capture_date_end: 2023-04-10 19:58:30 UTC
capture_date_start: 2023-04-10 13:49:17 UTC
footprint: POLYGON ((-85.97454071044922 39.0969620016489, -85.97514152526855 39.0969620016489, -85.97514152526855 39.09689539729267, -85.97702980041504 39.09689539729267, -85.97702980041504 39.09682879293644, -85.97900390625 39.09682879293644, -85.97908973693848 39.09682879293644, -85.97908973693848 39.096762188580215, -85.97943305969238 .... -85.98175048828125 39.10342262420297, -85.98175048828125 39.105820381027165, -85.98183631896973 39.105820381027165, -85.98183631896973 39.10595358973962 -85.85978507995605 39.31716755149665, -85.85995674133301 39.31716755149665, -85.85995674133301 39.31710114060946, -85.85892677307129 39.31710114060946))
id: 2023Q2-IN-COL
spectral_range: visible
description: Survey coverage retrieved
'400':
description: Bad Request - Invalid parameters
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Resource does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieves a list of SurveyMetadata items that match the given spatial and temporal filters (legacy UTC timestamps)
tags:
- Tile
/tile/v2/surveys:
get:
description: This endpoint returns a paginated list of surveys ordered by their most recent update timestamp. (ISO 8601 timestamps)
parameters:
- description: The 1-based page index to retrieve. Each page contains the number of surveys specified by `page_size` (defaults to 25).
in: query
name: page
schema:
default: 1
minimum: 1
type: integer
- description: Number of surveys to include per page (minimum of 1, defaults to 25)
in: query
name: page_size
schema:
default: 25
minimum: 1
type: integer
responses:
'200':
content:
application/json:
examples:
example1:
summary: Example output
value:
has_next: false
page: 1
page_size: 25
results:
- capture_date_end: '2025-10-29T18:53:43.502357Z'
capture_date_start: '2025-10-25T18:01:11.705819Z'
id: 2025-P01-CO-DEN
last_updated: '2025-12-02T17:32:02Z'
spectral_range: visible
- capture_date_end: '2025-10-19T19:16:25.778189Z'
capture_date_start: '2025-09-22T19:27:03.636264Z'
id: 2025-P1-MN-MSP
last_updated: '2025-11-28T19:50:21Z'
spectral_range: visible
- capture_date_end: '2024-12-08T17:44:12.804971Z'
capture_date_start: '2024-12-04T16:24:55.440096Z'
id: 2024Q4-SC-CAE
last_updated: '2025-11-09T00:12:22Z'
spectral_range: visible
- capture_date_end: '2024-11-01T18:43:25.875208Z'
capture_date_start: '2024-10-29T15:32:08.790178Z'
id: 2024Q4-FL-PTCH
last_updated: '2025-11-08T23:29:27Z'
spectral_range: visible
- capture_date_end: '2024-11-08T19:44:40.628561Z'
capture_date_start: '2024-11-05T19:28:29.204699Z'
id: 2024Q4-CA-RVSD
last_updated: '2025-11-08T23:24:51Z'
spectral_range: visible
total_pages: 1
total_results: 5
schema:
properties:
has_next:
description: Indicates whether another page is available after this one
type: boolean
page:
description: Current page index (1-based)
type: integer
page_size:
description: Number of surveys returned per page (defaults to 25)
type: integer
results:
description: List of surveys for the requested page
items:
properties:
capture_date_end:
description: End date of the survey capture
format: datetime
type: string
capture_date_start:
description: Start date of the survey capture
format: datetime
type: string
id:
description: Unique identifier of the survey
type: string
last_updated:
description: Most recent update timestamp derived from the survey cache
format: datetime
type: string
spectral_range:
description: Spectral range of the survey
type: string
type: object
type: array
total_pages:
description: Total number of pages available
type: integer
total_results:
description: Total number of surveys available
type: integer
type: object
description: Paginated surveys retrieved successfully
'400':
description: Bad Request - Invalid parameters
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Resource does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieve paginated surveys without footprints
tags:
- Tile
/tile/v2/surveys/coverage:
get:
parameters:
- description: WKT string defining the area of interest
in: query
name: wkt
required: true
schema:
type: string
- description: Filter surveys with observations after this date (YYYY-MM-DD)
in: query
name: observed_start
schema:
type: string
format: date
- description: Filter surveys with observations before this date (YYYY-MM-DD)
in: query
name: observed_end
schema:
type: string
format: date
responses:
'200':
content:
application/json:
examples:
example1:
summary: Example output
value:
- capture_date_end: '2023-04-10T19:58:30Z'
capture_date_start: '2023-04-10T13:49:17Z'
footprint: POLYGON ((-85.97454071044922 39.0969620016489, ... ))
id: 2023Q2-IN-COL
spectral_range: visible
schema:
items:
properties:
capture_date_end:
description: End date of the survey capture (ISO 8601)
format: date-time
type: string
capture_date_start:
description: Start date of the survey capture (ISO 8601)
format: date-time
type: string
footprint:
description: WKT string of the survey footprint
type: string
id:
description: Unique identifier of the survey
type: string
spectral_range:
description: Spectral range of the survey
type: string
type: object
type: array
description: Surveys retrieved successfully
'400':
description: Bad Request - Validation error
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Resource does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieve survey coverage metadata (ISO 8601 timestamps)
tags:
- Tile
/tile/v2/{mosaic_id}/coverage:
get:
parameters:
- description: Unique identifier for the mosaic
in: path
name: mosaic_id
required: true
schema:
type: string
- description: Zoom level (default 14)
in: query
name: zoom
schema:
type: integer
default: 14
- description: WKT string defining the area of interest
in: query
name: wkt
required: true
schema:
type: string
- description: Overlap type (intersects, contains, within)
in: query
name: overlap
schema:
type: string
default: intersects
- description: Tile coverage threshold
in: query
name: tc
schema:
type: integer
responses:
'200':
content:
application/json:
examples:
example1:
summary: Example output
value:
- - capture_date_end: '2024-11-01T18:21:26Z'
capture_date_start: '2024-11-01T18:17:51Z'
file_format: png
geospatial_extent:
- -115.29052734375
- 36.17335693522159
- -115.2685546875
- 36.191092021824524
mosaic_stac_id: 20241101T181751_20241101T182126_20241101T193155_02301310020223
percent_covered: null
published_date: '2024-11-01T19:31:55Z'
spatial_resolution_class: 7.5cm
spectral_range: visible
static_url: https://api.nearspacelabs.net/tile/2024Q2-NV-LAS/20241101T181751_20241101T182126_20241101T193155_02301310020223/14/2945/6423
- capture_date_end: '2024-10-23T08:01:22Z'
capture_date_start: '2024-10-23T07:59:28Z'
file_format: png
geospatial_extent:
- -115.29052734375
- 36.17335693522159
- -115.2685546875
- 36.191092021824524
mosaic_stac_id: 20241023T075928_20241023T080122_20241023T082549_02301310020223
percent_covered: null
published_date: '2024-10-23T08:25:49Z'
spatial_resolution_class: 7.5cm
spectral_range: visible
static_url: https://api.nearspacelabs.net/tile/2024Q2-NV-LAS/20241023T075928_20241023T080122_20241023T082549_02301310020223/14/2945/6423
description: Coverage retrieved successfully
'400':
description: Bad Request - Validation error
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Resource does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieve coverage metadata for a specific mosaic (ISO 8601 timestamps)
tags:
- Tile
/tile/v2/{mosaic_id}/footprint:
get:
parameters:
- description: Unique identifier for the mosaic/survey
in: path
name: mosaic_id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
example1:
summary: Successful response with footprint
value:
footprint: POLYGON ((-115.29052734375 36.17335693522159, -115.2685546875 36.191092021824524, -115.2685546875 36.20824829635762, -115.29052734375 36.20824829635762, -115.29052734375 36.17335693522159))
status: 200
survey_id: 2024Q2-NV-LAS
example2:
summary: Survey not found
value:
footprint: null
status: 404
survey_id: 2024Q2-INVALID
schema:
properties:
footprint:
description: WKT (Well-Known Text) string representing the survey footprint geometry
type: string
status:
description: HTTP status code
type: integer
survey_id:
description: The survey identifier
type: string
type: object
description: Survey footprint retrieved successfully
'400':
description: Bad Request - Invalid parameters
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Survey does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieve the footprint for a single survey
tags:
- Tile
/tile/v2/{mosaic_id}/mosaic_updates:
get:
parameters:
- description: Unique identifier for the mosaic
in: path
name: mosaic_id
required: true
schema:
type: string
- description: ISO 8601 timestamp indicating the start of the update window
in: query
name: since
schema:
type: string
format: date-time
- description: ISO 8601 timestamp indicating the end of the update window
in: query
name: until
schema:
type: string
format: date-time
- description: Whether to include percent_covered in the response
in: query
name: include_percent_covered
schema:
type: boolean
default: false
responses:
'200':
content:
application/json:
examples:
example1:
summary: Example output
value:
- - capture_date_end: '2023-05-04T16:01:29Z'
capture_date_start: '2023-05-04T16:00:16Z'
file_format: png
geospatial_extent:
- -82.353515625
- 34.452218472826544
- -82.33154296875
- 34.47033512121749
mosaic_stac_id: 20230504T160016_20230504T160129_20231016T101153_03200303231322
percent_covered: 100
published_date: '2023-10-16T10:11:53Z'
spatial_resolution_class: 10.0cm
spectral_range: visible
static_url: https://api.nearspacelabs.net/tile/2023Q2-SC-IVA/20230504T160016_20230504T160129_20231016T101153_03200303231322/14/4444/6519
- capture_date_end: '2023-05-04T15:37:04Z'
capture_date_start: '2023-05-04T15:35:30Z'
file_format: png
geospatial_extent:
- -82.8369140625
- 34.633207911379586
- -82.81494140625
- 34.65128519895414
mosaic_stac_id: 20230504T153530_20230504T153704_20231016T101041_03200303202312
percent_covered: 95
published_date: '2023-10-16T10:10:41Z'
spatial_resolution_class: 10.0cm
spectral_range: visible
static_url: https://api.nearspacelabs.net/tile/2023Q2-SC-IVA/20230504T153530_20230504T153704_20231016T101041_03200303202312/14/4434/6503
description: Mosaic updates retrieved successfully
'400':
description: Bad Request - Validation error
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Resource does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieve mosaic updates with ISO 8601 timestamps
tags:
- Tile
/tile/v2/{mosaic_id}/{mosaic_stac_id}/{z}/{x}/{y}:
get:
parameters:
- description: Unique identifier for the mosaic
in: path
name: mosaic_id
required: true
schema:
type: string
- description: STAC ID of the mosaic
in: path
name: mosaic_stac_id
required: true
schema:
type: string
- description: Zoom level of the tile
in: path
name: z
required: true
schema:
type: integer
- description: 'X coordinate of the tile
The following code sample demonstrates how to translate latitude/longitude to XYZ using the Mercantile python package
```
import mercantile
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(''--lat'', type=float, required=True)
parser.add_argument(''--lon'', type=float, required=True)
parser.add_argument(''-z'', ''--zoom'', type=int, required=True)
args = parser.parse_args()
tile = mercantile.tile(args.lon, args.lat, args.zoom)
print(tile)
```
'
in: path
name: x
required: true
schema:
type: integer
- description: Y coordinate of the tile
in: path
name: y
required: true
schema:
type: integer
- description: File extension of the tile (e.g., png, jpeg)
in: path
name: ext
required: true
schema:
type: string
default: png
- description: If provided, returns metadata instead of the tile
in: query
name: metadata
required: false
schema:
type: string
responses:
'200':
content:
application/json:
examples:
example1:
summary: Example output
value:
- capture_date_end: '2024-11-01T18:21:26Z'
capture_date_start: '2024-11-01T18:17:51Z'
file_format: png
geospatial_extent:
- -115.29052734375
- 36.17335693522159
- -115.2685546875
- 36.191092021824524
mosaic_stac_id: 20241101T181751_20241101T182126_20241101T193155_02301310020223
percent_covered: 38
published_date: '2024-11-01T19:31:55Z'
spatial_resolution_class: 7.5cm
spectral_range: visible
static_url: https://api.nearspacelabs.net/tile/2024Q2-NV-LAS/20241101T181751_20241101T182126_20241101T193155_02301310020223/14/2945/6423
image/jpeg:
schema:
format: binary
type: string
image/png:
schema:
format: binary
type: string
description: Historical mosaic tile or metadata retrieved successfully
'400':
description: Bad Request - Invalid parameters
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Resource does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieve a historical mosaic tile or metadata (ISO 8601 timestamps)
tags:
- Tile
/tile/v2/{mosaic_id}/{mosaic_stac_id}/{z}/{x}/{y}.{ext}:
get:
parameters:
- description: Unique identifier for the mosaic
in: path
name: mosaic_id
required: true
schema:
type: string
- description: STAC ID of the mosaic
in: path
name: mosaic_stac_id
required: true
schema:
type: string
- description: Zoom level of the tile
in: path
name: z
required: true
schema:
type: integer
- description: 'X coordinate of the tile
The following code sample demonstrates how to translate latitude/longitude to XYZ using the Mercantile python package
```
import mercantile
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(''--lat'', type=float, required=True)
parser.add_argument(''--lon'', type=float, required=True)
parser.add_argument(''-z'', ''--zoom'', type=int, required=True)
args = parser.parse_args()
tile = mercantile.tile(args.lon, args.lat, args.zoom)
print(tile)
```
'
in: path
name: x
required: true
schema:
type: integer
- description: Y coordinate of the tile
in: path
name: y
required: true
schema:
type: integer
- description: File extension of the tile (e.g., png, jpeg)
in: path
name: ext
required: true
schema:
type: string
default: png
- description: If provided, returns metadata instead of the tile
in: query
name: metadata
required: false
schema:
type: string
responses:
'200':
content:
application/json:
examples:
example1:
summary: Example output
value:
- capture_date_end: '2024-11-01T18:21:26Z'
capture_date_start: '2024-11-01T18:17:51Z'
file_format: png
geospatial_extent:
- -115.29052734375
- 36.17335693522159
- -115.2685546875
- 36.191092021824524
mosaic_stac_id: 20241101T181751_20241101T182126_20241101T193155_02301310020223
percent_covered: 38
published_date: '2024-11-01T19:31:55Z'
spatial_resolution_class: 7.5cm
spectral_range: visible
static_url: https://api.nearspacelabs.net/tile/2024Q2-NV-LAS/20241101T181751_20241101T182126_20241101T193155_02301310020223/14/2945/6423
image/jpeg:
schema:
format: binary
type: string
image/png:
schema:
format: binary
type: string
description: Historical mosaic tile or metadata retrieved successfully
'400':
description: Bad Request - Invalid parameters
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Resource does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieve a historical mosaic tile or metadata (ISO 8601 timestamps)
tags:
- Tile
/tile/v2/{mosaic_id}/{z}/{x}/{y}:
get:
parameters:
- description: Unique identifier for the mosaic
in: path
name: mosaic_id
required: true
schema:
type: string
- description: Zoom level
in: path
name: z
required: true
schema:
type: integer
- description: Tile X coordinate
in: path
name: x
required: true
schema:
type: integer
- description: Tile Y coordinate
in: path
name: y
required: true
schema:
type: integer
- description: Image extension (png or jpg)
in: path
name: ext
schema:
type: string
required: true
- description: When true, returns JSON metadata instead of the tile binary
in: query
name: metadata
schema:
type: boolean
responses:
'200':
content:
application/json:
examples:
example1:
summary: Metadata example
value:
- capture_date_end: '2022-08-28T18:10:21Z'
capture_date_start: '2022-01-29T18:06:15Z'
file_format: png
geospatial_extent:
- -97.74124145507812
- 30.274486436999457
- -97.7398681640625
- 30.27567243159789
mosaic_stac_id: 20220129T1806_20220828T1805_20230413T0956_02313012033113
percent_covered: 100
published_date: '2023-04-13T09:54:52Z'
spatial_resolution_class: 10cm
spectral_range: visible
static_url: https://api.nearspacelabs.net/tile/surveyid/20220129T1806_20220828T1805_20230413T0956_02313012033113/18/59899/107922
image/jpg:
schema:
format: binary
type: string
image/png:
schema:
format: binary
type: string
description: Tile bytes or metadata retrieved successfully
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Resource does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieve the latest mosaic tile (ISO 8601 metadata)
tags:
- Tile
/tile/v2/{mosaic_id}/{z}/{x}/{y}.{ext}:
get:
parameters:
- description: Unique identifier for the mosaic
in: path
name: mosaic_id
required: true
schema:
type: string
- description: Zoom level
in: path
name: z
required: true
schema:
type: integer
- description: Tile X coordinate
in: path
name: x
required: true
schema:
type: integer
- description: Tile Y coordinate
in: path
name: y
required: true
schema:
type: integer
- description: Image extension (png or jpg)
in: path
name: ext
schema:
type: string
required: true
- description: When true, returns JSON metadata instead of the tile binary
in: query
name: metadata
schema:
type: boolean
responses:
'200':
content:
application/json:
examples:
example1:
summary: Metadata example
value:
- capture_date_end: '2022-08-28T18:10:21Z'
capture_date_start: '2022-01-29T18:06:15Z'
file_format: png
geospatial_extent:
- -97.74124145507812
- 30.274486436999457
- -97.7398681640625
- 30.27567243159789
mosaic_stac_id: 20220129T1806_20220828T1805_20230413T0956_02313012033113
percent_covered: 100
published_date: '2023-04-13T09:54:52Z'
spatial_resolution_class: 10cm
spectral_range: visible
static_url: https://api.nearspacelabs.net/tile/surveyid/20220129T1806_20220828T1805_20230413T0956_02313012033113/18/59899/107922
image/jpg:
schema:
format: binary
type: string
image/png:
schema:
format: binary
type: string
description: Tile bytes or metadata retrieved successfully
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Resource does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieve the latest mosaic tile (ISO 8601 metadata)
tags:
- Tile
/tile/{mosaic_id}/coverage:
get:
deprecated: true
parameters:
- description: Unique identifier for the mosaic
in: path
name: mosaic_id
required: true
schema:
type: string
- description: Zoom level (default 14)
in: query
name: zoom
schema:
type: integer
default: 14
- description: WKT string defining the area of interest
in: query
name: wkt
required: true
schema:
type: string
- description: Overlap type (intersects, contains, within)
in: query
name: overlap
schema:
type: string
default: intersects
- description: Tile coverage threshold
in: query
name: tc
schema:
type: integer
responses:
'200':
content:
application/json:
examples:
example1:
summary: Example output
value:
- - capture_date_end: 2024-11-01 18:21:26 UTC
capture_date_start: 2024-11-01 18:17:51 UTC
file_format: png
geospatial_extent:
- -115.29052734375
- 36.17335693522159
- -115.2685546875
- 36.191092021824524
mosaic_stac_id: 20241101T181751_20241101T182126_20241101T193155_02301310020223
percent_covered: null
published_date: 2024-11-01 19:31:55 UTC
spatial_resolution_class: 7.5cm
spectral_range: visible
static_url: https://api.nearspacelabs.net/tile/2024Q2-NV-LAS/20241101T181751_20241101T182126_20241101T193155_02301310020223/14/2945/6423
- capture_date_end: 2024-10-23 08:01:22 UTC
capture_date_start: 2024-10-23 07:59:28 UTC
file_format: png
geospatial_extent:
- -115.29052734375
- 36.17335693522159
- -115.2685546875
- 36.191092021824524
mosaic_stac_id: 20241023T075928_20241023T080122_20241023T082549_02301310020223
percent_covered: null
published_date: 2024-10-23 08:25:49 UTC
spatial_resolution_class: 7.5cm
spectral_range: visible
static_url: https://api.nearspacelabs.net/tile/2024Q2-NV-LAS/20241023T075928_20241023T080122_20241023T082549_02301310020223/14/2945/6423
description: Coverage retrieved successfully
'400':
description: Bad Request - Validation error
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Resource does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieve coverage metadata for a specific mosaic (legacy UTC timestamps)
tags:
- Tile
/tile/{mosaic_id}/footprint:
get:
parameters:
- description: Unique identifier for the mosaic/survey
in: path
name: mosaic_id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
example1:
summary: Successful response with footprint
value:
footprint: POLYGON ((-115.29052734375 36.17335693522159, -115.2685546875 36.191092021824524, -115.2685546875 36.20824829635762, -115.29052734375 36.20824829635762, -115.29052734375 36.17335693522159))
status: 200
survey_id: 2024Q2-NV-LAS
example2:
summary: Survey not found
value:
footprint: null
status: 404
survey_id: 2024Q2-INVALID
schema:
properties:
footprint:
description: WKT (Well-Known Text) string representing the survey footprint geometry
type: string
status:
description: HTTP status code
type: integer
survey_id:
description: The survey identifier
type: string
type: object
description: Survey footprint retrieved successfully
'400':
description: Bad Request - Invalid parameters
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Survey does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieve the footprint for a single survey
tags:
- Tile
/tile/{mosaic_id}/mosaic_updates:
get:
deprecated: true
parameters:
- description: Unique identifier for the mosaic
in: path
name: mosaic_id
required: true
schema:
type: string
- description: "Start datetime for filtering updates (ISO 8601 format). \nDefault behavior:\n- If 'until' is provided but 'since' is not: defaults to 30 days before the 'until' date\n- If neither 'since' nor 'until' are provided: defaults to 30 days before current time\n- Must be chronologically before the 'until' parameter\n"
in: query
name: since
schema:
type: string
format: date-time
- description: 'End datetime for filtering updates (ISO 8601 format).
Default behavior:
- If ''since'' is provided but ''until'' is not: defaults to current time
- If neither ''since'' nor ''until'' are provided: defaults to 30 days before current time
- Must be chronologically after the ''since'' parameter
'
in: query
name: until
schema:
type: string
format: date-time
- description: Flag to include percent covered in the response
in: query
name: include_percent_covered
schema:
type: boolean
default: false
responses:
'200':
content:
application/json:
examples:
example1:
summary: Example output
value:
- - capture_date_end: 2023-05-04 16:01:29 UTC
capture_date_start: 2023-05-04 16:00:16 UTC
file_format: png
geospatial_extent:
- -82.353515625
- 34.452218472826544
- -82.33154296875
- 34.47033512121749
mosaic_stac_id: 20230504T160016_20230504T160129_20231016T101153_03200303231322
percent_covered: 100
published_date: 2023-10-16 10:11:53 UTC
spatial_resolution_class: 10.0cm
spectral_range: visible
static_url: https://api.nearspacelabs.net/tile/2023Q2-SC-IVA/20230504T160016_20230504T160129_20231016T101153_03200303231322/14/4444/6519
- capture_date_end: 2023-05-04 15:37:04 UTC
capture_date_start: 2023-05-04 15:35:30 UTC
file_format: png
geospatial_extent:
- -82.8369140625
- 34.633207911379586
- -82.81494140625
- 34.65128519895414
mosaic_stac_id: 20230504T153530_20230504T153704_20231016T101041_03200303202312
percent_covered: 95
published_date: 2023-10-16 10:10:41 UTC
spatial_resolution_class: 10.0cm
spectral_range: visible
static_url: https://api.nearspacelabs.net/tile/2023Q2-SC-IVA/20230504T153530_20230504T153704_20231016T101041_03200303202312/14/4422/6509
description: Mosaic updates retrieved successfully
'400':
description: Bad Request - Invalid parameters
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Resource does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieve updates for a specific mosaic (legacy UTC timestamps)
tags:
- Tile
/tile/{mosaic_id}/{mosaic_stac_id}/{z}/{x}/{y}:
get:
deprecated: true
parameters:
- description: Unique identifier for the mosaic
in: path
name: mosaic_id
required: true
schema:
type: string
- description: STAC ID of the mosaic
in: path
name: mosaic_stac_id
required: true
schema:
type: string
- description: Zoom level of the tile
in: path
name: z
required: true
schema:
type: integer
- description: 'X coordinate of the tile
The following code sample demonstrates how to translate latitude/longitude to XYZ using the Mercantile python package
```
import mercantile
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(''--lat'', type=float, required=True)
parser.add_argument(''--lon'', type=float, required=True)
parser.add_argument(''-z'', ''--zoom'', type=int, required=True)
args = parser.parse_args()
tile = mercantile.tile(args.lon, args.lat, args.zoom)
print(tile)
```
'
in: path
name: x
required: true
schema:
type: integer
- description: Y coordinate of the tile
in: path
name: y
required: true
schema:
type: integer
- description: File extension of the tile (e.g., png, jpeg)
in: path
name: ext
required: true
schema:
type: string
default: png
- description: If provided, returns metadata instead of the tile
in: query
name: metadata
required: false
schema:
type: string
- description: Cache flag to control tile caching behavior
in: query
name: cache
required: false
schema:
type: boolean
default: false
responses:
'200':
content:
application/json:
examples:
example1:
summary: Example output
value:
- capture_date_end: 2024-11-01 18:21:26 UTC
capture_date_start: 2024-11-01 18:17:51 UTC
file_format: png
geospatial_extent:
- -115.29052734375
- 36.17335693522159
- -115.2685546875
- 36.191092021824524
mosaic_stac_id: 20241101T181751_20241101T182126_20241101T193155_02301310020223
percent_covered: 38
published_date: 2024-11-01 19:31:55 UTC
spatial_resolution_class: 7.5cm
spectral_range: visible
static_url: https://api.nearspacelabs.net/tile/2024Q2-NV-LAS/20241101T181751_20241101T182126_20241101T193155_02301310020223/14/2945/6423
image/jpeg:
schema:
format: binary
type: string
image/png:
schema:
format: binary
type: string
description: Historical mosaic tile or metadata retrieved successfully
'400':
description: Bad Request - Invalid parameters
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Resource does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieve a historical mosaic tile or metadata (legacy UTC timestamps)
tags:
- Tile
/tile/{mosaic_id}/{mosaic_stac_id}/{z}/{x}/{y}.{ext}:
get:
deprecated: true
parameters:
- description: Unique identifier for the mosaic
in: path
name: mosaic_id
required: true
schema:
type: string
- description: STAC ID of the mosaic
in: path
name: mosaic_stac_id
required: true
schema:
type: string
- description: Zoom level of the tile
in: path
name: z
required: true
schema:
type: integer
- description: 'X coordinate of the tile
The following code sample demonstrates how to translate latitude/longitude to XYZ using the Mercantile python package
```
import mercantile
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(''--lat'', type=float, required=True)
parser.add_argument(''--lon'', type=float, required=True)
parser.add_argument(''-z'', ''--zoom'', type=int, required=True)
args = parser.parse_args()
tile = mercantile.tile(args.lon, args.lat, args.zoom)
print(tile)
```
'
in: path
name: x
required: true
schema:
type: integer
- description: Y coordinate of the tile
in: path
name: y
required: true
schema:
type: integer
- description: File extension of the tile (e.g., png, jpeg)
in: path
name: ext
required: true
schema:
type: string
default: png
- description: If provided, returns metadata instead of the tile
in: query
name: metadata
required: false
schema:
type: string
- description: Cache flag to control tile caching behavior
in: query
name: cache
required: false
schema:
type: boolean
default: false
responses:
'200':
content:
application/json:
examples:
example1:
summary: Example output
value:
- capture_date_end: 2024-11-01 18:21:26 UTC
capture_date_start: 2024-11-01 18:17:51 UTC
file_format: png
geospatial_extent:
- -115.29052734375
- 36.17335693522159
- -115.2685546875
- 36.191092021824524
mosaic_stac_id: 20241101T181751_20241101T182126_20241101T193155_02301310020223
percent_covered: 38
published_date: 2024-11-01 19:31:55 UTC
spatial_resolution_class: 7.5cm
spectral_range: visible
static_url: https://api.nearspacelabs.net/tile/2024Q2-NV-LAS/20241101T181751_20241101T182126_20241101T193155_02301310020223/14/2945/6423
image/jpeg:
schema:
format: binary
type: string
image/png:
schema:
format: binary
type: string
description: Historical mosaic tile or metadata retrieved successfully
'400':
description: Bad Request - Invalid parameters
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Resource does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Retrieve a historical mosaic tile or metadata (legacy UTC timestamps)
tags:
- Tile
/tile/{mosaic_id}/{z}/{x}/{y}:
get:
deprecated: true
parameters:
- description: Zoom level of the tile
in: path
name: z
required: true
schema:
type: integer
- description: 'X coordinate of the tile
The following code sample demonstrates how to translate latitude/longitude to XYZ using the Mercantile python package
```
import mercantile
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(''--lat'', type=float, required=True)
parser.add_argument(''--lon'', type=float, required=True)
parser.add_argument(''-z'', ''--zoom'', type=int, required=True)
args = parser.parse_args()
tile = mercantile.tile(args.lon, args.lat, args.zoom)
print(tile)
```
'
in: path
name: x
required: true
schema:
type: integer
- description: Y coordinate of the tile
in: path
name: y
required: true
schema:
type: integer
- description: File extension of the tile (e.g., png, jpeg)
in: path
name: ext
required: true
schema:
type: string
default: png
- description: Survey name for the tile
in: query
name: survey
required: false
schema:
type: string
default: NSL_BASEMAP_v7
responses:
'200':
content:
application/json:
examples:
example1:
summary: Example output for metadata request
value:
- capture_date_end: 2022-08-28 18:10:21 UTC
capture_date_start: 2022-01-29 18:06:15 UTC
file_format: png
geospatial_extent:
- -97.74124145507812
- 30.274486436999457
- -97.7398681640625
- 30.27567243159789
mosaic_stac_id: 20220129T1806_20220828T1805_20230413T0956_02313012033113
percent_covered: 100
published_date: 2023-04-13 09:54:52 UTC
spatial_resolution_class: 10cm
spectral_range: visible
static_url: https://api.nearspacelabs.net/tile/surveyid/20220129T1806_20220828T1805_20230413T0956_02313012033113/18/59899/107922
image/jpeg:
schema:
format: binary
type: string
image/png:
schema:
format: binary
type: string
description: Tile retrieved successfully
'400':
description: Bad Request - Invalid parameters
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Resource does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Returns tiles from the latest mosaic available for a given XYZ (legacy UTC metadata timestamps).
tags:
- Tile
/tile/{mosaic_id}/{z}/{x}/{y}.{ext}:
get:
deprecated: true
parameters:
- description: Zoom level of the tile
in: path
name: z
required: true
schema:
type: integer
- description: 'X coordinate of the tile
The following code sample demonstrates how to translate latitude/longitude to XYZ using the Mercantile python package
```
import mercantile
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(''--lat'', type=float, required=True)
parser.add_argument(''--lon'', type=float, required=True)
parser.add_argument(''-z'', ''--zoom'', type=int, required=True)
args = parser.parse_args()
tile = mercantile.tile(args.lon, args.lat, args.zoom)
print(tile)
```
'
in: path
name: x
required: true
schema:
type: integer
- description: Y coordinate of the tile
in: path
name: y
required: true
schema:
type: integer
- description: File extension of the tile (e.g., png, jpeg)
in: path
name: ext
required: true
schema:
type: string
default: png
- description: Survey name for the tile
in: query
name: survey
required: false
schema:
type: string
default: NSL_BASEMAP_v7
responses:
'200':
content:
application/json:
examples:
example1:
summary: Example output for metadata request
value:
- capture_date_end: 2022-08-28 18:10:21 UTC
capture_date_start: 2022-01-29 18:06:15 UTC
file_format: png
geospatial_extent:
- -97.74124145507812
- 30.274486436999457
- -97.7398681640625
- 30.27567243159789
mosaic_stac_id: 20220129T1806_20220828T1805_20230413T0956_02313012033113
percent_covered: 100
published_date: 2023-04-13 09:54:52 UTC
spatial_resolution_class: 10cm
spectral_range: visible
static_url: https://api.nearspacelabs.net/tile/surveyid/20220129T1806_20220828T1805_20230413T0956_02313012033113/18/59899/107922
image/jpeg:
schema:
format: binary
type: string
image/png:
schema:
format: binary
type: string
description: Tile retrieved successfully
'400':
description: Bad Request - Invalid parameters
'401':
description: Unauthorized - Missing or invalid credentials
'403':
description: Forbidden - Insufficient permissions
'404':
description: Not Found - Resource does not exist
'500':
description: Internal Server Error - Contract error or unexpected failure
'503':
description: Service Unavailable - Backend service error
summary: Returns tiles from the latest mosaic available for a given XYZ (legacy UTC metadata timestamps).
tags:
- Tile