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