otCatalog: Bounding box-based catalog search

API: opentopography.org:opentopography-api
Endpoint: /otCatalog
Response format: application/json
Auth: none
Method: GET
Last Status: 200
Latency: 2320ms

Description

Bounding box-based catalog search of topography datasets hosted by OpenTopography.

Parameters (9)

detail (boolean, query, optional)

Show detailed metadata (optional). Defaults is false and shows specific metadata information.

include_federated (boolean, query, optional)

Include federated datasets available via OpenTopography (e.g. USGS 3DEP Catalog)

maxx (number, query, optional)

WGS 84 bounding box east coordinates. Required if polygon parameter is not provided.

Constraints: {'minimum': -180, 'maximum': 180}

maxy (number, query, optional)

WGS 84 bounding box north coordinates. Required if polygon parameter is not provided.

Constraints: {'minimum': -90, 'maximum': 90}

minx (number, query, optional)

WGS 84 bounding box west coordinates. Required if polygon parameter is not provided.

Constraints: {'minimum': -180, 'maximum': 180}

miny (number, query, optional)

WGS 84 bounding box south coordinates. Required if polygon parameter is not provided.

Constraints: {'minimum': -90, 'maximum': 90}

outputFormat (string, query, optional, default: json)

Output Format (optional) - Defaults to json if parameter is not provided. Other available formats - xml

Constraints: {'enum': ['json', 'xml']}

polygon (string, query, optional)

A string of points to make up a polygon (WKT format). The first and last points should match to complete the polygonal shape. If this parameter is provided, the bounding box parameters: minx, miny, maxx, and maxy will be ignored. Example: -117.5,32.5,-117.5,33.1,-116.7,33.1,-116.7,32.5,-117.0,32.3,-117.5,32.5

productFormat (string, query, optional)

Data product Format (optional) - Point Cloud or Raster. Defaults to all data products

Constraints: {'enum': ['PointCloud', 'Raster']}

Examples (2)

Search OpenTopography catalog openapi-spec
curl 'https://portal.opentopography.org/API/otCatalog?minx=-123.2&miny=44.8&maxx=-121.9&maxy=45.7&polygon=-117.5%2C32.5%2C-117.5%2C33.1%2C-116.7%2C33.1%2C-116.7%2C32.5%2C-117.0%2C32.3%2C-117.5%2C32.5&productFormat=Raster&detail=True&outputFormat=json&include_federated=False'
import requests

resp = requests.get(
    "https://portal.opentopography.org/API/otCatalog",
    params={
        'minx': '-123.2',
        'miny': '44.8',
        'maxx': '-121.9',
        'maxy': '45.7',
        'polygon': '-117.5,32.5,-117.5,33.1,-116.7,33.1,-116.7,32.5,-117.0,32.3,-117.5,32.5',
        'productFormat': 'Raster',
        'detail': 'True',
        'outputFormat': 'json',
        'include_federated': 'False',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("opentopography")
result = api.fetch("otCatalog", minx=-123.2, miny=44.8, maxx=-121.9, maxy=45.7, polygon="-117.5,32.5,-117.5,33.1,-116.7,33.1,-116.7,32.5,-117.0,32.3,-117.5,32.5", productFormat="Raster", detail="True", outputFormat="json", include_federated="False")

for item in result:
    print(item)
const resp = await fetch("https://portal.opentopography.org/API/otCatalog?minx=-123.2&miny=44.8&maxx=-121.9&maxy=45.7&polygon=-117.5%2C32.5%2C-117.5%2C33.1%2C-116.7%2C33.1%2C-116.7%2C32.5%2C-117.0%2C32.3%2C-117.5%2C32.5&productFormat=Raster&detail=True&outputFormat=json&include_federated=False");
const data = await resp.json();
Bounding box-based catalog search openapi-spec
curl 'https://portal.opentopography.org/API/otCatalog?productFormat=PointCloud&minx=-123.2&miny=44.8&maxx=-121.9&maxy=45.7&detail=False&outputFormat=xml&include_federated=False'
import requests

resp = requests.get(
    "https://portal.opentopography.org/API/otCatalog",
    params={
        'productFormat': 'PointCloud',
        'minx': '-123.2',
        'miny': '44.8',
        'maxx': '-121.9',
        'maxy': '45.7',
        'detail': 'False',
        'outputFormat': 'xml',
        'include_federated': 'False',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("opentopography")
result = api.fetch("otCatalog", productFormat="PointCloud", minx=-123.2, miny=44.8, maxx=-121.9, maxy=45.7, detail="False", outputFormat="xml", include_federated="False")

for item in result:
    print(item)
const resp = await fetch("https://portal.opentopography.org/API/otCatalog?productFormat=PointCloud&minx=-123.2&miny=44.8&maxx=-121.9&maxy=45.7&detail=False&outputFormat=xml&include_federated=False");
const data = await resp.json();

Probe History

Latency

Status Codes

TimeStatusLatencySize
2026-04-16 01:04:06.870339 200 2320ms
2026-04-16 00:22:16.398472 200 1451ms
2026-04-15 00:51:50.645238 200 1671ms
2026-04-15 00:12:20.558856 200 1276ms
2026-04-14 03:50:17.188522 200 2010ms
2026-04-14 02:50:34.060611 200 2340ms
2026-04-12 15:39:52.595806 200 1589ms
2026-04-12 14:40:38.284789 200 1842ms
2026-04-10 01:14:06.370026 200 2388ms
2026-04-10 00:31:32.628646 200 1404ms
2026-04-09 03:36:24.430663 200 1476ms
2026-04-09 01:41:31.580675 200 1944ms
2026-04-08 07:15:44.525424 200 1960ms
2026-04-07 00:33:29.943060 200 1903ms
2026-04-05 19:44:17.977459 200 2024ms
2026-04-05 01:01:22.911910 200 2036ms
2026-04-04 02:27:37.401743 200 2148ms
2026-04-03 12:19:19.117827 200 2202ms
2026-03-30 03:03:38.258165 200 2242ms
2026-03-29 13:00:02.797173 200 1855ms
2026-03-23 10:17:30.392339 200 1949ms