> ## Documentation Index
> Fetch the complete documentation index at: https://developer.plugchoice.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a tile

> A 512 px web mercator tile, numbered as XYZ map tiles are. Up to zoom 14 its locations are grouped into the cells of an 8 by 8 grid (`clusters`); from zoom 15 each location is a pin. Locations at the very same coordinates are one pin. With filters, a tile counts only the connectors that match and leaves out a location none of whose connectors do.



## OpenAPI

````yaml api-reference/map/map-v1.openapi.json GET /tiles/{z}/{x}/{y}
openapi: 3.1.0
info:
  title: Plugchoice Map API
  version: '1'
  description: >-
    Where Plugchoice's charge cards charge: the public locations of Plugchoice's
    roaming partners and Plugchoice's own, with their live status, prices and
    how busy they usually are. Public and read-only: no key, any origin.
servers:
  - url: https://roaming.plugchoice.com/map/v1
security: []
tags:
  - name: Map
paths:
  /tiles/{z}/{x}/{y}:
    get:
      tags:
        - Map
      summary: Get a tile
      description: >-
        A 512 px web mercator tile, numbered as XYZ map tiles are. Up to zoom 14
        its locations are grouped into the cells of an 8 by 8 grid (`clusters`);
        from zoom 15 each location is a pin. Locations at the very same
        coordinates are one pin. With filters, a tile counts only the connectors
        that match and leaves out a location none of whose connectors do.
      operationId: getTile
      parameters:
        - name: z
          in: path
          required: true
          description: The zoom, 0 to 22.
          schema:
            type: integer
            minimum: 0
            maximum: 22
          example: 12
        - name: x
          in: path
          required: true
          description: The column, 0 to 2^z - 1, from the west.
          schema:
            type: integer
            minimum: 0
          example: 2102
        - name: 'y'
          in: path
          required: true
          description: The row, 0 to 2^z - 1, from the north.
          schema:
            type: integer
            minimum: 0
          example: 1350
        - name: available
          in: query
          description: Only available connectors.
          schema:
            type: string
            enum:
              - '1'
              - '0'
              - 'true'
              - 'false'
        - name: power_type
          in: query
          description: Only AC or only DC connectors.
          schema:
            type: string
            enum:
              - AC
              - DC
        - name: connector
          in: query
          description: >-
            Only connectors of these OCPI standards, comma-separated or
            repeated: any of them.
          style: form
          explode: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ConnectorStandard'
          example:
            - IEC_62196_T2
            - IEC_62196_T2_COMBO
        - name: min_kw
          in: query
          description: Only connectors of at least this many kW.
          schema:
            type: number
            minimum: 0
            maximum: 10000
          example: 50
        - name: max_price
          in: query
          description: >-
            Only connectors whose price per kWh now, before VAT, is at most this
            many euros. A connector without a price doesn't match.
          schema:
            type: number
            minimum: 0
            maximum: 100
          example: 0.45
        - name: always_open
          in: query
          description: Only locations open 24/7.
          schema:
            type: string
            enum:
              - '1'
              - '0'
              - 'true'
              - 'false'
        - $ref: '#/components/parameters/IfNoneMatch'
      responses:
        '200':
          description: The tile.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            Cache-Control:
              $ref: '#/components/headers/CacheControl'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tile'
        '304':
          $ref: '#/components/responses/NotModified'
        '404':
          description: 'No such tile: the zoom is above 22, or x or y is outside it.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: No such tile
        '422':
          description: A filter is not valid; the error names it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: power_type is AC or DC
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    ConnectorStandard:
      type: string
      description: OCPI 2.2.1's ConnectorType.
      enum:
        - CHADEMO
        - CHAOJI
        - DOMESTIC_A
        - DOMESTIC_B
        - DOMESTIC_C
        - DOMESTIC_D
        - DOMESTIC_E
        - DOMESTIC_F
        - DOMESTIC_G
        - DOMESTIC_H
        - DOMESTIC_I
        - DOMESTIC_J
        - DOMESTIC_K
        - DOMESTIC_L
        - GBT_AC
        - GBT_DC
        - IEC_60309_2_single_16
        - IEC_60309_2_three_16
        - IEC_60309_2_three_32
        - IEC_60309_2_three_64
        - IEC_62196_T1
        - IEC_62196_T1_COMBO
        - IEC_62196_T2
        - IEC_62196_T2_COMBO
        - IEC_62196_T3A
        - IEC_62196_T3C
        - NEMA_5_20
        - NEMA_6_30
        - NEMA_6_50
        - NEMA_10_30
        - NEMA_10_50
        - NEMA_14_30
        - NEMA_14_50
        - PANTOGRAPH_BOTTOM_UP
        - PANTOGRAPH_TOP_DOWN
        - TESLA_R
        - TESLA_S
    Tile:
      type: object
      required:
        - clusters
        - pins
      additionalProperties: false
      properties:
        clusters:
          type: array
          description: >-
            Up to zoom 14, one per grid cell with locations. Always empty from
            zoom 15.
          items:
            $ref: '#/components/schemas/Cluster'
        pins:
          type: array
          items:
            $ref: '#/components/schemas/Pin'
      example:
        clusters:
          - - 52.09074
            - 5.12142
            - 14
            - 38
            - 20
            - 15
            - 3
        pins:
          - ids:
              - remote-12
            lat: 52.37403
            lng: 4.88969
            name: Station
            connectors: 2
            available: 1
            occupied: 1
            out_of_order: 0
            power_types:
              - AC
            max_power_kw: 22.1
            price_per_kwh: 0.39
    Error:
      type: object
      required:
        - error
      additionalProperties: false
      properties:
        error:
          type: string
    Cluster:
      type: array
      description: >-
        A grid cell's locations: `[lat, lng, locations, connectors, available,
        occupied, out_of_order]`, at their centroid.
      prefixItems:
        - type: number
          description: Latitude
        - type: number
          description: Longitude
        - type: integer
          minimum: 1
          description: Locations
        - type: integer
          minimum: 0
          description: Connectors
        - type: integer
          minimum: 0
          description: Available connectors
        - type: integer
          minimum: 0
          description: Occupied connectors
        - type: integer
          minimum: 0
          description: Out of order connectors
      minItems: 7
      maxItems: 7
    Pin:
      type: object
      required:
        - ids
        - lat
        - lng
        - name
        - connectors
        - available
        - occupied
        - out_of_order
        - power_types
        - max_power_kw
        - price_per_kwh
      additionalProperties: false
      properties:
        ids:
          type: array
          minItems: 1
          items:
            type: string
          description: The locations at this spot, for `GET /locations/{id}`. Usually one.
        lat:
          type: number
          description: Latitude, five decimals.
        lng:
          type: number
          description: Longitude, five decimals.
        name:
          type:
            - string
            - 'null'
          description: The first location's name.
        connectors:
          type: integer
          minimum: 0
        available:
          type: integer
          minimum: 0
        occupied:
          type: integer
          minimum: 0
        out_of_order:
          type: integer
          minimum: 0
        power_types:
          type: array
          items:
            type: string
            enum:
              - AC
              - DC
        max_power_kw:
          type:
            - number
            - 'null'
          description: The most powerful connector's kW.
        price_per_kwh:
          type:
            - number
            - 'null'
          description: >-
            The lowest price per kWh in euros, before VAT, of the tariff in
            effect now, as the operator publishes it to roaming partners. A
            driver pays what their charge card's provider charges. `null` when
            there is none in euros.
  parameters:
    IfNoneMatch:
      name: If-None-Match
      in: header
      description: >-
        The `ETag` of the answer you have. When it's still the same, the answer
        is an empty 304.
      schema:
        type: string
  headers:
    ETag:
      description: A tag of this answer, for `If-None-Match`.
      schema:
        type: string
      example: W/"9f2c1b7a4e6d0c38"
    CacheControl:
      description: 'Always `no-cache`: keep the answer, but ask again each time.'
      schema:
        type: string
        const: no-cache
  responses:
    NotModified:
      description: The answer is the same as your `If-None-Match`. No body.
    RateLimited:
      description: >-
        Too many requests from your IP address. No body; try again after
        `Retry-After`.
      headers:
        Retry-After:
          description: Seconds to wait.
          schema:
            type: integer
          example: 1

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.