{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "OpenTopography API",
    "version" : "1.0.0"
  },
  "servers" : [ {
    "url" : "/API"
  } ],
  "paths" : {
    "/globaldem" : {
      "get" : {
        "tags" : [ "Public" ],
        "summary" : "Access global topographic datasets including SRTM GL3 (Global 90m), GL1 (Global 30m), ALOS World 3D, SRTM15+ V2.1, GEBCO IceTopo, and GEBCO SubIceTopo (Global Bathymetry 500m). Note: Requests are limited to 500,000,000 km\u00B2 for GEDI L3, 125,000,000 km\u00B2 for SRTM15+ V2.1, GEBCO IceTopo, and GEBCO SubIceTopo, 4,050,000 km\u00B2 for SRTM GL3, COP90 and 450,000 km\u00B2 for all other data.",
        "operationId" : "getGlobalDem",
        "parameters" : [
        {
          "name" : "demtype",
          "in" : "query",
          "description" : "Available global raster datasets: <ul><li>SRTMGL3 (SRTM GL3 90m)</li><li>SRTMGL1 (SRTM GL1 30m) </li><li>SRTMGL1_E (SRTM GL1 Ellipsoidal 30m)</li><li>AW3D30 (ALOS World 3D 30m)</li><li>AW3D30_E (ALOS World 3D Ellipsoidal, 30m)</li><li>SRTM15Plus (Global Bathymetry SRTM15+ V2.1 500m)</li><li>NASADEM (NASADEM Global DEM)</li><li>COP30 (Copernicus Global DSM 30m)</li><li>COP90 (Copernicus Global DSM 90m)</li><li>EU_DTM (DTM 30m)</li><li>GEDI_L3 (DTM 1000m)</li><li>GEBCOIceTopo (Global Bathymetry 500m)</li><li>GEBCOSubIceTopo (Global Bathymetry 500m)</li><li>CA_MRDEM_DSM (DSM 30m)</li><li>CA_MRDEM_DTM (DTM 30m)</li><li>ANADEM (DTM 30m)</li><li>GEDTM30 (DTM 30m)</li></ul> * <i>All datasets require API key for access. Users can request an API key via myOpenTopo in the OpenTopography portal.</i>",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum": ["SRTMGL3", "SRTMGL1", "SRTMGL1_E", "AW3D30", "AW3D30_E", "SRTM15Plus", "NASADEM", "COP30", "COP90", "EU_DTM", "GEDI_L3", "GEBCOIceTopo", "GEBCOSubIceTopo", "CA_MRDEM_DTM", "CA_MRDEM_DSM", "ANADEM", "GEDTM30"]
          },
          "example" : "SRTMGL3"
        }, {
          "name" : "south",
          "in" : "query",
          "description" : "WGS 84 bounding box south coordinates",
          "required" : true,
          "schema" : {
            "maximum" : 90,
            "minimum" : -90,
            "type" : "number"
          },
          "example" : 50
        }, {
          "name" : "north",
          "in" : "query",
          "description" : "WGS 84 bounding box north coordinates",
          "required" : true,
          "schema" : {
            "maximum" : 90,
            "minimum" : -90,
            "type" : "number"
          },
          "example" : 50.1
        }, {
          "name" : "west",
          "in" : "query",
          "description" : "WGS 84 bounding box west coordinates",
          "required" : true,
          "schema" : {
            "maximum" : 180,
            "minimum" : -180,
            "type" : "number"
          },
          "example" : 14.35
        }, {
          "name" : "east",
          "in" : "query",
          "description" : "WGS 84 bounding box east coordinates",
          "required" : true,
          "schema" : {
            "maximum" : 180,
            "minimum" : -180,
            "type" : "number"
          },
          "example" : 14.6
        }, {
          "name" : "outputFormat",
          "in" : "query",
          "description" : "Output Format (optional) - GTiff for GeoTiff, AAIGrid for Arc ASCII Grid, HFA for Erdas Imagine (.IMG). Defaults to GTiff if parameter is not provided",
          "schema" : {
            "type" : "string",
            "enum" : [ "GTiff", "AAIGrid", "HFA"],
            "default" : "GTiff"
          },
          "example" : "GTiff"
        }, {
          "name" : "API_Key",
          "in" : "query",
          "description" : "All datasets require API key for access. Users can request an API key via myOpenTopo in the OpenTopography portal. <br>* <i>See OpenTopography Terms of Use for more information on appropriate use of the API.</i>",
          "required" : true,
          "schema" : {
            "type" : "string",
            "default" : "demoapikeyot2022"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "204" : {
            "description" : "No Data"
          },
          "400" : {
            "description" : "Bad request"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "500" : {
            "description" : "Internal error"
          }
        }
      }
    },
    "/usgsdem" : {
      "get" : {
        "tags" : [ "Public" ],
        "summary" : "Access U.S. Geological Survey 3DEP raster datasets including 1m, 1/3 arc-second (10m), 1 arc-second (30m) Digital Elevation Model. Note: 1m DEM is currently restricted to academic users. Requests are limited to 225,000 km\u00B2 for USGS30m, 25,000 km\u00B2 for USGS10m, 250 km\u00B2 for USGS1m data. This API service relies on USGS resources. OpenTopography does not control the availability or performance of this service.",
        "operationId" : "getUsgsDem",
        "parameters" : [
        {
          "name" : "datasetName",
          "in" : "query",
          "description" : "USGS 3DEP raster: USGS1m, USGS10m, USGS30m",
          "required" : true,
          "schema" : {
            "type" : "string",
            "enum": ["USGS30m", "USGS10m", "USGS1m"]
          },
          "example" : "USGS30m"
        }, {
          "name" : "south",
          "in" : "query",
          "description" : "WGS 84 bounding box south coordinates",
          "required" : true,
          "schema" : {
            "maximum" : 90,
            "minimum" : -90,
            "type" : "number"
          },
          "example" : 40.234
        }, {
          "name" : "north",
          "in" : "query",
          "description" : "WGS 84 bounding box north coordinates",
          "required" : true,
          "schema" : {
            "maximum" : 90,
            "minimum" : -90,
            "type" : "number"
          },
          "example" : 40.288
        }, {
          "name" : "west",
          "in" : "query",
          "description" : "WGS 84 bounding box west coordinates",
          "required" : true,
          "schema" : {
            "maximum" : 180,
            "minimum" : -180,
            "type" : "number"
          },
          "example" : -105.673
        }, {
          "name" : "east",
          "in" : "query",
          "description" : "WGS 84 bounding box east coordinates",
          "required" : true,
          "schema" : {
            "maximum" : 180,
            "minimum" : -180,
            "type" : "number"
          },
          "example" : -105.583
        }, {
          "name" : "outputFormat",
          "in" : "query",
          "description" : "Output Format (optional) - GTiff for GeoTiff, AAIGrid for Arc ASCII Grid, HFA for Erdas Imagine (.IMG). Defaults to GTiff if parameter is not provided",
          "schema" : {
            "type" : "string",
            "enum" : [ "GTiff", "AAIGrid", "HFA"],
            "default" : "GTiff"
          },
          "example" : "GTiff"
        }, {
          "name" : "API_Key",
          "in" : "query",
          "description" : "USGS 3DEP 1m raster dataset is currently restricted to academic users. Academic users can request access to these data via the OpenTopography portal. Non-academic users can enquire about an enterprise API key by emailing info@opentopography.org. <br>* <i>See OpenTopography Terms of Use for more information on appropriate use of the API.</i>",
          "required" : true,
          "schema" : {
            "type" : "string",
            "default" : "demoapikeyot2022"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "204" : {
            "description" : "No Data"
          },
          "400" : {
            "description" : "Bad request"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "500" : {
            "description" : "Internal error"
          }
        }
      }
    },
    "/otCatalog" : {
      "get" : {
        "tags" : [ "Public" ],
        "summary" : "Bounding box-based catalog search of topography datasets hosted by OpenTopography.",
        "operationId" : "getOtCatalog",
        "parameters" : [
        {
          "name" : "productFormat",
          "in" : "query",
          "description" : "Data product Format (optional) - Point Cloud or Raster. Defaults to all data products",
          "required" : false,
          "schema" : {
            "type" : "string",
            "enum": ["PointCloud", "Raster"]
          },
          "example" : "PointCloud"
        }, {
          "name" : "minx",
          "in" : "query",
          "description" : "WGS 84 bounding box west coordinates. <sup>*</sup>Required if polygon parameter is not provided.",
          "required" : false,
          "schema" : {
            "maximum" : 180,
            "minimum" : -180,
            "type" : "number"
          },
          "example" : -123.2
        }, {
          "name" : "miny",
          "in" : "query",
          "description" : "WGS 84 bounding box south coordinates. <sup>*</sup>Required if polygon parameter is not provided.",
          "required" : false,
          "schema" : {
            "maximum" : 90,
            "minimum" : -90,
            "type" : "number"
          },
          "example" : 44.8
        }, {
          "name" : "maxx",
          "in" : "query",
          "description" : "WGS 84 bounding box east coordinates. <sup>*</sup>Required if polygon parameter is not provided.",
          "required" : false,
          "schema" : {
            "maximum" : 180,
            "minimum" : -180,
            "type" : "number"
          },
          "example" : -121.9
        }, {
          "name" : "maxy",
          "in" : "query",
          "description" : "WGS 84 bounding box north coordinates. <sup>*</sup>Required if polygon parameter is not provided.",
          "required" : false,
          "schema" : {
            "maximum" : 90,
            "minimum" : -90,
            "type" : "number"
          },
          "example" : 45.7
        }, {
          "name" : "polygon",
          "in" : "query",
          "description" : "A string of points to make up a polygon (WKT format). The first and last points should match to complete the polygonal shape. <sup>*</sup>If this parameter is provided, the bounding box parameters: minx, miny, maxx, and maxy will be ignored. <br><br><i>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</i>",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "detail",
          "in" : "query",
          "description" : "Show detailed metadata (optional). Defaults is false and shows specific metadata information.",
          "schema" : {
            "type" : "boolean"
          },
          "example" : false
        }, {
          "name" : "outputFormat",
          "in" : "query",
          "description" : "Output Format (optional) - Defaults to json if parameter is not provided. Other available formats - xml",
          "schema" : {
            "type" : "string",
            "enum" : [ "json", "xml"],
            "default" : "json"
          },
          "example" : "xml"
        }, {
          "name" : "include_federated",
          "in" : "query",
          "description" : "Include federated datasets available via OpenTopography (e.g. USGS 3DEP Catalog)",
          "schema" : {
            "type" : "boolean"
          },
          "example" : false
        }],
        "responses" : {
          "200" : {
            "description" : "OK"
          },
          "204" : {
            "description" : "No Data"
          },
          "400" : {
            "description" : "Bad request"
          },
          "500" : {
            "description" : "Internal error"
          }
        }
      }
    },
    "/v1/elevation" : {
      "get" : {
        "tags" : [ "Public" ],
        "summary" : "Returns elevation data for a specified latitude and longitude, derived from topography datasets hosted by OpenTopography. API also provides option to specify the topography dataset to be used.",
        "operationId" : "getPointElevation",
        "parameters" : [
        {
          "name" : "longitude",
          "in" : "query",
          "description" : "Longitude in decimal degrees. In range [-180, 180]",
          "required" : true,
          "schema" : {
            "maximum" : 180,
            "minimum" : -180,
            "type" : "number"
          },
          "example" : -104.9963
        }, {
          "name" : "latitude",
          "in" : "query",
          "description" : "Latitude in decimal degrees. In range [-90, 90]",
          "required" : true,
          "schema" : {
            "maximum" : 90,
            "minimum" : -90,
            "type" : "number"
          },
          "example" : 39.7471
        }, {
          "name" : "dataset",
          "in" : "query",
          "description" : "Select a reference dataset (Optional). Defaults to COP30 if parameter is not provided",
          "schema" : {
            "type" : "string",
            "enum" : [ "ANADEM", "ArcticDEM10m", "ArcticDEM2m", "ArcticDEM32m", "AW3D30", "AW3D30_E", "CA_MRDEM_DSM", "CA_MRDEM_DTM", "COP30", "COP90", "EU_DTM", "GEBCOIceTopo", "GEBCOSubIceTopo", "GEDI_L3", "GEDTM30", "LINZ1m_DSM", "LINZ1m_DTM", "NASADEM", "REMA10m", "REMA2m", "REMA32m", "SRTM15Plus", "SRTM_GL1", "SRTM_GL1_Ellip", "SRTM_GL3", "USGS10m", "USGS30m"],
            "default" : "COP30"
          }
        }, {
          "name" : "API_Key",
          "in" : "query",
          "description" : "Elevation API requires an OpenTopography API key for access. Users can request an API key via myOpenTopo in the OpenTopography portal.<br>* <i>See OpenTopography Terms of Use for more information on appropriate use of the API.</i>",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Success"
          },
          "422" : {
            "description" : "Unprocessable Entity"
          },
          "404" : {
            "description" : "Not Fount"
          },
          "400" : {
            "description" : "Bad request"
          },
          "401" : {
            "description" : "Unauthorized"
          },
          "500" : {
            "description" : "Internal Server error"
          }
        }
      }
    }
  }
}
