---
title: "Coordinates API"
description: "Search coordinate systems and transform coordinates between different projections."
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Coordinates API

The MapTiler **Coordinates API** makes it possible to search map coordinate systems and transform coordinates from one to another. See the [intro to working with coordinate systems](https://docs.maptiler.com/guides/location-services/coordinates/) to learn about how it works and when it’s useful.

## How to use the API

-   Directly from any application, CLI, backend, pipeline.
-   Via the [Coordinates API client](https://docs.maptiler.com/client-js/#-coordinates) library, which wraps the API calls in ready-made functions for easier implementation in JavaScript.

Key

You need a **MapTiler API key** to use this service. [Get it here](https://cloud.maptiler.com/account/keys/) and [learn how to secure it](https://docs.maptiler.com/guides/credentials/api-key/#secure-key).

## Getting started

For practical guidance and sample API calls, see:

-   [Search coordinate systems](https://docs.maptiler.com/guides/location-services/coordinates/search-coordinate-systems)
-   [Transform coordinates](https://docs.maptiler.com/guides/location-services/coordinates/convert-coordinates)
-   [Transform coordinates in batch](https://docs.maptiler.com/guides/location-services/coordinates/convert-coordinates-in-batch)

* * *

The results provided by the Coordinates API are based on the EPSG database version 12.029.

## Coordinates API reference

  Scalar API Reference

-   [
    
    Introduction
    
    ](#description/introduction)
-   [
    
    Coordinates
    
    ](#tag/coordinates)
    
    Close Group - Coordinates
    
    -   [
        
        Search coordinate systems
        
        HTTP Method:  GET](#tag/coordinates/GET/coordinates/search/{query}.json)
    -   [
        
        Transform coordinates
        
        HTTP Method:  GET](#tag/coordinates/GET/coordinates/transform/{coordinates}.json)

[Powered by Scalar](https://www.scalar.com)

v1.0

OpenAPI 3.1.0

# MapTiler API

[Support](mailto:support@maptiler.com)

[](https://docs.maptiler.com/support/requests/)

[Terms of Service](https://www.maptiler.com/terms/)

Server

Server:https://api.maptiler.com

MapTiler API

## 

AuthenticationRequired

Selected Auth Type: key

<table class="mb-0 grid min-h-8 auto-rows-auto" role="presentation" style="grid-template-columns:1fr;"><tbody><tr class="group contents"><td class="box-content min-h-8 min-w-8 border-l-0 border-t border-b-0 border-r flex text-base/5 last:border-r-0 group-last:border-b-transparent p-0 m-0 relative max-h-[auto] group-[.alert]:bg-b-alert group-[.error]:bg-b-danger" style="" aria-label="Your own API key from https://cloud.maptiler.com/"><div class="group/summary flex gap-0.5 flex-row items-baseline auth-description bg-b-1 text-c-2 min-w-0 flex-1 px-3 py-1.25" style=""><div class="markdown line-clamp-(--markdown-clamp) markdown-summary truncate" style="--markdown-clamp:1;" controlled="false" modelvalue="false" truncated="false" id="scalar-refs-0-9"><p>Your own API key from <a href="https://cloud.maptiler.com/" rel="nofollow" target="_blank">https://cloud.maptiler.com/</a></p></div></div></td></tr><tr class="group contents"><td class="box-content max-h-8 min-h-8 min-w-8 border-l-0 border-b-0 border-r text-base/5 last:border-r-0 group-last:border-b-transparent p-0 m-0 relative flex border-t group-[.alert]:bg-b-alert group-[.error]:bg-b-danger" style="" data-v-a6f4752a=""><div class="text-c-1 flex items-center pr-0 pl-3" for="scalar-refs-0-10" data-v-a6f4752a=""><label for="scalar-refs-0-10">Name </label>:</div><div class="relative flex min-w-0 flex-1" data-v-a6f4752a=""><div id="scalar-refs-0-10" class="text-c-1 disabled:text-c-2 peer w-full min-w-0 border-none -outline-offset-1 code-input-lite group/code-input-lite peer relative w-full leading-[1.44] -outline-offset-1 has-[:focus-visible]:rounded-[4px] has-[:focus-visible]:outline code-input-lite--empty" data-v-4dfd05a3=""><div aria-autocomplete="list" class="code-input-lite__editor" contenteditable="true" data-placeholder="api-key" role="combobox" spellcheck="false" data-v-4dfd05a3=""></div></div></div><button aria-disabled="false" type="button" class="scalar-icon-button grid aspect-square cursor-pointer scalar-button-ghost bg-transparent text-c-2 active:text-c-1 hover:text-c-1 size-8 m-1 -outline-offset-2 rounded-lg -ml-.25 h-6 w-6 self-center p-1.25" style="" data-v-a6f4752a=""><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="currentColor" width="1em" height="1em" aria-hidden="true" role="presentation" class="size-full" style=""><g><path d="M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"></path></g></svg><span class="sr-only">Clear Value</span></button></td></tr><tr class="group contents"><td class="box-content max-h-8 min-h-8 min-w-8 border-l-0 border-t border-b-0 border-r text-base/5 last:border-r-0 group-last:border-b-transparent p-0 m-0 relative flex group-[.alert]:bg-b-alert group-[.error]:bg-b-danger" style="" data-v-a6f4752a=""><div class="text-c-1 flex items-center pr-0 pl-3" for="scalar-refs-0-11" data-v-a6f4752a=""><label for="scalar-refs-0-11">Value </label>:</div><div class="relative flex min-w-0 flex-1" data-v-a6f4752a=""><input placeholder="QUxMIFlPVVIgQkFTRSBBUkUgQkVMT05HIFRPIFVT" id="scalar-refs-0-11" autocomplete="off" class="text-c-1 disabled:text-c-2 peer w-full min-w-0 border-none px-2 py-1.25 -outline-offset-1 scalar-password-input" data-1p-ignore="" spellcheck="false" type="text" value="YOUR_MAPTILER_API_KEY" data-v-a6f4752a=""></div><button aria-disabled="false" type="button" class="scalar-icon-button grid aspect-square cursor-pointer scalar-button-ghost bg-transparent text-c-2 active:text-c-1 hover:text-c-1 size-8 m-1 -outline-offset-2 rounded-lg -ml-.25 h-6 w-6 self-center p-1.25" style="" data-v-a6f4752a=""><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="currentColor" width="1em" height="1em" aria-hidden="true" role="presentation" class="size-full" style=""><g><path d="M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"></path></g></svg><span class="sr-only">Clear Value</span></button><button aria-disabled="false" type="button" class="scalar-icon-button grid aspect-square cursor-pointer scalar-button-ghost bg-transparent text-c-2 active:text-c-1 hover:text-c-1 size-8 m-1 -outline-offset-2 rounded-lg -ml-.5 mr-1.25 h-6 w-6 self-center p-1.25" style="" data-testid="data-table-password-toggle" data-v-a6f4752a=""><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="currentColor" width="1em" height="1em" aria-hidden="true" role="presentation" class="size-full" style=""><g><path d="M247.31,124.76c-.35-.79-8.82-19.58-27.65-38.41C194.57,61.26,162.88,48,128,48S61.43,61.26,36.34,86.35C17.51,105.18,9,124,8.69,124.76a8,8,0,0,0,0,6.5c.35.79,8.82,19.57,27.65,38.4C61.43,194.74,93.12,208,128,208s66.57-13.26,91.66-38.34c18.83-18.83,27.3-37.61,27.65-38.4A8,8,0,0,0,247.31,124.76ZM128,192c-30.78,0-57.67-11.19-79.93-33.25A133.47,133.47,0,0,1,25,128,133.33,133.33,0,0,1,48.07,97.25C70.33,75.19,97.22,64,128,64s57.67,11.19,79.93,33.25A133.46,133.46,0,0,1,231.05,128C223.84,141.46,192.43,192,128,192Zm0-112a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Z"></path></g></svg><span class="sr-only">Show Password</span></button></td></tr></tbody></table>

Client Libraries

Shell

Ruby

Node.js

PHP

Python

MoreSelect from all clients

Shell Curl

## Coordinates

​Copy link

Coordinates Operations

-   get/coordinates/search/{query}.json
-   get/coordinates/transform/{coordinates}.json

### Search coordinate systems

​Copy link

Auth Required

Path Parameters

-   queryCopy link to query
    
    Type: string
    
    required
    
    Examples
    
    finland deprecated:\* kind:\*United Kingdommercator deprecated:1Finland kind:DATUMcode:4326
    
    Query string used to search the catalog. It accepts plain terms such as names of locations and key:value pairs for filtering.
    
    Following parameter values can be used:
    
    -   kind
        -   \* (All kinds)
        -   CRS (All coordinate reference systems - default)
            -   CRS-PROJCRS (Projected coordinate systems)
            -   CRS-GEOGCRS (Geodetic coordinate systems)
            -   CRS-GEOG3DCRS (Geodetic 3D coordinate systems)
            -   CRS-GCENCRS (Geocentric coordinate systems)
            -   CRS-VERTCRS (Vertical coordinate systems)
            -   CRS-ENGCRS (Engineering coordinate systems)
            -   CRS-COMPOUNDCRS (Compound coordinate systems)
            -   CRS-DRVDCRS (Derived coordinate systems)
        -   COORDOP (All operations)
            -   COORDOP-COPTRAN (Transformations)
            -   COORDOP-COPCONO (Compound operations)
            -   COORDOP-POIMOTO (Point motion operations)
            -   COORDOP-COPCON (Conversions)
        -   DATUM (All datums)
            -   DATUM-VERTDAT (Vertical datums)
            -   DATUM-ENGDAT (Engineering datums)
            -   DATUM-GEODDAT (Geodetic datums)
            -   DATUM-DYNGEODDA (Dynamic geodetic datums)
            -   DATUM-ENSEMDAT (Ensemble datum)
        -   ELLIPSOID (Ellipsoid)
        -   PRIMEM (Prime meridian)
        -   METHOD (Method / Projection)
        -   CS (Coordinate systems)
            -   CS-VERTCS (Vertical coordinate system)
            -   CS-SPHERCS (Spherical coordinate system)
            -   CS-CARTESCS (Cartesian coordinate system)
            -   CS-ELLIPCS (Ellipsoidal coordinate system)
            -   CS-AFFINE (Affine coordinate system)
            -   CS-ORDINAL (Ordinal coordinate system)
        -   AXIS (Axis)
        -   AREA (Area)
        -   UNIT (Unit)
            -   UNIT-ANGUNIT (Angle unit)
            -   UNIT-SCALEUNIT (Scale unit)
            -   UNIT-LENUNIT (Length unit)
            -   UNIT-TIMEUNIT (Time unit)
    -   code
        -   Full code of the resource
    -   trans
        -   Code of the transformation
    -   deprecated
        -   \* (Both active and deprecated)
        -   0 (active only - default)
        -   1 (deprecated only)
    

Query Parameters

-   limitCopy link to limit
    
    Type: integer
    
    min:  
    
    1
    
    max:  
    
    50
    
    Default
    
    10
    
    Maximum number of results returned
    
-   offsetCopy link to offset
    
    Type: integer
    
    min:  
    
    0
    
    Default
    
    0
    
    The starting position of returned list of results
    
-   transformationsCopy link to transformations
    
    Type: boolean
    
    Default
    
    false
    
    Show detailed transformations for each CRS
    
-   exportsCopy link to exports
    
    Type: boolean
    
    Default
    
    false
    
    Show exports in WKT and Proj4 notations
    

Responses

-   200
    
    application/json
    

Request Example for get/coordinates/search/_{query}_.json

Shell Curl

```curl
curl 'https://api.maptiler.com/coordinates/search/finland deprecated:* kind:*.json?key=YOUR_MAPTILER_API_KEY'
```

Copy

Copy

Test Request(get /coordinates/search/{query}.json)

Status: 200

Show Schema 

```json
{
  "results": [
    {
      "accuracy": 1,
      "area": "string",
      "bbox": [
        1
      ],
      "default_transformation": {
        "authority": "string",
        "code": 1
      },
      "deprecated": true,
      "exports": {
        "proj4": "string",
        "wkt": "string"
      },
      "id": {
        "authority": "string",
        "code": 1
      },
      "kind": "string",
      "name": "string",
      "transformations": [
        {
          "accuracy": 1,
          "area": "string",
          "bbox": [
            1
          ],
          "deprecated": true,
          "exports": {
            "proj4": "string",
            "wkt": "string"
          },
          "grids": [
            {
              "path": "string"
            }
          ],
          "id": {
            "authority": "string",
            "code": 1
          },
          "name": "string",
          "reversible": true,
          "target_crs": {
            "authority": "string",
            "code": 1
          },
          "unit": "string",
          "usable": true
        }
      ],
      "unit": "string"
    }
  ],
  "total": 1
}
```

JSONCopy

JSONCopy

### Transform coordinates

​Copy link

Auth Required

Path Parameters

-   coordinatesCopy link to coordinates
    
    Type: string
    
    required
    
    Example
    
    17,50;17,50,300
    
    List of coordinate pairs seperated by `;` delimeter (Max 50 pairs).
    

Query Parameters

-   s\_srsCopy link to s\_srs
    
    Type: integer
    
    Default
    
    4326
    
    Source CRS
    
-   t\_srsCopy link to t\_srs
    
    Type: integer
    
    Default
    
    4326
    
    Target CRS
    
-   opsCopy link to ops
    
    Type: string
    
    Example
    
    1623
    
    List of codes of operations seperated by a | (pipe) operator
    

Responses

-   200
    
    application/json
    

Request Example for get/coordinates/transform/_{coordinates}_.json

Shell Curl

```curl
curl 'https://api.maptiler.com/coordinates/transform/17,50;17,50,300.json?key=YOUR_MAPTILER_API_KEY'
```

Copy

Copy

Test Request(get /coordinates/transform/{coordinates}.json)

Status: 200

Show Schema 

```json
{
  "results": [
    {
      "x": 1,
      "y": 1,
      "z": 1
    }
  ],
  "transformer_selection_strategy": "string"
}
```

JSONCopy

JSONCopy

![](https://docs.maptiler.com/assets/img/open-api.png)

Using the OpenAPI Specification?

Get the [openapi.yaml](https://docs.maptiler.com/_data/cloud/api/openapi.yml)
