Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/near-space-labs-tile-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
description: This service provides access to high-resolution aerial imagery through a tile server.
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
operationId: getTileRsmByZByXByY}{ext
x-operation-id-source: derived
/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
operationId: getTileSurveys
x-operation-id-source: derived
/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…
tags:
- Tile
operationId: getTileSurveysCoverage
x-operation-id-source: derived
/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
operationId: getTileV2Surveys
x-operation-id-source: derived
/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
operationId: getTileV2SurveysCoverage
x-operation-id-source: derived
/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
operationId: getTileV2ByMosaicIdCoverage
x-operation-id-source: derived
/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
operationId: getTileV2ByMosaicIdFootprint
x-operation-id-source: derived
/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
operationId: getTileV2ByMosaicIdMosaicUpdates
x-operation-id-source: derived
/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
operationId: getTileV2ByMosaicIdByMosaicStacIdByZByXByY
x-operation-id-source: derived
/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
operationId: getTileV2ByMosaicIdByMosaicStacIdByZByXByY}{ext
x-operation-id-source: derived
/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'
# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/near-space-labs/refs/heads/main/openapi/near-space-labs-tile-api-openapi.yml