Skip to main content

Tile Service (1.0.1)

Download OpenAPI specification:Download

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.

Retrieve an RSM mosaic tile

path Parameters
z
required
integer

Zoom level of the tile

x
required
integer

X coordinate of the tile

y
required
integer

Y coordinate of the tile

ext
required
string
Default: "png"

File extension of the tile (e.g., png, jpeg)

query Parameters
survey
string
Default: "NSL_BASEMAP_v7"

Survey name for the tile

Responses

Retrieve an RSM mosaic tile

path Parameters
z
required
integer

Zoom level of the tile

x
required
integer

X coordinate of the tile

y
required
integer

Y coordinate of the tile

ext
required
string
Default: "png"

File extension of the tile (e.g., png, jpeg)

query Parameters
survey
string
Default: "NSL_BASEMAP_v7"

Survey name for the tile

Responses

Retrieve all available surveys Deprecated

You can retrieve a JSON-formatted list of all available surveys through our survey endpoint:

Responses

Response samples

Content type
application/json
[
  • [
    ]
]

Retrieves a list of SurveyMetadata items that match the given spatial and temporal filters (legacy UTC timestamps) Deprecated

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.

query Parameters
wkt
required
string

WKT string defining the area of interest. The area cannot exceed 696,000 square kilometers

observed_start
string <date>

Start date for observations (YYYY-MM-DD)

observed_end
string <date>

End date for observations (YYYY-MM-DD)

Responses

Response samples

Content type
application/json
[
  • [
    ]
]

Retrieve paginated surveys without footprints

This endpoint returns a paginated list of surveys ordered by their most recent update timestamp. (ISO 8601 timestamps)

query Parameters
page
string >= 1
Default: 1

The 1-based page index to retrieve. Each page contains the number of surveys specified by page_size (defaults to 25).

page_size
string >= 1
Default: 25

Number of surveys to include per page (minimum of 1, defaults to 25)

Responses

Response samples

Content type
application/json
{
  • "has_next": false,
  • "page": 1,
  • "page_size": 25,
  • "results": [
    ],
  • "total_pages": 1,
  • "total_results": 5
}

Retrieve survey coverage metadata (ISO 8601 timestamps)

query Parameters
wkt
required
string

WKT string defining the area of interest

observed_start
string <date>

Filter surveys with observations after this date (YYYY-MM-DD)

observed_end
string <date>

Filter surveys with observations before this date (YYYY-MM-DD)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve coverage metadata for a specific mosaic (ISO 8601 timestamps)

path Parameters
mosaic_id
required
string

Unique identifier for the mosaic

query Parameters
zoom
integer
Default: 14

Zoom level (default 14)

wkt
required
string

WKT string defining the area of interest

overlap
string
Default: "intersects"

Overlap type (intersects, contains, within)

tc
integer

Tile coverage threshold

Responses

Response samples

Content type
application/json
[]

Retrieve the footprint for a single survey

path Parameters
mosaic_id
required
string

Unique identifier for the mosaic/survey

Responses

Response samples

Content type
application/json
Example
{
  • "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"
}

Retrieve mosaic updates with ISO 8601 timestamps

path Parameters
mosaic_id
required
string

Unique identifier for the mosaic

query Parameters
since
string <date-time>

ISO 8601 timestamp indicating the start of the update window

until
string <date-time>

ISO 8601 timestamp indicating the end of the update window

include_percent_covered
boolean
Default: false

Whether to include percent_covered in the response

Responses

Response samples

Content type
application/json
[]

Retrieve a historical mosaic tile or metadata (ISO 8601 timestamps)

path Parameters
mosaic_id
required
string

Unique identifier for the mosaic

mosaic_stac_id
required
string

STAC ID of the mosaic

z
required
integer

Zoom level of the tile

x
required
integer

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)
y
required
integer

Y coordinate of the tile

ext
required
string
Default: "png"

File extension of the tile (e.g., png, jpeg)

query Parameters
metadata
string

If provided, returns metadata instead of the tile

Responses

Response samples

Content type
[]

Retrieve a historical mosaic tile or metadata (ISO 8601 timestamps)

path Parameters
mosaic_id
required
string

Unique identifier for the mosaic

mosaic_stac_id
required
string

STAC ID of the mosaic

z
required
integer

Zoom level of the tile

x
required
integer

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)
y
required
integer

Y coordinate of the tile

ext
required
string
Default: "png"

File extension of the tile (e.g., png, jpeg)

query Parameters
metadata
string

If provided, returns metadata instead of the tile

Responses

Response samples

Content type
[]

Retrieve the latest mosaic tile (ISO 8601 metadata)

path Parameters
mosaic_id
required
string

Unique identifier for the mosaic

z
required
integer

Zoom level

x
required
integer

Tile X coordinate

y
required
integer

Tile Y coordinate

ext
required
string

Image extension (png or jpg)

query Parameters
metadata
boolean

When true, returns JSON metadata instead of the tile binary

Responses

Response samples

Content type
[]

Retrieve the latest mosaic tile (ISO 8601 metadata)

path Parameters
mosaic_id
required
string

Unique identifier for the mosaic

z
required
integer

Zoom level

x
required
integer

Tile X coordinate

y
required
integer

Tile Y coordinate

ext
required
string

Image extension (png or jpg)

query Parameters
metadata
boolean

When true, returns JSON metadata instead of the tile binary

Responses

Response samples

Content type
[]

Retrieve coverage metadata for a specific mosaic (legacy UTC timestamps) Deprecated

path Parameters
mosaic_id
required
string

Unique identifier for the mosaic

query Parameters
zoom
integer
Default: 14

Zoom level (default 14)

wkt
required
string

WKT string defining the area of interest

overlap
string
Default: "intersects"

Overlap type (intersects, contains, within)

tc
integer

Tile coverage threshold

Responses

Response samples

Content type
application/json
[]

Retrieve the footprint for a single survey

path Parameters
mosaic_id
required
string

Unique identifier for the mosaic/survey

Responses

Response samples

Content type
application/json
Example
{
  • "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"
}

Retrieve updates for a specific mosaic (legacy UTC timestamps) Deprecated

path Parameters
mosaic_id
required
string

Unique identifier for the mosaic

query Parameters
since
string <date-time>

Start datetime for filtering updates (ISO 8601 format). Default behavior:

  • If 'until' is provided but 'since' is not: defaults to 30 days before the 'until' date
  • If neither 'since' nor 'until' are provided: defaults to 30 days before current time
  • Must be chronologically before the 'until' parameter
until
string <date-time>

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
include_percent_covered
boolean
Default: false

Flag to include percent covered in the response

Responses

Response samples

Content type
application/json
[]

Retrieve a historical mosaic tile or metadata (legacy UTC timestamps) Deprecated

path Parameters
mosaic_id
required
string

Unique identifier for the mosaic

mosaic_stac_id
required
string

STAC ID of the mosaic

z
required
integer

Zoom level of the tile

x
required
integer

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)
y
required
integer

Y coordinate of the tile

ext
required
string
Default: "png"

File extension of the tile (e.g., png, jpeg)

query Parameters
metadata
string

If provided, returns metadata instead of the tile

cache
boolean
Default: false

Cache flag to control tile caching behavior

Responses

Response samples

Content type
[]

Retrieve a historical mosaic tile or metadata (legacy UTC timestamps) Deprecated

path Parameters
mosaic_id
required
string

Unique identifier for the mosaic

mosaic_stac_id
required
string

STAC ID of the mosaic

z
required
integer

Zoom level of the tile

x
required
integer

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)
y
required
integer

Y coordinate of the tile

ext
required
string
Default: "png"

File extension of the tile (e.g., png, jpeg)

query Parameters
metadata
string

If provided, returns metadata instead of the tile

cache
boolean
Default: false

Cache flag to control tile caching behavior

Responses

Response samples

Content type
[]

Returns tiles from the latest mosaic available for a given XYZ (legacy UTC metadata timestamps). Deprecated

path Parameters
z
required
integer

Zoom level of the tile

x
required
integer

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)
y
required
integer

Y coordinate of the tile

ext
required
string
Default: "png"

File extension of the tile (e.g., png, jpeg)

query Parameters
survey
string
Default: "NSL_BASEMAP_v7"

Survey name for the tile

Responses

Response samples

Content type
[]

Returns tiles from the latest mosaic available for a given XYZ (legacy UTC metadata timestamps). Deprecated

path Parameters
z
required
integer

Zoom level of the tile

x
required
integer

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)
y
required
integer

Y coordinate of the tile

ext
required
string
Default: "png"

File extension of the tile (e.g., png, jpeg)

query Parameters
survey
string
Default: "NSL_BASEMAP_v7"

Survey name for the tile

Responses

Response samples

Content type
[]