DTN

DTN Geocoder API

Returns location information or geographic coordinates from a geocoding service. Supports forward and reverse geocoding.

Operations 2

GET /geocoder Returns geographic coordinates of the provided search text. #
GET /reverse-geocoder Returns descriptive location information for the provided latitude/longitude. #

Documentation

📖
Documentation
https://devportal.dtn.com/catalog/Weather/dtn-weather-conditions-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Weather/dtn-observation-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Weather/dtn-precipitation-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Other%20APIs/financial-market-data/documentation
📖
Documentation
https://devportal.dtn.com/catalog/WebSocket/agency-bulletin-websocket-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Weather/dtn-agency-bulletin-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Weather/dtn-alerting-API/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Other%20APIs/dtn-astronomical-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Weather/dtn-climatology-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Other%20APIs/dtn-developer-portal-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Weather/dtn-energy-event-index-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Aviation/dtn-enhanced-flight-hazards-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Weather/dtn-lightning-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/WebSocket/dtn-lightning-websocket/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Aviation/dtn-metars-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Weather/dtn-map-tile-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Weather/dtn-marine-weather-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Aviation/dtn-notams-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Aviation/dtn-pireps-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Weather/pavement-conditions-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Weather/dtn-probabilistic-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Refined%20Fuels/dtn-refined-fuels-demand/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Weather/dtn-renewables-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Aviation/dtn-sigmets-airmets/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Marine%20and%20Offshore/dtn-shipping-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Agriculture/dtn-soil-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Weather/dtn-storm-impact-analytics/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Weather/dtn-storm-risk-analytics-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Aviation/dtn-tafs-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Weather/dtn-tropical-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/WebSocket/dtn-websocket-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Aviation/dtn-windsaloft-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Refined%20Fuels/digital-commerce-orders/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Refined%20Fuels/energy-digital-commerce-integrations-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Agriculture/farm-intel-api/documentation
📖
Documentation
https://devportal.dtn.com/catalog/Weather/radarscope-radar-products/documentation

Specifications

Other Resources

🔗
Reference
https://devportal.dtn.com/catalog/Weather/dtn-weather-conditions-api/documentation
🔗
Portal
https://devportal.dtn.com/
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-weather-conditions-api/postman-collection/2.2.0
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-weather-conditions-api/release-notes/2.2.0
🔗
Portal
https://api.weather.mg/
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-observation-api/postman-collection/2.0.0
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-observation-api/release-notes/2.0.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-precipitation-api/postman-collection/1.0.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/financial-market-data/postman-collection/1.0.2
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/agency-bulletin-websocket-api/release-notes/1.0.0
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-agency-bulletin-api/release-notes/2.0.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-astronomical-api/postman-collection/2.0.0
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-astronomical-api/release-notes/2.0.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-climatology-api/postman-collection/1.0.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-developer-portal-api/postman-collection/1.0.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-energy-event-index-api/postman-collection/1.0.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-enhanced-flight-hazards-api/postman-collection/1.10.2
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-enhanced-flight-hazards-api/release-notes/1.10.2
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-lightning-websocket/release-notes/1.0.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-metars-api/postman-collection/1.9.0
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-metars-api/release-notes/1.9.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-map-tile-api/postman-collection/2.0.16
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-map-tile-api/release-notes/2.0.16
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-marine-weather-api/postman-collection/1.0.0
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-marine-weather-api/release-notes/1.0.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-notams-api/postman-collection/1.10.1
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-notams-api/release-notes/1.10.1
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-pireps-api/postman-collection/1.9.0
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-pireps-api/release-notes/1.9.0
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/pavement-conditions-api/release-notes/2.0.2
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-probabilistic-api/postman-collection/1.0.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-renewables-api/postman-collection/1.0.0
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-renewables-api/release-notes/1.0.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-sigmets-airmets/postman-collection/1.9.0
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-sigmets-airmets/release-notes/1.9.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-soil-api/postman-collection/1.0.0
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-soil-api/release-notes/1.0.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-storm-impact-analytics/postman-collection/1.0.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-storm-risk-analytics-api/postman-collection/1.0.0
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-storm-risk-analytics-api/release-notes/1.0.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-tafs-api/postman-collection/1.9.0
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-tafs-api/release-notes/1.9.0
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-tropical-api/postman-collection/1.0.6
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-tropical-api/release-notes/1.0.6
🔗
Postman
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-windsaloft-api/postman-collection/1.9.0
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/dtn-windsaloft-api/release-notes/1.9.0
🔗
ReleaseNotes
https://dev-portal-api.prd.coreservices.zones.dtn.com/v1/apis/digital-commerce-orders/release-notes/1.0.0

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/dtn-geocoder-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

dtn-geocoder-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: '# Introduction

    DTN API for consuming mapping services


    # Map Tile API Playground

    A 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.

    Access the Map Tile API Playground [here](https://map.api.dtn.com/static/html/v2/map.html).


    If 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 Geocoder API
servers:
- url: https://map.api.dtn.com/v2
  description: Version 2 of our mapping API
security:
- clientCredentials: []
tags:
- name: Geocoder
  description: Returns location information or geographic coordinates from a geocoding service. Supports forward and reverse geocoding.
paths:
  /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'
components:
  responses:
    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
    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
    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'
    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
    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'
  parameters:
    lat:
      in: query
      name: lat
      description: 'Latitude that specifies the location being queried.

        '
      required: true
      schema:
        type: number
        example: 44.79736
    locale:
      in: query
      name: locale
      description: 'Specifies the desired language and country code for language translation and formatting conventions.<br/>

        Supported 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.<br/>

        Defaults to English (en-US) if unsupported locale is specified.<br/>

        <b>If provided, overrides the Accept-Language header.</b><br/>

        '
      schema:
        type: string
        pattern: ^(en|es)-[A-Z]{2}$
        default: en-US
      examples:
        en-*:
          description: English<br/>Sample values include `en-US`, `en-AU`, `en-GB`
        es-*:
          description: Spanish<br/>Sample values include `es-ES`, `es-US`
    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.

        '
      required: true
      schema:
        type: string
        example: 11400 Rupp Drive Burnsville MN
    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.

        '
      schema:
        type: array
        items:
          type: string
        example: us,ca
    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
    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.

        '
      schema:
        type: number
        example: 3
    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.

        '
      schema:
        type: array
        items:
          type: number
        example: -93.25637,44.79736,-92.997778,44.959167
    accept-json:
      in: header
      name: Accept
      required: true
      description: Indicates response media types that are acceptable.
      schema:
        type: string
        enum:
        - application/json
    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.

        '
      schema:
        type: array
        items:
          type: string
        example: country,region
    lng:
      in: query
      name: lng
      description: 'Longitude that specifies the location being queried.

        '
      required: true
      schema:
        type: number
        example: -93.25637
    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
    accept-language:
      in: header
      name: Accept-Language
      description: 'Specifies the desired language and country code for language translation and formatting conventions.<br/>

        Supported 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.<br/>

        Defaults to English (en-US) if unsupported locale is specified.<br/>

        '
      schema:
        type: string
        pattern: ^(en|es)-[A-Z]{2}$
        default: en-US
      examples:
        en-*:
          description: English<br/>Sample values include `en-US`, `en-AU`, `en-GB`
        es-*:
          description: Spanish<br/>Sample values include `es-ES`, `es-US`
    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.

        '
      schema:
        type: array
        items:
          type: number
        example: -93.25637,44.79736
  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
    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.'
  headers:
    content-language:
      description: Describe the language(s) intended for the audience.
      schema:
        type: string
        default: en-US
    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
  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  "