openapi: 3.1.0 info: title: MapTiler Coordinates Geocoding API version: '1.0' description: "MapTiler API allows you to programmatically access all the data, maps, services, and resources available in your MapTiler account. \n\nAccess to your resources via MapTiler API is read-only, and therefore safe and well suited for public end-user applications. You can use it to add a map directly to your website, request map tiles, create an image with a location map for your business, search for addresses, and more. \n\nThe universal public API request format is:\n\n```\nhttps://api.maptiler.com/{METHOD}/{QUERY}.json?{PARAMS}&key=YOUR_MAPTILER_API_KEY_HERE\n```\n\n> [!KEY]\n> You need a **MapTiler API key** to use this service. [Get it here](https://cloud.maptiler.com/account/keys/){:target=\"_blank\" rel=\"noopener noreferrer\"} and [learn how to protect it](/guides/maps-apis/maps-platform/how-to-protect-your-map-key/).\n" termsOfService: https://www.maptiler.com/terms/ contact: name: Support email: support@maptiler.com url: https://docs.maptiler.com/support/requests/ premium: https://www.maptiler.com/support/ servers: - description: MapTiler API url: https://api.maptiler.com/ security: - key: [] tags: - name: Geocoding paths: /geocoding/{query}.json: parameters: - name: query in: path description: Place name to search. You can also use bare [POI category](https://docs.maptiler.com/cloud/api/geocoding/#PoiCategory) or mix it with a name to search for POIs of desired category, unless `poi` index is excluded. examples: place: value: Zurich summary: Search place name poi: value: restaurant mediterranean summary: Search POI category required: true schema: type: string - $ref: '#/components/parameters/bbox' - $ref: '#/components/parameters/proximity' - $ref: '#/components/parameters/language' - $ref: '#/components/parameters/country' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/types' - $ref: '#/components/parameters/excludeTypes' - $ref: '#/components/parameters/fuzzyMatch' - $ref: '#/components/parameters/autocomplete' - $ref: '#/components/parameters/worldview' get: summary: Search by name (forward) description: Forward geocoding (search by place name). tags: - Geocoding responses: '200': $ref: '#/components/responses/ok' '400': description: Query too long / Invalid parameters '403': $ref: '#/components/responses/403' /geocoding/{longitude},{latitude}.json: parameters: - name: longitude in: path example: 8.528509 required: true schema: type: number minimum: -180 maximum: 180 - name: latitude in: path example: 47.3774434 required: true schema: type: number minimum: -90 maximum: 90 - $ref: '#/components/parameters/language' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/types' - $ref: '#/components/parameters/excludeTypes' - $ref: '#/components/parameters/worldview' get: summary: Search by coordinates (reverse) description: Reverse geocoding (search by coordinates). tags: - Geocoding responses: '200': $ref: '#/components/responses/ok' '400': description: Query too long / Invalid parameters '403': $ref: '#/components/responses/403' /geocoding/{id}.json: parameters: - name: id in: path example: country.26561650 required: true schema: type: string pattern: ^(\S+)\.([0-9]+)$ description: Feature ID (found in response of forward or reverse geocoding) - $ref: '#/components/parameters/language' - $ref: '#/components/parameters/worldview' get: summary: Search by feature ID description: Search feature by its ID (`id`) as returned in forward or reverse geocoding response and return its full geometry. Note that the feature ID is not stable and it changes when the database is re-indexed. tags: - Geocoding responses: '200': $ref: '#/components/responses/ok' '400': description: Query too long / Invalid parameters '403': $ref: '#/components/responses/403' /geocoding/{queries}.json: parameters: - in: path name: queries description: Semicolon-separated list of queries. Semicolon `;` must be provided verbatim and not be URL-encoded. Each query may be forward, reverse or by feature ID. Maximum of 50 queries are supported. example: Paris;Berlin required: true schema: type: string - $ref: '#/components/parameters/bbox' - $ref: '#/components/parameters/proximity' - $ref: '#/components/parameters/language' - $ref: '#/components/parameters/country' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/types' - $ref: '#/components/parameters/excludeTypes' - $ref: '#/components/parameters/fuzzyMatch' - $ref: '#/components/parameters/autocomplete' - $ref: '#/components/parameters/worldview' get: summary: Batch geocoding API description: Perform geocoding of more than one request in a single API call. Check out the Batch Geocoding guide for an example. tags: - Geocoding responses: '200': description: Array of geocoding results where items are matching order of queries in the request. Every result is represented as FeatureCollection where every item is represented as a GeoJSON Feature content: application/json: schema: type: array items: $ref: '#/components/schemas/result' '400': description: Query too long / Invalid parameters '403': $ref: '#/components/responses/403' components: schemas: placeType: type: string title: PlaceType description: Check out the [descriptions and default values](https://docs.maptiler.com/cloud/api/geocoding/#PlaceTypeValues) of each of the PlaceType values enum: - continental_marine - country - major_landform - region - subregion - county - joint_municipality - joint_submunicipality - municipality - municipal_district - locality - neighbourhood - place - postal_code - address - road - poi bbox: example: - 5.9559 - 45.818 - 10.4921 - 47.8084 type: array title: BoundingBox prefixItems: - type: number minimum: -180 maximum: 180 description: minimal longitude - type: number minimum: -90 maximum: 90 description: minimal latitude - type: number minimum: -180 maximum: 180 description: maximal longitude - type: number minimum: -90 maximum: 90 description: maximal latitude featureProperties: title: FeatureProperties type: object additionalProperties: true properties: ref: description: (experimental) External reference of the feature used for debugging purposes. The exact format of this field may change without notice, and should not be relied on at the moment. type: string example: osm:r71525 country_code: type: string description: ISO 3166-1 alpha-2 country code of the feature example: fr kind: type: string description: (experimental) Kind of the feature enum: - road - road_relation - admin_area - place - street - virtual_street categories: type: array description: Array of [POI category](https://docs.maptiler.com/cloud/api/geocoding/#PoiCategory). Only available for `poi` type. Category values may change in the near future. minItems: 1 items: type: string example: restaurant feature_tags: type: object title: Feature tags description: (experimental) Feature tags, only available for `poi` type. They can include e.g. working hours, type of amenity or wheelchair access. additionalProperties: type: string place_designation: type: string title: Place designation description: (experimental) Additional information about the place. The main use case is to determine if the administrative area represents a town, a city or a village. This field is especially useful in cases, where a large city is a region, land or prefecture from administrative point of view (typical examples are Berlin and Tokyo). example: city required: - ref - country_code ip: type: string title: IP description: Server-side IP based geolocation const: ip commonProperties: title: CommonProperties type: object additionalProperties: true properties: id: description: Unique feature ID type: string example: municipality.46425 text: description: Localized feature name type: string example: Paris language: description: Query's primary ISO 639-1 language code type: string example: en patternProperties: ^text_(\w\w): type: string description: A string analogous to the `text` field that matches the query in the requested language. This field is only returned when multiple languages are requested using the `language` parameter, and will be present for each requested language. ^language_(\w\w): type: string description: A ISO 639-1 query's fallback language code. This field is only returned when multiple languages are requested using the `language` parameter, and will be present for each requested language. required: - id - text coordinates: example: - 8.528509 - 47.3774434 type: array title: Coordinates prefixItems: - type: number minimum: -180 maximum: 180 description: longitude - type: number minimum: -90 maximum: 90 description: latitude result: description: Search result represented by FeatureCollection where every item is represented as a GeoJSON Feature type: object title: SearchResults properties: type: type: string const: FeatureCollection features: description: Array of features found type: array title: Feature items: allOf: - $ref: '#/components/schemas/commonProperties' - type: object patternProperties: ^place_name_(\w\w): type: string description: A string analogous to the `place_name` field that matches the query in the requested language. This field is only returned when multiple languages are requested using the `language` parameter, and will be present for each requested language. properties: type: type: string const: Feature properties: description: Feature properties $ref: '#/components/schemas/featureProperties' geometry: anyOf: - type: object title: Point properties: type: type: string const: Point coordinates: $ref: '#/components/schemas/coordinates' required: - type - coordinates - type: object title: LineString properties: type: type: string const: LineString coordinates: minItems: 2 type: array items: $ref: '#/components/schemas/coordinates' required: - type - coordinates - type: object title: Polygon properties: type: type: string const: Polygon coordinates: type: array items: minItems: 4 type: array items: $ref: '#/components/schemas/coordinates' required: - type - coordinates - type: object title: MultiPoint properties: type: type: string const: MultiPoint coordinates: type: array items: $ref: '#/components/schemas/coordinates' required: - type - coordinates - type: object title: MultiLineString properties: type: type: string const: MultiLineString coordinates: type: array items: minItems: 2 type: array items: $ref: '#/components/schemas/coordinates' required: - type - coordinates - type: object title: MultiPolygon properties: type: type: string const: MultiPolygon coordinates: type: array items: type: array items: minItems: 4 type: array items: $ref: '#/components/schemas/coordinates' required: - type - coordinates - type: object title: GeometryCollection properties: type: type: string const: GeometryCollection geometries: type: array items: anyOf: - type: object title: Point properties: type: type: string const: Point coordinates: $ref: '#/components/schemas/coordinates' required: - type - coordinates - type: object title: LineString properties: type: type: string const: LineString coordinates: minItems: 2 type: array items: $ref: '#/components/schemas/coordinates' required: - type - coordinates - type: object title: Polygon properties: type: type: string const: Polygon coordinates: type: array items: minItems: 4 type: array items: $ref: '#/components/schemas/coordinates' required: - type - coordinates - type: object title: MultiPoint properties: type: type: string const: MultiPoint coordinates: type: array items: $ref: '#/components/schemas/coordinates' required: - type - coordinates - type: object title: MultiLineString properties: type: type: string const: MultiLineString coordinates: type: array items: minItems: 2 type: array items: $ref: '#/components/schemas/coordinates' required: - type - coordinates - type: object title: MultiPolygon properties: type: type: string const: MultiPolygon coordinates: type: array items: type: array items: minItems: 4 type: array items: $ref: '#/components/schemas/coordinates' required: - type - coordinates required: - type - geometries bbox: description: Bounding box of the original feature as `[w, s, e, n]` array $ref: '#/components/schemas/bbox' center: description: A `[lon, lat]` array of the original feature centeroid $ref: '#/components/schemas/coordinates' place_name: description: Formatted (including the hierarchy) and localized feature full name type: string matching_place_name: description: A string analogous to the `place_name` field that matches the query. This field is only returned to help you understand how the response aligns with the submitted query. type: string matching_text: description: A string analogous to the `text` field that matches the query. This field is only returned to help you understand how the response aligns with the submitted query. type: string place_type: description: An array of feature types describing the feature. Currently each feature has only single type but this may change in the future. type: array items: $ref: '#/components/schemas/placeType' place_type_name: type: array description: Localized type of the place name, matches `place_type` property. items: type: string relevance: description: Indicates how well the returned feature matches the user's query on a scale from 0 to 1. 0 means the result does not match the query text at all, while 1 means the result fully matches the query text. You can use the relevance property to remove results that don't fully match the query. type: number context: description: Feature hierarchy type: array title: Context items: allOf: - $ref: '#/components/schemas/featureProperties' - $ref: '#/components/schemas/commonProperties' address: description: Address number, if applicable type: string required: - type - properties - geometry - bbox - center - place_name - place_type - place_type_name - relevance query: description: Tokenized search query type: array items: type: string attribution: description: Attribution of the result type: string example: © MapTiler © OpenStreetMap contributors required: - type - features - query - attribution parameters: fuzzyMatch: schema: type: boolean default: true in: query name: fuzzyMatch required: false description: Set to `false` to disable fuzzy search. excludeTypes: schema: type: boolean default: false in: query name: excludeTypes required: false description: Set to `true` to use all available feature types except those specified in `types`. country: schema: type: array uniqueItems: true items: type: string example: sk,cz example: sk,cz in: query name: country required: false description: Limit search to specific country/countries. explode: false language: schema: type: array maxItems: 20 uniqueItems: true items: type: string example: en enum: - aa - ab - ae - af - ak - am - an - ar - as - av - ay - az - ba - be - bg - bh - bi - bm - bn - bo - br - bs - ca - ce - ch - co - cr - cs - cu - cv - cy - da - de - dv - dz - ee - el - en - eo - es - et - eu - fa - ff - fi - fj - fo - fr - fy - ga - gd - gl - gn - gu - gv - ha - he - hi - ho - hr - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - io - is - it - iu - ja - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ku - kv - kw - ky - la - lb - lg - li - ln - lo - lt - lu - lv - mg - mh - mi - mk - ml - mn - mr - ms - mt - my - na - nb - nd - ne - ng - nl - nn - 'no' - nr - nv - ny - oc - oj - om - or - os - pa - pi - pl - ps - pt - qu - rm - rn - ro - ru - rw - sa - sc - sd - se - sg - si - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - tg - th - ti - tk - tl - tn - to - tr - ts - tt - tw - ty - ug - uk - ur - uz - ve - vi - vo - wa - wo - xh - yi - yo - za - zh - zu example: de,en example: de,en in: query name: language required: false description: Prefer results in specific language specified as ISO 639-1 code. Only the first language code is used when prioritizing forward geocode results to be matched. If this query parameter is omited then Accept-Language HTTP header will be analyzed. If the parameter is provided but is empty then no language preference is made. explode: false worldview: schema: type: string example: ch enum: - default - auto - ch - us name: worldview required: false in: query description: 'Some of the geographical boundaries and names are disputed. When `worldview` option is selected, the Geocoding API responses will be aligned with the borders and names recognized by the selected country (US or Switzerland). This affects filtering by country, the context returned with the given feature and also some of the labels (e.g., Gulf of Mexico vs. Gulf of America). Special values include: `auto` - the worldview is determined by the location of the client, `default` - disputed areas are returned without country information, countries with disputed borders are returned without full geometry. ' example: ch default: default autocomplete: schema: type: boolean in: query name: autocomplete required: false description: Set to `true` to use autocomplete, `false` to disable autocomplete. default: true proximity: schema: anyOf: - $ref: '#/components/schemas/coordinates' - $ref: '#/components/schemas/ip' example: 8.528509,47.3774434 in: query name: proximity required: false description: A `[lon, lat]` array to use for biasing search results or the string `ip` to do server-side IP based geolocation. Specify to prefer results close to a specific location - features closer to the proximity value will be given priority over those further from the proximity value. explode: false types: schema: type: array uniqueItems: true items: $ref: '#/components/schemas/placeType' in: query name: types required: false description: Filter types of which features to return. If not specified, default configuration of API is used (see [PlaceTypeValues](https://docs.maptiler.com/cloud/api/geocoding/#PlaceTypeValues) for the list). In case of reverse geocoding if just a single type is specified, then multiple nearby features of the single type can be returned, otherwise single feature for every specified type (or default types) can be returned. bbox: schema: $ref: '#/components/schemas/bbox' example: 5.9559,45.818,10.4921,47.8084 in: query name: bbox required: false description: A `[w, s, e, n]` bounding box array to use for limiting search results. Only features inside the provided bounding box will be included. explode: false limit: schema: type: integer default: 5 minimum: 1 maximum: 10 in: query name: limit required: false description: Maximum number of results to return. For reverse geocoding with multiple types this must not be set or must be set to 1. responses: ok: description: Search result represented as FeatureCollection where every item is represented as a GeoJSON Feature content: application/json: schema: $ref: '#/components/schemas/result' '403': description: Key is missing, invalid or restricted securitySchemes: key: description: Your own API key from https://cloud.maptiler.com/ type: apiKey name: key in: query