> ## 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 location

> One location: its address, opening times, each charger (EVSE) with its live status and connectors, the tariffs as the operator publishes them, and how busy it usually is.



## OpenAPI

````yaml api-reference/map/map-v1.openapi.json GET /locations/{id}
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:
  /locations/{id}:
    get:
      tags:
        - Map
      summary: Get a location
      description: >-
        One location: its address, opening times, each charger (EVSE) with its
        live status and connectors, the tariffs as the operator publishes them,
        and how busy it usually is.
      operationId: getLocation
      parameters:
        - name: id
          in: path
          required: true
          description: The location's id, from a pin's `ids` or a search result.
          schema:
            type: string
          example: remote-12
        - $ref: '#/components/parameters/IfNoneMatch'
      responses:
        '200':
          description: The location.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
            Cache-Control:
              $ref: '#/components/headers/CacheControl'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Location'
        '304':
          $ref: '#/components/responses/NotModified'
        '404':
          description: No such location on the map.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: No such location
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          description: The location can't be read right now. Try again later.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: Not available
components:
  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
  schemas:
    Location:
      type: object
      required:
        - id
        - name
        - address
        - postal_code
        - city
        - country
        - coordinates
        - time_zone
        - operator
        - opening_times
        - facilities
        - parking_type
        - evses
        - prices_include_vat
        - tariffs
      additionalProperties: false
      properties:
        id:
          type: string
        name:
          type:
            - string
            - 'null'
        address:
          type:
            - string
            - 'null'
        postal_code:
          type:
            - string
            - 'null'
        city:
          type:
            - string
            - 'null'
        country:
          type:
            - string
            - 'null'
          description: ISO 3166-1 alpha-3.
        coordinates:
          type: object
          required:
            - lat
            - lng
          additionalProperties: false
          properties:
            lat:
              type:
                - number
                - 'null'
            lng:
              type:
                - number
                - 'null'
        time_zone:
          type:
            - string
            - 'null'
          description: IANA time zone, such as `Europe/Amsterdam`.
        operator:
          type:
            - string
            - 'null'
          description: Who runs the location.
        opening_times:
          type:
            - object
            - 'null'
          description: >-
            OCPI's Hours, as the operator gives them: `twentyfourseven`,
            `regular_hours`, `exceptional_openings`, `exceptional_closings`.
        facilities:
          type: array
          items:
            type: string
          description: OCPI facilities, such as `SUPERMARKET`.
        parking_type:
          type:
            - string
            - 'null'
          description: OCPI parking type, such as `ON_STREET`.
        evses:
          type: array
          items:
            $ref: '#/components/schemas/Evse'
        prices_include_vat:
          type: boolean
          const: false
          description: >-
            Always false: prices are before VAT. A price component's `vat` is
            the percentage on top, when the operator gives it.
        tariffs:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Tariff'
          description: The connectors' tariffs, by id.
        out_of_order_ratio_30d:
          type: number
          minimum: 0
          maximum: 1
          description: >-
            The share of the last 30 days the connectors were out of order. Only
            once the location has two weeks of history.
        occupancy:
          type: array
          description: >-
            How busy the location usually is: 7 days, Monday first, of 24 hours
            in its own time zone. Each is the share of the working connectors
            that were occupied, `null` for an hour without data. Only once the
            location has two weeks of history.
          minItems: 7
          maxItems: 7
          items:
            type: array
            minItems: 24
            maxItems: 24
            items:
              type:
                - number
                - 'null'
              minimum: 0
              maximum: 1
    Error:
      type: object
      required:
        - error
      additionalProperties: false
      properties:
        error:
          type: string
    Evse:
      type: object
      required:
        - uid
        - evse_id
        - physical_reference
        - status
        - status_since
        - connectors
      additionalProperties: false
      properties:
        uid:
          type: string
        evse_id:
          type:
            - string
            - 'null'
          description: The id printed on the charger, such as `NL*GFX*EACE0673532*1`.
        physical_reference:
          type:
            - string
            - 'null'
          description: The number or name on the charger at the location.
        status:
          $ref: '#/components/schemas/EvseStatus'
        status_since:
          type:
            - string
            - 'null'
          format: date-time
        connectors:
          type: array
          items:
            $ref: '#/components/schemas/Connector'
    Tariff:
      type: object
      description: OCPI 2.2.1's Tariff as the operator publishes it, with these fields.
      required:
        - id
        - currency
        - elements
      additionalProperties: false
      properties:
        id:
          type: string
        currency:
          type: string
          description: ISO 4217, such as `EUR`.
        type:
          type: string
          enum:
            - AD_HOC_PAYMENT
            - PROFILE_CHEAP
            - PROFILE_FAST
            - PROFILE_GREEN
            - REGULAR
        elements:
          type: array
          description: >-
            OCPI's TariffElements: `price_components` (`type`, `price`, `vat`,
            `step_size`) and their `restrictions`.
          items:
            type: object
        min_price:
          type: object
          description: 'OCPI''s Price: `excl_vat` and `incl_vat`.'
        max_price:
          type: object
          description: 'OCPI''s Price: `excl_vat` and `incl_vat`.'
        start_date_time:
          type: string
          format: date-time
        end_date_time:
          type: string
          format: date-time
        last_updated:
          type: string
          format: date-time
    EvseStatus:
      type: string
      description: >-
        OCPI's status. On a tile, `AVAILABLE` counts as available; `CHARGING`,
        `BLOCKED` and `RESERVED` as occupied; the rest as out of order.
      enum:
        - AVAILABLE
        - BLOCKED
        - CHARGING
        - INOPERATIVE
        - OUTOFORDER
        - PLANNED
        - RESERVED
        - UNKNOWN
    Connector:
      type: object
      required:
        - id
        - standard
        - format
        - power_type
        - max_power_kw
        - tariff_ids
      additionalProperties: false
      properties:
        id:
          type:
            - string
            - 'null'
        standard:
          type:
            - string
            - 'null'
          description: >-
            OCPI's ConnectorType as the operator gives it, such as
            `IEC_62196_T2`.
        format:
          type:
            - string
            - 'null'
          enum:
            - SOCKET
            - CABLE
            - null
        power_type:
          type:
            - string
            - 'null'
          enum:
            - AC_1_PHASE
            - AC_2_PHASE
            - AC_2_PHASE_SPLIT
            - AC_3_PHASE
            - DC
            - null
        max_power_kw:
          type:
            - number
            - 'null'
        tariff_ids:
          type: array
          items:
            type: string
          description: Keys of the location's `tariffs`.
  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.