{"openapi":"3.0.0","info":{"description":"# Introduction\nDTN API for consuming mapping services\n\n# Map Tile API Playground\nA tool that can be used to easily view the layers you have access to using your obtained credentials. It also serves as a simple reference implementation of an interactive map viewer based on the Map Tile API.\nAccess the Map Tile API Playground [here](https://map.api.dtn.com/static/html/v2/map.html).\n\nIf you are migrating from V1 to V2 of the DTN Map Tile API, please refer to our [V2 Migration Guide](https://map.api.dtn.com/static/html/v2/migration_guide.pdf)","version":"2.0.16","title":"DTN Map Tile API"},"servers":[{"url":"https://map.api.dtn.com/v2","description":"Version 2 of our mapping API"}],"security":[{"clientCredentials":[]}],"tags":[{"name":"Catalog","description":"Returns layers and layer groups."},{"name":"Metadata","description":"Returns layer metadata such as zoom levels, bounding boxes, etc."},{"name":"Legends","description":"Returns layer legends in either html or image format."},{"name":"Styles","description":"Returns layer styles as defined by the MapBox Style Specification."},{"name":"Timestamps","description":"Returns each timestamp for each of the layers the system has tiles for."},{"name":"Tiles","description":"Returns layer tiles in either raster or vector format.\n## Token passing methods\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Authorization header\n Token query parameter\n
SecurityMore secureLess secure
Requires preflight OPTIONS requestYesNo (more performant)
Ease of integrationRequires manipulation of headers in the tile requestsDoes not require manipulation of headers in the tile request
\n\nWhen using the API from a browser, the recommended method is Token query parameter since it delivers higher throughput.\n"},{"name":"Tooltips","description":"Returns tooltips in either application/json or text/html from a certain location. \nWhen using the API from a browser, the recommended method is Token query parameter since it delivers higher throughput.\n"},{"name":"Tooltip templates","description":"Returns handlebar templates to be used for displaying tooltips."},{"name":"Geocoder","description":"Returns location information or geographic coordinates from a geocoding service. Supports forward and reverse geocoding."},{"name":"Image","description":"Allows generation of custom tailored map images"}],"paths":{"/catalog":{"get":{"tags":["Catalog"],"summary":"Returns the layers and groupings that the provided token is provisioned for.","description":"Full list of layer catalog: [DTN Map Tile Layer Catalog](https://map.api.dtn.com/static/html/v2/layer-catalog.html)\n","operationId":"getCatalog","parameters":[{"$ref":"#/components/parameters/accept-json"},{"$ref":"#/components/parameters/accept-language"},{"$ref":"#/components/parameters/locale"}],"responses":{"200":{"$ref":"#/components/responses/catalog"},"406":{"$ref":"#/components/responses/not-acceptable"},"422":{"$ref":"#/components/responses/unprocessable-entity"},"default":{"$ref":"#/components/responses/error"}}}},"/catalog/{catalogId}":{"get":{"tags":["Catalog"],"summary":"Returns a list of groups and layers identified by a catalogId","operationId":"getCatalogId","parameters":[{"$ref":"#/components/parameters/catalog-id"},{"$ref":"#/components/parameters/accept-json"},{"$ref":"#/components/parameters/accept-language"},{"$ref":"#/components/parameters/locale"}],"responses":{"200":{"$ref":"#/components/responses/catalog"},"406":{"$ref":"#/components/responses/not-acceptable"},"422":{"$ref":"#/components/responses/unprocessable-entity"},"default":{"$ref":"#/components/responses/error"}}}},"/metadata/{layerId}":{"get":{"tags":["Metadata"],"summary":"Returns metadata of a given layer by id.","operationId":"getMetadata","parameters":[{"$ref":"#/components/parameters/layer-id"},{"$ref":"#/components/parameters/accept-json"},{"$ref":"#/components/parameters/accept-language"},{"$ref":"#/components/parameters/locale"}],"responses":{"200":{"$ref":"#/components/responses/metadata"},"406":{"$ref":"#/components/responses/not-acceptable"},"422":{"$ref":"#/components/responses/unprocessable-entity"},"default":{"$ref":"#/components/responses/error"}}}},"/legends/{layerId}":{"get":{"tags":["Legends"],"summary":"Returns legend of a given layer by id.","operationId":"getLayerLegend","parameters":[{"$ref":"#/components/parameters/layer-id"},{"$ref":"#/components/parameters/filter"},{"$ref":"#/components/parameters/unit"},{"$ref":"#/components/parameters/accept-legend"},{"$ref":"#/components/parameters/accept-language"},{"$ref":"#/components/parameters/locale"},{"$ref":"#/components/parameters/legend-title"},{"$ref":"#/components/parameters/max-width"},{"$ref":"#/components/parameters/layer-parameters"},{"$ref":"#/components/parameters/palette-override"}],"responses":{"200":{"$ref":"#/components/responses/legend"},"406":{"$ref":"#/components/responses/not-acceptable"},"422":{"$ref":"#/components/responses/unprocessable-entity"},"default":{"$ref":"#/components/responses/error"}}}},"/styles/{layerId}":{"get":{"tags":["Styles"],"summary":"Returns styles of a given layer by id.","operationId":"getLayerStyles","externalDocs":{"description":"Mapbox style specification","url":"https://docs.mapbox.com/mapbox-gl-js/style-spec/"},"parameters":[{"$ref":"#/components/parameters/layer-id"},{"$ref":"#/components/parameters/filter"},{"$ref":"#/components/parameters/accept-json"},{"$ref":"#/components/parameters/accept-language"},{"$ref":"#/components/parameters/locale"},{"$ref":"#/components/parameters/palette-override"}],"responses":{"200":{"$ref":"#/components/responses/style-list"},"401":{"$ref":"#/components/responses/unauthenticated"},"406":{"$ref":"#/components/responses/not-acceptable"},"422":{"$ref":"#/components/responses/unprocessable-entity"},"default":{"$ref":"#/components/responses/error"}}}},"/tiles/{layerId}/{tileSetId}/{z}/{x}/{y}":{"get":{"tags":["Tiles"],"summary":"Returns a tile from a layer at a specific time.","operationId":"getLayerTile","parameters":[{"$ref":"#/components/parameters/layer-id"},{"$ref":"#/components/parameters/tile-set-id"},{"$ref":"#/components/parameters/z"},{"$ref":"#/components/parameters/x"},{"$ref":"#/components/parameters/y"},{"$ref":"#/components/parameters/scheme"},{"$ref":"#/components/parameters/filter"},{"$ref":"#/components/parameters/tile-size"},{"$ref":"#/components/parameters/token"},{"$ref":"#/components/parameters/accept-tile"},{"$ref":"#/components/parameters/unit"},{"$ref":"#/components/parameters/timezone"},{"$ref":"#/components/parameters/accept-language"},{"$ref":"#/components/parameters/locale"},{"$ref":"#/components/parameters/palette-override"},{"$ref":"#/components/parameters/smoothing-profile"}],"responses":{"200":{"$ref":"#/components/responses/tile"},"406":{"$ref":"#/components/responses/not-acceptable"},"422":{"$ref":"#/components/responses/unprocessable-entity"},"default":{"$ref":"#/components/responses/error"}}}},"/tiles/{layerId}/{tileSetId}/{z}/{x}/{y}.{ext}":{"get":{"tags":["Tiles"],"summary":"Returns a tile from a layer at a specific time, specifying extension.","operationId":"getLayerTileWithExtension","parameters":[{"$ref":"#/components/parameters/layer-id"},{"$ref":"#/components/parameters/tile-set-id"},{"$ref":"#/components/parameters/z"},{"$ref":"#/components/parameters/x"},{"$ref":"#/components/parameters/y"},{"$ref":"#/components/parameters/ext"},{"$ref":"#/components/parameters/scheme"},{"$ref":"#/components/parameters/filter"},{"$ref":"#/components/parameters/tile-size"},{"$ref":"#/components/parameters/token"},{"$ref":"#/components/parameters/accept-tile"},{"$ref":"#/components/parameters/unit"},{"$ref":"#/components/parameters/timezone"},{"$ref":"#/components/parameters/accept-language"},{"$ref":"#/components/parameters/locale"},{"$ref":"#/components/parameters/palette-override"},{"$ref":"#/components/parameters/smoothing-profile"}],"responses":{"200":{"$ref":"#/components/responses/tile"},"406":{"$ref":"#/components/responses/not-acceptable"},"422":{"$ref":"#/components/responses/unprocessable-entity"},"default":{"$ref":"#/components/responses/error"}}}},"/timestamps/{layerId}":{"get":{"tags":["Timestamps"],"summary":"Returns list of timestamps of a given layer by id.","operationId":"getLayerTimestamps","parameters":[{"$ref":"#/components/parameters/layer-id"},{"$ref":"#/components/parameters/time-range"},{"$ref":"#/components/parameters/accept-json"},{"$ref":"#/components/parameters/force-off-interval"},{"$ref":"#/components/parameters/layer-parameters"}],"responses":{"200":{"$ref":"#/components/responses/timestamp-list"},"406":{"$ref":"#/components/responses/not-acceptable"},"422":{"$ref":"#/components/responses/unprocessable-entity"},"default":{"$ref":"#/components/responses/error"}}}},"/tooltips/{layerId}/{tileSetId}/{map-zoom}/{lat}/{lng}":{"get":{"tags":["Tooltips"],"summary":"Returns the tooltip of a layer at a specific time given by its id, zoom level, latitude and longitude.","operationId":"getLayerTooltip","parameters":[{"$ref":"#/components/parameters/layer-id"},{"$ref":"#/components/parameters/tile-set-id"},{"$ref":"#/components/parameters/map-zoom"},{"$ref":"#/components/parameters/lat-path"},{"$ref":"#/components/parameters/lng-path"},{"$ref":"#/components/parameters/filter"},{"$ref":"#/components/parameters/token"},{"$ref":"#/components/parameters/accept-tooltip"},{"$ref":"#/components/parameters/accept-language"},{"$ref":"#/components/parameters/locale"},{"$ref":"#/components/parameters/unit"},{"$ref":"#/components/parameters/timezone"},{"$ref":"#/components/parameters/palette-override"}],"responses":{"200":{"$ref":"#/components/responses/tooltip"},"401":{"$ref":"#/components/responses/unauthenticated"},"406":{"$ref":"#/components/responses/not-acceptable"},"422":{"$ref":"#/components/responses/unprocessable-entity"},"default":{"$ref":"#/components/responses/error"}}}},"/tooltip-templates/{layerId}":{"get":{"tags":["Tooltip templates"],"summary":"Returns tooltip template of a given layer by id.","operationId":"getLayerTooltipTemplate","parameters":[{"$ref":"#/components/parameters/layer-id"},{"$ref":"#/components/parameters/accept-tooltip-template"},{"$ref":"#/components/parameters/accept-language"},{"$ref":"#/components/parameters/locale"},{"$ref":"#/components/parameters/layer-parameters"}],"responses":{"200":{"$ref":"#/components/responses/tooltip-template"},"401":{"$ref":"#/components/responses/unauthenticated"},"406":{"$ref":"#/components/responses/not-acceptable"},"422":{"$ref":"#/components/responses/unprocessable-entity"},"default":{"$ref":"#/components/responses/error"}}}},"/geocoder":{"get":{"tags":["Geocoder"],"summary":"Returns geographic coordinates of the provided search text.","operationId":"getGeographicCoordinates","externalDocs":{"description":"Mapbox geocoding response object","url":"https://docs.mapbox.com/api/search/geocoding/#geocoding-response-object"},"parameters":[{"$ref":"#/components/parameters/search-text"},{"$ref":"#/components/parameters/will-persist"},{"$ref":"#/components/parameters/autocomplete"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/country"},{"$ref":"#/components/parameters/bbox"},{"$ref":"#/components/parameters/proximity"},{"$ref":"#/components/parameters/place_types"},{"$ref":"#/components/parameters/accept-json"},{"$ref":"#/components/parameters/accept-language"},{"$ref":"#/components/parameters/locale"}],"responses":{"200":{"$ref":"#/components/responses/geographic-coordinates"},"401":{"$ref":"#/components/responses/unauthenticated"},"406":{"$ref":"#/components/responses/not-acceptable"},"422":{"$ref":"#/components/responses/unprocessable-entity"},"default":{"$ref":"#/components/responses/error"}}}},"/reverse-geocoder":{"get":{"tags":["Geocoder"],"summary":"Returns descriptive location information for the provided latitude/longitude.","operationId":"getGeographicFeature","externalDocs":{"description":"Mapbox geocoding response object","url":"https://docs.mapbox.com/api/search/geocoding/#geocoding-response-object"},"parameters":[{"$ref":"#/components/parameters/lng"},{"$ref":"#/components/parameters/lat"},{"$ref":"#/components/parameters/will-persist"},{"$ref":"#/components/parameters/place_types"},{"$ref":"#/components/parameters/accept-json"},{"$ref":"#/components/parameters/accept-language"},{"$ref":"#/components/parameters/locale"}],"responses":{"200":{"$ref":"#/components/responses/geographic-feature"},"401":{"$ref":"#/components/responses/unauthenticated"},"406":{"$ref":"#/components/responses/not-acceptable"},"422":{"$ref":"#/components/responses/unprocessable-entity"},"default":{"$ref":"#/components/responses/error"}}}},"/image":{"get":{"tags":["Image"],"summary":"Returns static image with or without basemap","externalDocs":{"description":"Mapbox style API","url":"https://docs.mapbox.com/api/maps/styles/"},"operationId":"getImage","parameters":[{"$ref":"#/components/parameters/accept-language"},{"$ref":"#/components/parameters/accept-image"},{"$ref":"#/components/parameters/image-layers"},{"$ref":"#/components/parameters/image-opacities"},{"$ref":"#/components/parameters/image-smoothing-profiles"},{"$ref":"#/components/parameters/image-width"},{"$ref":"#/components/parameters/image-height"},{"$ref":"#/components/parameters/image-timestamp"},{"$ref":"#/components/parameters/image-basemap-style-url"},{"$ref":"#/components/parameters/image-basemap-visibility-overrides"},{"$ref":"#/components/parameters/image-get-viewport"},{"$ref":"#/components/parameters/image-logo-position"},{"$ref":"#/components/parameters/unit"},{"$ref":"#/components/parameters/locale"},{"$ref":"#/components/parameters/epsg"},{"$ref":"#/components/parameters/layer-parameters"}],"responses":{"200":{"$ref":"#/components/responses/image"},"401":{"$ref":"#/components/responses/unauthenticated"},"406":{"$ref":"#/components/responses/not-acceptable"},"422":{"$ref":"#/components/responses/unprocessable-entity"},"default":{"$ref":"#/components/responses/error"}}},"post":{"tags":["Image"],"summary":"Returns static image","description":"Render static images with out without a basemap, using more controls, like adding custom styles or specifying run times and timestamps","operationId":"postImage","externalDocs":{"description":"Mapbox style API","url":"https://docs.mapbox.com/api/maps/styles/"},"parameters":[{"$ref":"#/components/parameters/accept-language"},{"$ref":"#/components/parameters/accept-image"},{"$ref":"#/components/parameters/image-width"},{"$ref":"#/components/parameters/image-height"},{"$ref":"#/components/parameters/image-basemap-style-url"},{"$ref":"#/components/parameters/image-basemap-visibility-overrides"},{"$ref":"#/components/parameters/image-post-viewport"},{"$ref":"#/components/parameters/image-logo-position"},{"$ref":"#/components/parameters/unit"},{"$ref":"#/components/parameters/locale"},{"$ref":"#/components/parameters/epsg"}],"requestBody":{"$ref":"#/components/requestBodies/image-request"},"responses":{"200":{"$ref":"#/components/responses/image"},"401":{"$ref":"#/components/responses/unauthenticated"},"406":{"$ref":"#/components/responses/not-acceptable"},"422":{"$ref":"#/components/responses/unprocessable-entity"},"default":{"$ref":"#/components/responses/error"}}}}},"components":{"headers":{"x-request-id":{"description":"UUID compliant with RFC 4122 that uniquely identifies the request.","schema":{"type":"string"}},"content-encoding":{"description":"Lists any encodings that have been applied to the returned payload.","schema":{"type":"string"}},"content-language":{"description":"Describe the language(s) intended for the audience.","schema":{"type":"string","default":"en-US"}}},"parameters":{"accept-json":{"in":"header","name":"Accept","required":true,"description":"Indicates response media types that are acceptable.","schema":{"type":"string","enum":["application/json"]}},"accept-language":{"in":"header","name":"Accept-Language","description":"Specifies the desired language and country code for language translation and formatting conventions.
\nSupported languages are English (en) and Spanish (es). However, any 2-letter ISO country code is supported as locale. See [here](https://www.iso.org/obp/ui/#search/code) for a list of country codes.
\nDefaults to English (en-US) if unsupported locale is specified.
\n","schema":{"type":"string","pattern":"^(en|es)-[A-Z]{2}$","default":"en-US"},"examples":{"en-*":{"description":"English
Sample values include `en-US`, `en-AU`, `en-GB`"},"es-*":{"description":"Spanish
Sample values include `es-ES`, `es-US`"}}},"accept-legend":{"in":"header","name":"Accept","required":true,"description":"Indicates response media types that are acceptable.","schema":{"type":"string","enum":["image/png","image/webp","text/html","application/json"]}},"accept-tile":{"in":"header","name":"Accept","required":true,"description":"Indicates response media types that are acceptable.","schema":{"type":"string","enum":["image/png","image/webp","application/x-protobuf","image/tiff"]}},"accept-image":{"in":"header","name":"Accept","required":true,"description":"Indicates response media types that are acceptable.","schema":{"type":"string","enum":["image/png","image/jpeg","image/gif","image/webp"]}},"accept-tooltip":{"in":"header","name":"Accept","required":true,"description":"Indicates response media types that are acceptable.","schema":{"type":"string","enum":["application/json","text/html"]}},"accept-tooltip-template":{"in":"header","name":"Accept","required":true,"description":"Indicates response media types that are acceptable.","schema":{"type":"string","enum":["text/x-handlebars-template"]}},"layer-id":{"in":"path","name":"layerId","description":"Unique identifier for the layer. See the full list of layers on the [DTN Map Tile Layer Catalog](https://map.api.dtn.com/static/html/v2/layer-catalog.html).\n","required":true,"schema":{"type":"string","description":"id for the layer from which to receive data.","example":"radar-base-ref-precip-type-na-contours"}},"catalog-id":{"in":"path","name":"catalogId","description":"Unique identifier for a catalog","required":true,"schema":{"type":"string"}},"filter":{"in":"query","name":"filter","description":"Comma separated list of filter ids of a layer filter that the resulting data driven style would filter according to predefined filters.","schema":{"type":"array","description":"filter id for which the data driven style will include additional filter query","items":{"type":"string","example":"nws-inland-flood-alerts,nws-winter-alerts"}}},"legend-title":{"in":"query","name":"legendTitle","description":"Indicates whether or not to include the layer name as a title in the legend.","schema":{"type":"boolean","default":false}},"max-width":{"in":"query","name":"maxWidth","description":"max width of the legend image in pixels","schema":{"type":"number","example":1024}},"scheme":{"in":"query","name":"scheme","description":"Tile scheme, either \"xyz\" or \"tms\".","schema":{"items":{"type":"string","enum":["xyz","tms"],"default":"xyz"}}},"tile-set-id":{"in":"path","name":"tileSetId","description":"tileSetId, as retrieved from the timestamps endpoint.","required":true,"schema":{"type":"string","description":"id for the timestamp from which to receive data.","example":"46c63648-397c-469d-97a7-622825c58437"}},"token":{"in":"query","name":"token","description":"JSON Web Token in query parameter as an alternative to Authorization header.","schema":{"type":"string","example":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVC..."}},"tile-size":{"in":"query","name":"size","description":"It indicates the expected size for the tile. Only allowed for raster tiles","schema":{"type":"number","example":512,"default":256,"enum":[256,512]}},"layer-parameters":{"in":"query","name":"parameters","description":"Key-value pair list, separated by semicolons, representing each of the desired parameter ids and values to use against this endpoint. When available, parameters are defined in the metadata endpoint for each given layer.\n","required":false,"schema":{"type":"string","example":"id-1:value-1;id-2:value-2"}},"time-range":{"in":"query","name":"time","description":"Times range, in UTC and ISO 8601 compliant, delimited by a forward slash. The time range of data has a maximum of 24 hours allowed. This parameter is **optional**, and is mainly used for accessing older, archived data. If not given, returns the latest data available.","required":false,"schema":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"string","format":"date-time","example":"2022-04-01T00:00:00Z/2022-04-02T00:00:00Z"}}},"force-off-interval":{"in":"query","name":"forceOffInterval","description":"When set to true, this parameter forces the API to return the most recent time frame, even if it falls outside the regular intervals. If set to false or omitted, only data from the regular intervals is returned.","required":false,"schema":{"type":"boolean","default":false}},"unit":{"in":"query","name":"unit","description":"Unit system (with or without industry specific overrides) to use when returning data.","schema":{"type":"string","enum":["metric","metric-aviation","metric-marine","imperial","imperial-aviation","imperial-marine"],"default":"imperial"}},"timezone":{"in":"query","name":"timezone","description":"A recognized geographical region in `Continent/Region` format that observes a uniform standard time. Follows the [IANA timezone database](https://data.iana.org/time-zones/tzdb-2021a/zone1970.tab).","schema":{"type":"string","enum":["Etc/GMT","America/New_York","Asia/Tokyo","Europe/Paris","Pacific/Honolulu","check the IANA database for more values"],"default":"Etc/GMT"}},"epsg":{"in":"query","name":"epsg","description":"Specifies the projection to be used, as defined by an EPSG code.
\nThe EPSG code being used must be present in the supportedEPSGs metadata attribute for each of the layers requested.
\nWhen using a basemap style url, make sure to reference one using the same EPSG.\n\nExample values: \n- 3857 - Web Mercator\n- 3031 - Antarctic Polar Stereographic\n- 3995 - Arctic Polar Stereographic\n","schema":{"type":"number","enum":[3857,3031,3995],"default":3857}},"locale":{"in":"query","name":"locale","description":"Specifies the desired language and country code for language translation and formatting conventions.
\nSupported languages are English (en) and Spanish (es). However, any 2-letter ISO country code is supported as locale. See [here](https://www.iso.org/obp/ui/#search/code) for a list of country codes.
\nDefaults to English (en-US) if unsupported locale is specified.
\nIf provided, overrides the Accept-Language header.
\n","schema":{"type":"string","pattern":"^(en|es)-[A-Z]{2}$","default":"en-US"},"examples":{"en-*":{"description":"English
Sample values include `en-US`, `en-AU`, `en-GB`"},"es-*":{"description":"Spanish
Sample values include `es-ES`, `es-US`"}}},"palette-override":{"in":"query","name":"paletteOverride","description":"Value-color pair list separated by semicolons, denoting the custom color palette for the given layer.
\nValues may be a string or a number. When the value is a number, the decimal separator (if any) must be a \".\" (dot).
\nColors may be hexadecimal color codes, or in RGB/RGBA notation. When using RGBA notation, the alpha value must be a float between 0 and 1.\n","required":false,"schema":{"type":"string","example":"0:#FF0000;10:rgb(0,255,0);20:rgba(0,0,255,0.5);30:#00FF0080;40.0:#FFF;50.1:#000F"}},"smoothing-profile":{"in":"query","name":"smoothingProfile","description":"The smoothing profile to use when rendering the layer. Defaults to `none` if not specified.","schema":{"type":"string","enum":["none","low","medium","high"],"default":"none"}},"x":{"in":"path","name":"x","description":"x coordinate for tile.","required":true,"schema":{"type":"integer","description":"x coordinate for tile."}},"y":{"in":"path","name":"y","description":"y coordinate for tile.","required":true,"schema":{"type":"integer","description":"y coordinate for tile."}},"z":{"in":"path","name":"z","description":"Zoom level for tile access.","required":true,"schema":{"type":"integer","description":"Zoom level for tile access."}},"map-zoom":{"in":"path","name":"map-zoom","description":"Zoom level used by the map viewer, this may or may not correspond to the tile being requested, which depends on tile size.","required":true,"schema":{"type":"number","example":3}},"ext":{"in":"path","name":"ext","description":"File extension indicating format of choice.","required":true,"schema":{"type":"string","enum":[".png",".pbf",".webp",".tiff"],"description":"Data type returned, it overrides the Accept header when both are provided."}},"search-text":{"in":"query","name":"searchText","description":"The location or place you are trying to look up. This could be an address, a point of interest name, a city name, etc.\n","required":true,"schema":{"type":"string","example":"11400 Rupp Drive Burnsville MN"}},"lng-path":{"in":"path","name":"lng","description":"Longitude that specifies the location being queried.\n","required":true,"schema":{"type":"number","example":-93.25637}},"lng":{"in":"query","name":"lng","description":"Longitude that specifies the location being queried.\n","required":true,"schema":{"type":"number","example":-93.25637}},"lat-path":{"in":"path","name":"lat","description":"Latitude that specifies the location being queried.\n","required":true,"schema":{"type":"number","example":44.79736}},"lat":{"in":"query","name":"lat","description":"Latitude that specifies the location being queried.\n","required":true,"schema":{"type":"number","example":44.79736}},"will-persist":{"in":"query","name":"willPersist","description":"Specify whether to request persistent geocodes (`true`) or not (`false`, default). When persist is enabled, you are contractually allowed to temporarily cache or permanently store the response, and the backing geocoder service will charge these types of requests at a higher rate.","schema":{"type":"boolean","default":false}},"autocomplete":{"in":"query","name":"autocomplete","description":"Specify whether to return autocomplete results (`true`) or not (`false`, default). When autocomplete is enabled, results will be included that start with the requested string, rather than just responses that match it exactly.","schema":{"type":"boolean","default":false}},"bbox":{"in":"query","name":"bbox","description":"Limit results to only those contained within the supplied bounding box. Bounding boxes should be supplied as four numbers separated by commas, in minLon,minLat,maxLon,maxLat order. When bbox and country filters are both enabled, the request will utilize only the initial parameter specified.\n","schema":{"type":"array","items":{"type":"number"},"example":"-93.25637,44.79736,-92.997778,44.959167"}},"country":{"in":"query","name":"country","description":"Limit results to one or more countries. Permitted values are ISO 3166 alpha 2 country codes separated by commas. When bbox and country filters are both enabled, the request will utilize only the initial parameter specified.\n","schema":{"type":"array","items":{"type":"string"},"example":"us,ca"}},"limit":{"in":"query","name":"limit","description":"Specify the maximum number of results to return. The default is `5` and the maximum supported is `10`. This parameter is only relevant if the autocomplete feature is enabled. When autocomplete is disabled, the API will return a single result.\n","schema":{"type":"number","example":3}},"proximity":{"in":"query","name":"proximity","description":"Bias the response to favor results that are closer to this location. Provided as two comma-separated coordinates in `longitude,latitude` order.\n","schema":{"type":"array","items":{"type":"number"},"example":"-93.25637,44.79736"}},"place_types":{"in":"query","name":"placeTypes","description":"Filter results to include only a subset (one or more) of the available feature types. Options are `country`, `region`, `postcode`, `district`, `place`, `locality`, `neighborhood`, `address`. Multiple options can be comma-separated.\n","schema":{"type":"array","items":{"type":"string"},"example":"country,region"}},"image-layers":{"in":"query","name":"layerIds","description":"Comma separated list of layer ids to render in stacking order.","schema":{"type":"array","minItems":0,"maxItems":10,"items":{"type":"string"},"example":"radar-base-ref-precip-type-na-contours,sevwx-lightning-global-plot"}},"image-logo-position":{"in":"query","name":"dtnLogoPosition","description":"indicates position for DTN logo","schema":{"type":"string","enum":["top-right","top-left","bottom-right","bottom-left"],"default":"top-right"}},"image-opacities":{"in":"query","name":"opacities","description":"Comma separated list of opacities to apply to each of the requested layers, in the same order as in the layerIds attribute. Layers with no matching opacity will use the default one being used in its style. Valid values from 0 to 1 inclusive.","schema":{"type":"array","minItems":0,"maxItems":10,"items":{"type":"number"},"example":".1, 0.5"}},"image-smoothing-profiles":{"in":"query","name":"smoothingProfiles","description":"Comma separated list of smoothing profiles to apply to each of the requested layers, in the same order as in the layerIds attribute. Layers with no matching smoothing profile will not be smoothed.","schema":{"type":"array","minItems":0,"maxItems":10,"items":{"type":"string","enum":["none","low","medium","high"]},"example":"low, high"}},"image-timestamp":{"in":"query","name":"time","description":"Timestamp in UTC and ISO 8601 format. It indicates the time the image should be valid for.","schema":{"type":"string","format":"date-time","description":"Timestamp for which the tile should be valid, defaults to current time","example":"2022-09-28T12:45:00Z"}},"image-basemap-style-url":{"in":"query","name":"basemapStyleURL","description":"URL for a Mapbox data driven style defining a base map.
\nWhen using a custom one, please provide an access token.\n- Streets: mapbox://styles/dtn-mapbox/ckwv1d32r4vsw14poxf2forep\n- Dark: mapbox://styles/dtn-mapbox/ckwv21klw3k2v15pi0igs3uk1\n- Light: mapbox://styles/dtn-mapbox/ckwv1z6fh5prn14pcdx8xqrja\n- Outdoors: mapbox://styles/dtn-mapbox/ckwv1rso35jf614mn4mc9fq82\n- Satellite: mapbox://styles/dtn-mapbox/ckwv24fqs3k5e15pihmf9qtrc\n- Navigation-day: mapbox://styles/dtn-mapbox/ckwv2ch170bul14qg6xneqxri\n- Navigation-night: mapbox://styles/dtn-mapbox/ckwv2jjos05v215pcse1xqjw8\n\nIf using EPSG code of 3031 (Antarctic Polar Stereographic), the following styles must be use\n- 3031 Streets: https://map.api.dtn.com/static/layers/basemaps/3031/styles/street/style.json\n- 3031 Dark: https://map.api.dtn.com/static/layers/basemaps/3031/styles/dark/style.json\n- 3031 Light: https://map.api.dtn.com/static/layers/basemaps/3031/styles/light/style.json\n\nIf using EPSG code of 3995 (Arctic Polar Stereographic), the following styles must be use\n- 3995 Streets: https://map.api.dtn.com/static/layers/basemaps/3995/styles/street/style.json\n- 3995 Dark: https://map.api.dtn.com/static/layers/basemaps/3995/styles/dark/style.json\n- 3995 Light: https://map.api.dtn.com/static/layers/basemaps/3995/styles/light/style.json\n","required":false,"schema":{"type":"string","example":"https://api.mapbox.com/styles/v1/mapbox/outdoors-v11?access_token=ABC..."}},"image-basemap-visibility-overrides":{"in":"query","name":"basemapVisibilityOverrides","description":"Comma separated string of pairs like \"layerId:true|false\" defining layout visibility overrides for the basemap provided by the basemapStyleURL parameter. Wildcards are allowed in the layerId.","required":false,"schema":{"type":"string","example":"land:false,*road*:false"}},"image-width":{"in":"query","name":"width","description":"Width of the rendered image in pixels","required":true,"schema":{"type":"number","example":1024,"minimum":256,"maximum":4096}},"image-height":{"in":"query","name":"height","description":"Height of the rendered image in pixels","required":true,"schema":{"type":"number","example":768,"minimum":256,"maximum":4096}},"image-get-viewport":{"in":"query","name":"viewport","description":"Defines the area to be rendered using comma separated numbers. Area can be defined either through:
\n- lon,lat,zoom\n
lon should be between -180 and 180, lat between -90 and 90, zoom between 0 and 22\n- minLon,minLat,maxLon,maxLat\n
minLon and maxLon should be between -360 and 360, minLat and maxLat between -90 and 90, zoom between 0 and 22, minLon < maxLon, minLat < maxLat\n","required":true,"schema":{"oneOf":[{"type":"array","items":{"type":"number","format":"float"},"minItems":4,"maxItems":4},{"type":"array","items":{"type":"number","format":"float"},"minItems":3,"maxItems":3}]}},"image-post-viewport":{"in":"query","name":"viewport","description":"Defines the area to be rendered using comma separated numbers. Area can be defined either through
\n- lon,lat,zoom\n
lon should be between -180 and 180, lat between -90 and 90, zoom between 0 and 22\n- minLon,minLat,maxLon,maxLat\n
minLon and maxLon should be between -360 and 360, minLat and maxLat between -90 and 90, zoom between 0 and 22, minLon < maxLon, minLat < maxLat\n\nWhen doing POST with a style holding a geojson payload in the sources section, the viewport can be automatically adjusted to the incoming features, padding can be optionally added.\n- auto\n- auto,paddingInDegrees\n
paddingInDegrees should be between 0 and 10\n","required":true,"schema":{"oneOf":[{"type":"array","items":{"type":"number","format":"float"},"minItems":4,"maxItems":4},{"type":"array","items":{"type":"number","format":"float"},"minItems":3,"maxItems":3},{"type":"string","example":"auto","enum":["auto"]},{"type":"array","items":{"type":"object","properties":{"firstItem":{"type":"string","example":"auto","enum":["auto"]},"secondItem":{"type":"number","format":"float"}}}}]}}},"responses":{"catalog":{"description":"successful operation","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/catalog"}}}},"empty":{"description":"empty response","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}}},"error":{"description":"error response","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/general-error"},"example":{"type":"https://map.api.dtn.com/v1/error-details/not-found","title":"resource not found","detail":"The layer you requested could not be found.","status":404,"instance":"urn:dtn:maps:api:catalog:requestId:123e4567-e89b-12d3-a456-526614176000"}}}},"forbidden":{"description":"forbidden error response","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/general-error"},"example":{"type":"https://map.api.dtn.com/v1/error-details/forbidden","title":"forbidden","detail":"Access to the requested resource is forbidden for the given credentials.","status":403,"instance":"urn:dtn:maps:api:catalog:requestId:123e4567-e89b-12d3-a456-426614176001"}}}},"legend":{"description":"successful operation","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/legend-list"}},"text/html":{"schema":{"type":"string","example":"Empty legend"}},"image/png":{"schema":{"type":"string","format":"binary","example":"base64 encoded string"}},"image/webp":{"schema":{"type":"string","format":"binary","example":"base64 encoded string"}}}},"metadata":{"description":"successful operation","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/metadata"}}}},"badrequest":{"description":"bad request","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/general-error"},"example":{"type":"https://map.api.dtn.com/v1/error-details/badrequest","title":"badrequest","detail":"Client error, query parameters is not in allowed range.","status":400,"instance":"urn:dtn:maps:api:catalog:requestId:123e4567-e89b-12d3-a456-426614176001"}}}},"not-acceptable":{"description":"The server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/general-error"},"example":{"type":"https://map.api.dtn.com/v1/error-details/not-allowed","title":"not allowed","detail":"Either the accept header is missing or none of the values are acceptable.","status":406,"instance":"urn:dtn:maps:api:catalog:requestId:123e4567-e89b-12d3-a458-426614176000"}}}},"unprocessable-entity":{"description":"The server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/general-error"},"example":{"type":"https://maps.dtn.com/error-details/invalid-object","title":"Invalid object in request body","detail":"Error in Query: The object '' contains forbidden keys: 'param'","status":422,"instance":"urn:dtn:maps:api:timestamps/sevwx-nws-alert-zones:requestId:341af5d9-022b-4451-b06d-64ef2f2a5964"}}}},"style":{"description":"successful operation","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/style"}}}},"style-list":{"description":"successful operation","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/style"}}}}},"tile":{"description":"tile response","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"image/png":{"schema":{"type":"string","format":"binary","example":"base64 encoded string"}},"image/webp":{"schema":{"type":"string","format":"binary","example":"base64 encoded string"}},"application/x-protobuf":{"schema":{"type":"string","format":"binary","example":"base64 encoded string"}}}},"image":{"description":"image response","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"image/png":{"schema":{"type":"string","format":"binary","example":"base64 encoded string"}},"image/jpeg":{"schema":{"type":"string","format":"binary","example":"base64 encoded string"}},"image/gif":{"schema":{"type":"string","format":"binary","example":"base64 encoded string"}},"image/webp":{"schema":{"type":"string","format":"binary","example":"base64 encoded string"}}}},"timestamp-list":{"description":"successful operation","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/timestamp-wrapper"}}}}},"tooltip":{"description":"successful operation","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"text/html":{"schema":{"type":"string","example":"
Precipitation intensity:
35
dBZ
Precipitation type:
Rain
"}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/tooltip-feature"}}}}},"tooltip-template":{"description":"successful operation","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"text/x-handlebars-template":{"schema":{"type":"string","example":"
\n

Bridge Deck Condition

\n \n\t \n\t \n\t \n\t \n
\n\t
Bridge Deck Condition:
\n\t
\n\t\t
{{properties.bridgeDeckCondition)}}
\n\t\t
\n
"}}}},"unauthenticated":{"description":"unauthenticated error response","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/general-error"},"example":{"type":"https://map.api.dtn.com/v1/error-details/unauthenticated","title":"unauthorized","detail":"Bearer token either not provided or unauthorized.","status":401,"instance":"urn:dtn:maps:api:catalog:requestId:123e4567-e89b-12d3-a456-426614176000"}}}},"geographic-coordinates":{"description":"successful operation","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/geographic-coordinates"}}}},"geographic-feature":{"description":"successful operation","headers":{"X-Request-ID":{"$ref":"#/components/headers/x-request-id"},"Content-Encoding":{"$ref":"#/components/headers/content-encoding"},"Content-Language":{"$ref":"#/components/headers/content-language"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/geographic-feature"}}}}},"securitySchemes":{"clientCredentials":{"type":"oauth2","x-receive-token-in":"request-body","flows":{"clientCredentials":{"tokenUrl":"https://api.auth.dtn.com/v1/tokens/authorize"}},"description":"# Using DAIS for M2M/API Auth\nYou have been given a Client ID and a Client Secret, which are used to request a DTN Access Token. DTN Access Tokens are required when making calls to each and every DTN API endpoint. The following information provides additional details on these tokens and how they are generated.\n## What is an Access Token and how is it different from an API Key?\nAn API Key is a random string of characters that an API uses to authorize whether or not a calling client has approved access to an endpoint. These keys are a non-standard approach to API authorization and are generally issued on a per-API basis.\n\nAn Access Token is also a string of characters but is a base-64 encoded JavaScript Object Notation Web Token, or JWT. JWTs are a widely accepted standard that use OAuth concepts and approaches. \n\nBoth API Keys and Access Tokens are used in an Authorization Request Header as a Bearer, meaning there is no difference in where you put this string of characters when you make calls to DTN APIs.\n## How to generate an Access Token?\nWhen requested, an Access Token is generated for your specific Client (ID/Secret) and for a specific API. The DTN Auth and Identity Service (DAIS) generates new Access Tokens for your client. The DAIS endpoint is `POST https://api.auth.dtn.com/v1/tokens/authorize`.\n\nThis endpoint takes two Header parameters:\n * `Content-Type: application/json`\n * `Accept: application/json`\n\nThis endpoint takes four parameters in the Request Body:\n * `grant_type`: this should always be client_credentials for generating machine-to-machine tokens.\n * `client_id`: this is the Client ID or Application ID using the token and is given to you by DTN's Identity Team. This ID will never change for your client/application.\n * `client_secret`: this is the Client Secret that is associated with the Application ID and is given to you by DTN's Identity Team. This key is subject to rotation for security purposes but always with the client's knowledge.\n * `audience`: this is the API for which this Access Token will be used. For the DTN Map Tile API, you need to use the following audience: https://map.api.dtn.com\n\nYou can use this CURL command template as a reference for obtaining an access token:\n ```\n curl --location --request POST 'https://api.auth.dtn.com/v1/tokens/authorize' \\\n--header 'Accept: application/json' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n\"grant_type\": \"client_credentials\",\n\"client_id\": \"insert your client id here\",\n\"client_secret\": \"insert your client secret here\",\n\"audience\": \"insert your audience here\"\n}' \n ```\n\n*This document, for demonstration purposes, supplies a client_id and client_secret in all code examples. This client/application is for a fictitious API and cannot be used in practice to gain unauthorized access to any other DTN API.*\nUpon generating a new Access Token, you should receive an HTTP Response from DAIS similar to this:\n ```\n {\n \"data\": {\n \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InpfX21pZW13NGhoTmdvQWQxR3N6ciJ9.eyJodHRwczovL2F1dGguZHRuLmNvbS9jdXN0b21lcklkIjoiMTIzNDU2Nzg5MERlbW8iLCJodHRwczovL2F1dGguZHRuLmNvbS9wcm9kdWN0Q29kZSI6IkRlbW9BcGlQIiwiaHR0cHM6Ly9hdXRoLmR0bi5jb20vcmVxdWVzdGVySXAiOiIxOC4yMTMuMTc0LjI3IiwiaHR0cHM6Ly9hdXRoLmR0bi5jb20vcnBzIjoiMTAwIiwiaHR0cHM6Ly9hdXRoLmR0bi5jb20vdGllciI6IkJhc2ljIiwiaHR0cHM6Ly9hdXRoLmR0bi5jb20vcXVvdGEiOiI5OTk5OTkiLCJpc3MiOiJodHRwczovL2lkLmF1dGguZHRuLmNvbS8iLCJzdWIiOiJuZnlPM0tpS1BSOE4wREtSNUNMOGpTOUdGQkNEZXlGTUBjbGllbnRzIiwiYXVkIjoiaHR0cHM6Ly9kZW1vLWFwaS5hdXRoLmR0bi5jb20vIiwiaWF0IjoxNjU2MDk5MDY4LCJleHAiOjE2NTYwOTkxNTgsImF6cCI6Im5meU8zS2lLUFI4TjBES1I1Q0w4alM5R0ZCQ0RleUZNIiwic2NvcGUiOiJyZWFkOmRlbW8gY3JlYXRlOmRlbW8gdXBkYXRlOmRlbW8iLCJndHkiOiJjbGllbnQtY3JlZGVudGlhbHMiLCJwZXJtaXNzaW9ucyI6WyJyZWFkOmRlbW8iLCJjcmVhdGU6ZGVtbyIsInVwZGF0ZTpkZW1vIl19.0VHdyp1w9PPFVI0FPheAwuKZwb5C25rwP-LPMXcSNoRmouvga1DZtNLA67ZzE_sAlc_VpaDRr6daLKr_Alw4347mw9sdjP8wKR27kCZa9JZK5PGQMmXHscATbzBEJYpCPklfyGaajgymqTBGnedcv8F0UvlRzQPsFeRPnVoX7BWOSXpMbyToGiXWkQLBQT7r96KAmLZOPJFZspPtjw-wH2mSL2WNa_nkB4j5vMGhGxlKiNRsKb30TH_WAel2hsxNlcPK3XHCmrMTYsNnu7HNqOTMn2i0__0rvBrhSWEw-_grqQDmWFJuWd7Qhi1q81AaJcdqgoSa_efz93QFclJUNw\",\n \"scope\": \"read:demo create:demo update:demo\",\n \"expires_in\": 90,\n \"token_type\": \"Bearer\"\n },\n \"meta\": {\n \"date_time\": \"2022-06-24T19:09:42.963Z\",\n \"name\": \"v1.tokens.authorize\",\n \"uuid\": \"ee6f9feb-dcf8-4421-a6fd-efd6beabdaa9\",\n \"start_timestamp\": 1656097782509,\n \"end_timestamp\": 1656097782963,\n \"execution_time\": 454\n }\n }\n ```\nLooking at this Response, you will see:\n * `access_token`: contains the JWT Access Token string you will use as your Bearer token.\n * `scope`: contains the scopes that this Access Token gives you permissions to access.\n * `expires_in`: contains the length of time before this Access Token will expire, in seconds.\n * `token_type`: verifies that this Access Token should be used as a Bearer token.\n\n## How to use an Access Token after one is generated?\nOnce a new Access Token is obtained, it is used in each call to a DTN API endpoint as a Bearer token in an Authorization Request Header. For example:\n ```\n Header: 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InpfX21pZW13NGhoTmdvQWQxR3N6ciJ9.eyJodHRwczovL2F1dGguZHRuLmNvbS9jdXN0b21lcklkIjoiMTIzNDU2Nzg5MERlbW8iLCJodHRwczovL2F1dGguZHRuLmNvbS9wcm9kdWN0Q29kZSI6IkRlbW9BcGlQIiwiaHR0cHM6Ly9hdXRoLmR0bi5jb20vcmVxdWVzdGVySXAiOiIxOC4yMTMuMTc0LjI3IiwiaHR0cHM6Ly9hdXRoLmR0bi5jb20vcnBzIjoiMTAwIiwiaHR0cHM6Ly9hdXRoLmR0bi5jb20vdGllciI6IkJhc2ljIiwiaHR0cHM6Ly9hdXRoLmR0bi5jb20vcXVvdGEiOiI5OTk5OTkiLCJpc3MiOiJodHRwczovL2lkLmF1dGguZHRuLmNvbS8iLCJzdWIiOiJuZnlPM0tpS1BSOE4wREtSNUNMOGpTOUdGQkNEZXlGTUBjbGllbnRzIiwiYXVkIjoiaHR0cHM6Ly9kZW1vLWFwaS5hdXRoLmR0bi5jb20vIiwiaWF0IjoxNjU2MDk5MDY4LCJleHAiOjE2NTYwOTkxNTgsImF6cCI6Im5meU8zS2lLUFI4TjBES1I1Q0w4alM5R0ZCQ0RleUZNIiwic2NvcGUiOiJyZWFkOmRlbW8gY3JlYXRlOmRlbW8gdXBkYXRlOmRlbW8iLCJndHkiOiJjbGllbnQtY3JlZGVudGlhbHMiLCJwZXJtaXNzaW9ucyI6WyJyZWFkOmRlbW8iLCJjcmVhdGU6ZGVtbyIsInVwZGF0ZTpkZW1vIl19.0VHdyp1w9PPFVI0FPheAwuKZwb5C25rwP-LPMXcSNoRmouvga1DZtNLA67ZzE_sAlc_VpaDRr6daLKr_Alw4347mw9sdjP8wKR27kCZa9JZK5PGQMmXHscATbzBEJYpCPklfyGaajgymqTBGnedcv8F0UvlRzQPsFeRPnVoX7BWOSXpMbyToGiXWkQLBQT7r96KAmLZOPJFZspPtjw-wH2mSL2WNa_nkB4j5vMGhGxlKiNRsKb30TH_WAel2hsxNlcPK3XHCmrMTYsNnu7HNqOTMn2i0__0rvBrhSWEw-_grqQDmWFJuWd7Qhi1q81AaJcdqgoSa_efz93QFclJUNw'\n ```\n\n## Deconstructing the Access Token\nA DTN Access Token carries information within its JWT Body that is available on every API call. By deconstructing the JWT token, our Access Tokens will resemble:\n ```\n {\n \"https://auth.dtn.com/customerId\": \"1234567890Demo\",\n \"https://auth.dtn.com/productCode\": \"DemoApiP\",\n \"https://auth.dtn.com/requesterIp\": \"18.213.174.27\",\n \"https://auth.dtn.com/rps\": \"100\",\n \"https://auth.dtn.com/tier\": \"Basic\",\n \"https://auth.dtn.com/quota\": \"999999\",\n \"iss\": \"https://id.auth.dtn.com/\",\n \"sub\": \"nfyO3KiKPR8N0DKR5CL8jS9GFBCDeyFM@clients\",\n \"aud\": \"https://demo-api.auth.dtn.com/\",\n \"iat\": 1656099068,\n \"exp\": 1656099158,\n \"azp\": \"nfyO3KiKPR8N0DKR5CL8jS9GFBCDeyFM\",\n \"scope\": \"read:demo create:demo update:demo\",\n \"gty\": \"client-credentials\",\n \"permissions\": [\n \"read:demo\",\n \"create:demo\",\n \"update:demo\"\n ]\n }\n ```\n### Description of Claims\n\n | Claim | Type | Description |\n | -----------------------------------| --------------------------------------------| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n | `https://auth.dtn.com/customerId` | String | Custom DTN claim containing the Customer ID found in the DTN Order Management/Salesforce system associated with this token. |\n | `https://auth.dtn.com/productCode` | String | Custom DTN claim containing the Identity product code associated with this token. |\n | `https://auth.dtn.com/requesterIp` | String | Custom DTN claim containing the IP address of the requesting client. |\n | `https://auth.dtn.com/rps` | String | Custom DTN claim containing the maximum rate per second this customer is authorized to utilize. |\n | `https://auth.dtn.com/tier` | String | Custom DTN claim containing the data tier the customer purchased for the requested access. |\n | `https://auth.dtn.com/quota` | String | Custom DTN claim containing the maximum yearly quota the customer purchased for calling DTN endpoints for the specific product. |\n | `iss` | String (URI) | The Security Token Service (STS) that issues and returns the token. If this value is not from `https://id.auth.dtn.com/`, the token should not be considered trusted. |\n | `sub` | String (URI) | The principle about which the token asserts information (the User ID or Client ID within the Identity Provider). A User ID will start with a prefix of `auth0\\|`, while the Client ID will end with the suffix `@clients`. |\n | `aud` | String \\| Array (Strings) (URI \\| [URI, …]) | Identifies the intended recipient(s) of the token – its audience. The token should be rejected if the audience does not contain values expected by the calling application. |\n | `iat` | Number (Timestamp) | “Issued At” indicates when the authentication for this token occurred. |\n | `exp` | Number (Timestamp) | The “expiration time” on or after which the JWT must not be accepted for processing. |\n | `azp` | String | The application/client ID of the client using the token. The application can cat as itself or on behalf of a user. |\n | `gty` | String (Space-delimited) | The grant type that was used to request the token – not an RFC 7519 registered claim (Auth0-specific). |\n | `permissions` | Array (Strings) | The grant type that was used to request the token – not an RFC 7519 registered claim (Auth0-specific). |\n\n "}},"schemas":{"general-error":{"type":"object","properties":{"detail":{"type":"string","description":"A human-readable description of the specific error."},"type":{"type":"string","format":"uri","description":"A URL to a document describing the error condition."},"title":{"type":"string","description":"A short, human-readable title for the general error type."},"status":{"type":"number","description":"HTTP status code"},"instance":{"type":"string","format":"uri","description":"URL with the id for the specific error; this will often point to an error log for that specific response."}},"additionalProperties":true},"catalog":{"type":"object","properties":{"groups":{"type":"array","description":"layer groups","items":{"$ref":"#/components/schemas/group"}},"layers":{"type":"array","description":"full catalog of layers","items":{"$ref":"#/components/schemas/layer"}}}},"coordinate":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}}},"group":{"type":"object","properties":{"id":{"type":"string","example":"contoured-radar"},"label":{"type":"string","example":"Contoured radar layers"},"parent":{"type":"string","format":"uri","description":"Reference to a parent group, null indicates root level.","nullable":true,"example":null}}},"hexColor":{"type":"string","pattern":"^#([a-fA-F0-9]{8})$","example":null,"description":"Hexadecimal color defined by 8 (hex triplet + alpha) characters."},"image-request":{"type":"object","required":["overlays"],"properties":{"overlays":{"description":"List of overlays to render, it can be a mix of DTN layers and other custom MapBox data driven styles","type":"array","minItems":0,"maxItems":10,"items":{"type":"object","required":["tileSetId"],"properties":{"layerId":{"type":"string","description":"LayerId from DTN's catalog."},"opacity":{"type":"number","description":"Applies to DTN layers, controls its opacity, will be ignored if the style property is defined","minimum":0,"maximum":1,"example":0.8},"tileSetId":{"type":"string","description":"Applies to all DTN layers. It has to match a tileSetId returned by the timestamp endpoint. It indicates the moment in time the layerId is valid for","example":"46c63648-397c-469d-97a7-622825c58437"},"filters":{"type":"array","description":"Applies to DTN layers for which there are filters defined. Will be ignored if the style property is defined","items":{"type":"string"}},"style":{"description":"Style configuration for the overlay","oneOf":[{"type":"object","description":"Mapbox data driven style. Allows to provide custom overlays or override the default style for a given DTN layer","additionalProperties":true},{"type":"string","description":"URL for a mapbox data driven style","format":"uri"}]},"insertBeforeLayerId":{"type":"string","description":"Layer ID associated with either the specified base map or with another layer ID in the overlay list which determines the placement of the overlay. Allows the integration of weather layers with the base map or the reorganization of overlays on the map."},"visibilityOverrides":{"type":"array","description":"Applies to either DTN layers or custom style defined in the overlay. It allows to override the layout visibility property for the data driven style by indicating pairs of settings like \"layerId:true|false:\" to modify visibility of selected layers. Wildcards can be used in the layerId.","items":{"type":"string"},"example":["land:false","*label*:false"]},"paletteOverride":{"type":"string","description":"Value-color pair list separated by semicolons, denoting the custom color palette for the given layer.
\nValues may be a string or a number. When the value is a number, the decimal separator (if any) must be a \".\" (dot).
\nColors may be hexadecimal color codes, or in RGB/RGBA notation. When using RGBA notation, the alpha value must be a float between 0 and 1.\n","example":"0:#FF0000;10:rgb(0,255,0);20:rgba(0,0,255,0.5);30:#00FF0080;40.0:#FFF;50.1:#000F"},"smoothingProfile":{"type":"string","description":"The smoothing profile to use when rendering the layer.
\nAvailable values are none, low, medium, high. Defaults to `none` if not specified.\n"}}}}},"example":{"overlays":[{"layerId":"sevwx-nws-alert-zones","opacity":0.8,"tileSetId":"46c63648-397c-469d-97a7-622825c58437","filters":["nws-coastal-flood-alerts","nws-winter-alerts"]},{"layerId":"fcst-manta-mean-sea-level-pressure-isolines","tileSetId":"46c63648-397c-469d-97a7-622825c58437","opacity":0.5,"insertBeforeLayerId":"admin-0-boundary"},{"style":{"version":8,"name":"Custom style with GeoJSON","sources":{"geojson":{"type":"geojson","data":{"type":"Feature","properties":{},"geometry":{"type":"Point","coordinates":[-77.0323,38.9131]}}}},"layers":[{"id":"circle","type":"circle","source":"geojson","paint":{"circle-color":"red"}}]}},{"style":"mapbox://styles/dtn-mapbox/ckdj45sf20erl1intlu0zoonf","visibilityOverrides":["*label*:false"]}]}},"layer":{"type":"object","properties":{"id":{"type":"string","example":"eu-contoured-radar"},"label":{"type":"string","example":"European contoured radar"},"group":{"type":"string","format":"uri","example":"contoured-radar","description":"group the layer belongs to"}}},"legend-list":{"type":"array","items":{"$ref":"#/components/schemas/legend"}},"legend":{"type":"object","required":["label","colorTableType","colorTable"],"properties":{"label":{"type":"string","description":"Text describing the legend."},"unit":{"type":"string","description":"When available, units used in each of the values in the colorTable."},"colorTableType":{"type":"string","enum":["range","discrete","category"],"description":"Indicates the type of elements in the color table, describing ranges, discrete values or categories."},"colorTable":{"type":"array","description":"List of items of the type specified by colorTableType. Elements define the colors used for each possible value in the tile.","items":{"anyOf":[{"$ref":"#/components/schemas/legendColorTableCategoryItem"},{"$ref":"#/components/schemas/legendColorTableValueItem"}]}}},"example":{"label":"Radar intensity","unit":"mm/h","colorTableType":"range","colorTable":[{"color":"#00000000"},{"color":"#B7E0A9","value":0.1},{"color":"#5CA743","value":0.5},{"color":"#468936","value":1.1},{"color":"#2E6A2E","value":2.1},{"color":"#2A5525","value":3},{"color":"#ECCF49","value":4.9},{"color":"#EB7127","value":9.8},{"color":"#D3182D","value":19},{"color":"#B8305C","value":34},{"color":"#A6459A","value":61},{"color":"#7C3090","value":155}]}},"legendColorTableBaseItem":{"type":"object","required":["color"],"properties":{"color":{"$ref":"#/components/schemas/hexColor"}}},"legendColorTableCategoryItem":{"allOf":[{"$ref":"#/components/schemas/legendColorTableBaseItem"},{"type":"object","required":["category"],"properties":{"category":{"type":"string","nullable":true,"description":"Text value to map against a color."}}}]},"legendColorTableValueItem":{"allOf":[{"$ref":"#/components/schemas/legendColorTableBaseItem"},{"type":"object","properties":{"value":{"type":"number","nullable":true,"description":"Numeric value to map against a color. When used in a range, this indicates the lower boundary of a range. When it is not present, it covers all possible values before/after the adjacent item of the list."}}}]},"metadata":{"type":"object","properties":{"id":{"type":"string","example":"eu-contoured-radar-1km"},"boundingBox":{"type":"object","properties":{"northEast":{"$ref":"#/components/schemas/coordinate"},"southWest":{"$ref":"#/components/schemas/coordinate"}},"example":{"northEast":{"lat":-7.797536999999369,"lng":165.1015249741622},"southWest":{"lat":-46.62086579586337,"lng":102.56782159095326}}},"maxZoom":{"type":"integer","description":"Highest zoom level available for the given layer.","example":6},"minZoom":{"type":"integer","description":"Lowest zoom level available for the given layer.","example":0},"label":{"type":"string","description":"Layer label, a text in between the id and the description.","example":"European contoured radar 1km."},"layerType":{"type":"string","enum":["vector","raster"],"description":"Indicates the type of layer.","example":"vector"},"numArchiveDays":{"type":"integer","nullable":true,"description":"Number of archive days configured for the layer. Null for static layers.","example":7},"oldestDataAvailable":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp for the oldest data available for the layer in ISO 8601, in UTC. Null when not available.","example":"2021-01-01T00:00:00Z"},"dataType":{"type":"string","enum":["observation","forecast","static"],"description":"Indicates whether the layer delivers observations, forecasts, or a static tile set.","example":"forecast"},"supportedEPSGs":{"type":"array","description":"Supported EPSG codes to be used against the static image API.\nExample values:\n - 3857 - Web Mercator\n - 3031 - Antarctic Polar Stereographic\n - 3995 - Arctic Polar Stereographic\n","items":{"type":"number","example":"3857, 3031, 3995"}},"formatsAvailable":{"type":"array","description":"Indicates the different media types available in the tiles endpoint, either through the Accept header or file extension.\nExample values with their corresponding extension:\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Accept headerFile extension
image/pngpng
image/webpwebp
image/tifftiff
application/x-protobufpbf
\n","items":{"type":"string","example":"image/png, image/webp, application/x-protobuf"}},"supportsOffInterval":{"type":"boolean","description":"Indicates whether the forceOffInterval attribute can be used against the timestamps endpoint to force it return the most recent timestamp available without having to wait until the end of the interval."},"parameters":{"type":"object","description":"When available, list parameters to control the data being displayed in the map.","properties":{"definitions":{"type":"array","items":{"$ref":"#/components/schemas/metadata-layer-parameter-definition"}},"instances":{"type":"array","items":{"$ref":"#/components/schemas/metadata-layer-parameter-instance"}}}},"supportsPaletteOverride":{"type":"boolean","description":"Indicates whether the default color palette can be overridden by the user using the paletteOverride parameter."},"supportsRasterSmoothing":{"type":"boolean","description":"Indicates whether native raster layers can be smoothed using the smoothingProfile parameter."}}},"mapbox-style":{"type":"object","additionalProperties":true,"example":{"version":8,"layers":{"fill-opacity":1,"source-layer":"geojsonLayer","type":"fill","paint":{"fill-color":["interpolate",["linear"],["get","value"],77,"#B7E0A9",100,"#5CA743",110,"#468936",119,"#2E6A2E",124,"#2A5525",131,"#ECCF49",141,"#EB7127",150,"#D3182D",158,"#B8305C",166,"#A6459A",179,"#7C3090"]}}}},"style":{"type":"object","properties":{"id":{"type":"string","example":"default"},"label":{"type":"string","example":"Color scale"},"mapBoxStyle":{"$ref":"#/components/schemas/mapbox-style"},"filters":{"type":"array","items":{"$ref":"#/components/schemas/filter"}}}},"filter":{"type":"object","properties":{"id":{"type":"string","example":"nws-tropical-bulletin"},"label":{"type":"string","example":"NWS Tropical Bulletins"},"description":{"type":"string","example":"Only display Flash Floods and Heat weather bulletins"},"query":{"type":"array","description":"Generic array structure supporting complex data-driven style filters. Can contain nested arrays, strings, numbers, or objects according to the filter requirements.","items":{},"example":["in",["GET","phenomena"],["literal",["HT","FF"]]]},"enabledByDefault":{"type":"boolean","example":false}}},"metadata-layer-parameter-definition":{"type":"object","properties":{"id":{"type":"string","nullable":false,"description":"Unique identifier across all parameter definitions in the system"},"label":{"type":"string","nullable":false,"description":"Human readable text describing the parameter"},"mandatory":{"type":"boolean","default":true,"nullable":false,"description":"Indicates whether the parameter is mandatory in those endpoints where layer parameters are required or supported"},"allowsMultiple":{"type":"boolean","default":false,"nullable":false,"description":"Indicates whether the same parameter can be repeated or have multiple values"}}},"metadata-layer-parameter-instance":{"type":"object","properties":{"definitionId":{"type":"string","nullable":false,"description":"The id of the parameter definition referenced by the parameter instance"},"default":{"description":"Indicates the value of the parameter being defaulted to, when not provided to those endpoints where parameters are supported or required","oneOf":[{"type":"string"},{"type":"number"}],"nullable":true},"values":{"description":"Values supported for this parameter, which may included references to other parameter definitions.","type":"array","items":{"$ref":"#/components/schemas/metadata-layer-parameter-value"}}}},"metadata-layer-parameter-value":{"type":"object","properties":{"value":{"anyOf":[{"type":"string"},{"type":"number"}]},"instances":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/metadata-layer-parameter-instance"}}}},"timestamp-wrapper":{"type":"object","properties":{"issued":{"type":"string","format":"date-time","description":"Issued datetime in ISO 8601, in UTC. Null when not available.","example":"2021-01-01T00:00:00Z"},"timestamps":{"type":"array","description":"List of timestamps in ISO 8601, in UTC.","items":{"$ref":"#/components/schemas/valid-time"}}},"example":{"issued":"2024-01-01T00:00:00Z","timestamps":[{"tileSetId":"0c1e8264-9434-4ea9-b576-cc6402b46e68","valid":"2024-01-01T00:00:00Z"},{"tileSetId":"47bb476a-d184-439c-93cd-149d68049521","valid":"2024-01-01T01:00:00Z"},{"tileSetId":"2c76c887-6ae3-49d3-a649-8c788259594e","valid":"2024-01-01T02:00:00Z"},{"tileSetId":"a52ffc09-3db5-4988-a67f-e37a7719e833","valid":"2024-01-01T03:00:00Z"}]}},"valid-time":{"type":"object","properties":{"tileSetId":{"type":"string","nullable":false,"description":"id to be used in tiles and image endpoints.","example":"46c63648-397c-469d-97a7-622825c58437"},"valid":{"type":"string","format":"date-time","nullable":false,"description":"Datetime in ISO 8601 for which the tile set is valid for, in UTC.","example":"2021-01-01T00:00:00Z"}}},"tooltip-feature":{"type":"object","properties":{"attributes":{"type":"array","items":{"$ref":"#/components/schemas/tooltip-feature-attribute"}}}},"tooltip-feature-attribute":{"type":"object","example":{"precipitationReflectivityDisplay":32,"precipitationReflectivityDisplayUnit":"dBZ","precipitationTypeDisplay":"Rain"}},"geographic-coordinates":{"type":"object","description":"Refer to the Mapbox Geocoding API docs: https://docs.mapbox.com/api/search/geocoding/#geocoding-response-object","example":{"type":"FeatureCollection","query":["11400","rupp","drive","burnsville","mn"],"features":[{"id":"address.8208114876077500","type":"Feature","place_type":["address"],"relevance":1,"properties":{"accuracy":"rooftop","mapbox_id":"dXJuOm1ieGFkcjo2NGJkZjUwMS0yMThhLTRiNTEtOWQ5Mi03ZTIyOTIzYzAwMWI="},"text":"Rupp Drive","place_name":"11400 Rupp Drive, Burnsville, MN 55337, United States","center":[-93.25637,44.79736],"geometry":{"type":"Point","coordinates":[-93.25637,44.79736]},"address":"11400","context":[{"id":"neighborhood.278490348","text":"Heart of the City"},{"id":"postcode.188780268","text":55337},{"id":"place.44173548","wikidata":"Q736586","text":"Burnsville"},{"id":"district.5801708","wikidata":"Q111694","text":"Dakota County"},{"id":"region.230636","short_code":"US-MN","wikidata":"Q1527","text":"Minnesota"},{"id":"country.8940","short_code":"us","wikidata":"Q30","text":"United States"}]}],"attribution":"NOTICE: © 2023 Mapbox and its suppliers. All rights reserved. Use of this data is subject to the Mapbox Terms of Service (https://www.mapbox.com/about/maps/). This response and the information it contains may not be retained. POI(s) provided by Foursquare."}},"geographic-feature":{"type":"object","description":"Refer to the Mapbox Geocoding API docs: https://docs.mapbox.com/api/search/geocoding/#geocoding-response-object","example":{"type":"FeatureCollection","query":[-93.25637,44.79736],"features":[{"id":"address.8208114876077500","type":"Feature","place_type":["address"],"relevance":1,"properties":{"accuracy":"rooftop","mapbox_id":"dXJuOm1ieGFkcjo2NGJkZjUwMS0yMThhLTRiNTEtOWQ5Mi03ZTIyOTIzYzAwMWI="},"text":"Rupp Drive","place_name":"11400 Rupp Drive, Burnsville, MN 55337, United States","center":[-93.25637,44.79736],"geometry":{"type":"Point","coordinates":[-93.25637,44.79736]},"address":"11400","context":[{"id":"neighborhood.278490348","text":"Heart of the City"},{"id":"postcode.188780268","text":55337},{"id":"place.44173548","wikidata":"Q736586","text":"Burnsville"},{"id":"district.5801708","wikidata":"Q111694","text":"Dakota County"},{"id":"region.230636","short_code":"US-MN","wikidata":"Q1527","text":"Minnesota"},{"id":"country.8940","short_code":"us","wikidata":"Q30","text":"United States"}]}],"attribution":"NOTICE: © 2023 Mapbox and its suppliers. All rights reserved. Use of this data is subject to the Mapbox Terms of Service (https://www.mapbox.com/about/maps/). This response and the information it contains may not be retained. POI(s) provided by Foursquare."}}},"requestBodies":{"image-request":{"description":"A JSON object Image request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/image-request"}}}}}}}