---
title: "XYZ tiles"
method: GET
path: "/tiles/{tilesId}/{z}/{x}/{y}"
tags: ["Tiles"]
---

# XYZ tiles

`GET /tiles/{tilesId}/{z}/{x}/{y}`

## Request

- Base URL: `https://api.maptiler.com`
- URL: `https://api.maptiler.com/tiles/{tilesId}/{z}/{x}/{y}`
- Auth: API key in query parameter `key`
- TypeScript: <https://skmtc.dev/maptiler/apis/maptiler-api-reference/docs/tiles/:tilesId/:z/:x/:y/get.ts> (a function with typed inputs; its response is checked against the schema)

The individual tiles. Can be used with various libraries to display the tiles (e.g. Leaflet, OpenLayers, ...). It's usually better (if possible) to use the TileJSON rather than using the tile URL directly.

## Response `200`

Tile of the tileset. The content type depends on the tileset format: `application/x-protobuf` for vector tiles, `image/png`, `image/jpeg` or `image/webp` for raster tiles, and `application/vnd.quantized-mesh` for terrain.

## Other responses

- `204`: Tile not present -- presumed empty (empty response)
- `400`: Out of bounds
- `403`: Key is missing, invalid or restricted
- `404`: The item does not exist

---

[API](https://skmtc.dev/maptiler/apis/maptiler-api-reference.md) - [All operations](https://skmtc.dev/maptiler/apis/maptiler-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/maptiler/apis/maptiler-api-reference/revisions/68ce3046fc1a?raw)
