Cariqa Stations API

The Stations API from Cariqa — 4 operation(s) for stations.

OpenAPI Specification

cariqa-stations-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Cariqa Connect Billing Details Stations API
  version: 1.0.0 (v1)
  description: OPENAPI schema of the Cariqa Connect API
servers:
- url: https://connect.cariqa.com
  description: Connect
- url: https://dev.connect.cariqa.com
  description: Connect Playground
tags:
- name: Stations
paths:
  /api/v1/stations/around/:
    get:
      operationId: stations_around_list
      description: List stations around
      summary: Get Stations Around
      parameters:
      - in: query
        name: connector_types
        schema:
          type: array
          items:
            enum:
            - CHADEMO
            - DOMESTIC_A
            - DOMESTIC_B
            - DOMESTIC_C
            - DOMESTIC_D
            - DOMESTIC_E
            - DOMESTIC_F
            - DOMESTIC_G
            - DOMESTIC_H
            - DOMESTIC_I
            - DOMESTIC_J
            - DOMESTIC_K
            - DOMESTIC_L
            - 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
            - TESLA_R
            - TESLA_S
            type: string
            description: '* `CHADEMO` - CHADEMO

              * `DOMESTIC_A` - DOMESTIC_A

              * `DOMESTIC_B` - DOMESTIC_B

              * `DOMESTIC_C` - DOMESTIC_C

              * `DOMESTIC_D` - DOMESTIC_D

              * `DOMESTIC_E` - DOMESTIC_E

              * `DOMESTIC_F` - DOMESTIC_F

              * `DOMESTIC_G` - DOMESTIC_G

              * `DOMESTIC_H` - DOMESTIC_H

              * `DOMESTIC_I` - DOMESTIC_I

              * `DOMESTIC_J` - DOMESTIC_J

              * `DOMESTIC_K` - DOMESTIC_K

              * `DOMESTIC_L` - DOMESTIC_L

              * `IEC_60309_2_single_16` - IEC_60309_2_single_16

              * `IEC_60309_2_three_16` - IEC_60309_2_three_16

              * `IEC_60309_2_three_32` - IEC_60309_2_three_32

              * `IEC_60309_2_three_64` - IEC_60309_2_three_64

              * `IEC_62196_T1` - IEC_62196_T1

              * `IEC_62196_T1_COMBO` - IEC_62196_T1_COMBO

              * `IEC_62196_T2` - IEC_62196_T2

              * `IEC_62196_T2_COMBO` - IEC_62196_T2_COMBO

              * `IEC_62196_T3A` - IEC_62196_T3A

              * `IEC_62196_T3C` - IEC_62196_T3C

              * `TESLA_R` - TESLA_R

              * `TESLA_S` - TESLA_S'
        description: List of connector types to filter stations
      - in: query
        name: distance
        schema:
          type: integer
          default: 100
        description: Radius to search stations (in meters).
      - in: query
        name: latitude
        schema:
          type: number
          format: double
        description: Latitude of the center of the search area.
        required: true
      - in: query
        name: longitude
        schema:
          type: number
          format: double
        description: Longitude of the center of the search area.
        required: true
      - in: query
        name: only_available
        schema:
          type: boolean
          default: false
        description: Whether to show only available stations
      - in: query
        name: only_partners
        schema:
          type: boolean
          default: false
        description: Whether to show only partner stations
      - in: query
        name: operators
        schema:
          type: array
          items:
            type: string
        description: List of partner operator names to filter stations
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      tags:
      - Stations
      security:
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedConnectAPIStationList'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetail'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: ''
  /api/v1/stations/details/:
    get:
      operationId: stations_details_retrieve
      description: Retrieve station details
      summary: Get Station Details
      parameters:
      - in: query
        name: id
        schema:
          type: string
          minLength: 1
        required: true
      - in: query
        name: type
        schema:
          enum:
          - evse_id
          - station_id
          type: string
          minLength: 1
        description: '* `evse_id` - evse_id

          * `station_id` - station_id'
        required: true
      tags:
      - Stations
      security:
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectAPIStation'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetail'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: ''
  /api/v1/stations/partners/:
    get:
      operationId: stations_partners_list
      description: Retrieve the list of partner names to use it for filtering
      summary: Partners list
      tags:
      - Stations
      security:
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConnectAPIPartnerFilterOperator'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: ''
        '423':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetail'
          description: ''
  /api/v1/stations/tile/:
    get:
      operationId: stations_tile_retrieve
      description: Fetch tile
      summary: Get Map Tile
      parameters:
      - in: query
        name: connector_types
        schema:
          type: array
          items:
            enum:
            - CHADEMO
            - DOMESTIC_A
            - DOMESTIC_B
            - DOMESTIC_C
            - DOMESTIC_D
            - DOMESTIC_E
            - DOMESTIC_F
            - DOMESTIC_G
            - DOMESTIC_H
            - DOMESTIC_I
            - DOMESTIC_J
            - DOMESTIC_K
            - DOMESTIC_L
            - 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
            - TESLA_R
            - TESLA_S
            type: string
            description: '* `CHADEMO` - CHADEMO

              * `DOMESTIC_A` - DOMESTIC_A

              * `DOMESTIC_B` - DOMESTIC_B

              * `DOMESTIC_C` - DOMESTIC_C

              * `DOMESTIC_D` - DOMESTIC_D

              * `DOMESTIC_E` - DOMESTIC_E

              * `DOMESTIC_F` - DOMESTIC_F

              * `DOMESTIC_G` - DOMESTIC_G

              * `DOMESTIC_H` - DOMESTIC_H

              * `DOMESTIC_I` - DOMESTIC_I

              * `DOMESTIC_J` - DOMESTIC_J

              * `DOMESTIC_K` - DOMESTIC_K

              * `DOMESTIC_L` - DOMESTIC_L

              * `IEC_60309_2_single_16` - IEC_60309_2_single_16

              * `IEC_60309_2_three_16` - IEC_60309_2_three_16

              * `IEC_60309_2_three_32` - IEC_60309_2_three_32

              * `IEC_60309_2_three_64` - IEC_60309_2_three_64

              * `IEC_62196_T1` - IEC_62196_T1

              * `IEC_62196_T1_COMBO` - IEC_62196_T1_COMBO

              * `IEC_62196_T2` - IEC_62196_T2

              * `IEC_62196_T2_COMBO` - IEC_62196_T2_COMBO

              * `IEC_62196_T3A` - IEC_62196_T3A

              * `IEC_62196_T3C` - IEC_62196_T3C

              * `TESLA_R` - TESLA_R

              * `TESLA_S` - TESLA_S'
        description: List of connector types to filter stations
      - in: query
        name: max_price
        schema:
          type: number
          format: double
        description: Filter out stations with price higher than this
      - in: query
        name: only_available
        schema:
          type: boolean
          default: false
        description: Whether to show only available stations
      - in: query
        name: only_partners
        schema:
          type: boolean
          default: false
        description: Whether to show only partner stations
      - in: query
        name: operators
        schema:
          type: array
          items:
            type: string
        description: List of partner operator names to filter stations
      - in: query
        name: power_groups
        schema:
          type: array
          items:
            enum:
            - slow
            - fast
            - turbo
            type: string
            description: '* `slow` - slow

              * `fast` - fast

              * `turbo` - turbo'
        description: List of power groups to filter stations
      - in: query
        name: x
        schema:
          type: array
          items:
            type: integer
        description: Identifies the X coordinates of the tile in the grid
        required: true
      - in: query
        name: y
        schema:
          type: array
          items:
            type: integer
        description: Identifies the Y coordinates of the tile in the grid
        required: true
      - in: query
        name: z
        schema:
          type: integer
        description: Zoom level
        required: true
      tags:
      - Stations
      security:
      - BearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectAPITileResponse'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetail'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: ''
components:
  schemas:
    Status80fEnum:
      enum:
      - free
      - busy
      - unknown
      - error
      type: string
      description: '* `free` - free

        * `busy` - busy

        * `unknown` - unknown

        * `error` - error'
    ErrorDetail:
      type: object
      properties:
        detail:
          type: string
        error:
          $ref: '#/components/schemas/Error'
      required:
      - detail
      - error
    TimePriceItem:
      type: object
      properties:
        time_from:
          type: string
          description: 'Format: `hh:mm`'
        time_to:
          type: string
          description: 'Format: `hh:mm`'
        date_from:
          type: string
          description: 'Format: `YYYY-MM-DD`'
        date_to:
          type: string
          description: 'Format: `YYYY-MM-DD`'
        gross_price:
          type: string
          description: 'Raw price. No VAT. If TIME-based: is per hour. Example: 12.44 EUR/hour (excl. VAT)'
        user_facing_price:
          type: string
          description: 'Price to display for users. VAT applied. If TIME-based: is per minute.'
        grace_period_minutes:
          type: number
          format: double
          nullable: true
          description: Amount of time in minutes after which blocking fees starts to apply
        tax:
          type: number
          format: double
          description: Tax % applied to the price
        blocking_cap:
          type: string
          nullable: true
          description: Maximum amount of blocking fees which can be charged in one transaction.
      required:
      - blocking_cap
      - date_from
      - date_to
      - grace_period_minutes
      - gross_price
      - tax
      - time_from
      - time_to
      - user_facing_price
    TilesFeatureCollection:
      type: object
      properties:
        type:
          type: string
          default: Feature
        station_id:
          type: string
          description: Available only for single-station features
        cluster_id:
          type: string
          description: Available only when the feature represents a cluster of stations
        geometry:
          $ref: '#/components/schemas/TilesGeometryPoint'
        properties:
          $ref: '#/components/schemas/TilesProperty'
        custom_properties:
          $ref: '#/components/schemas/TilesCustomProperties'
        price_properties:
          $ref: '#/components/schemas/TilesPriceProperties'
      required:
      - geometry
      - properties
    ErrorTypeEnum:
      enum:
      - validation_error
      - payment_method_error
      - payment_error
      - temporary_locked
      - already_charging
      - already_stopped
      - station_availability_issue
      - billing_data_required
      - charging_provider_error
      - unexpected_error
      - pre_authorization_failed
      type: string
      description: '* `validation_error` - validation_error

        * `payment_method_error` - payment_method_error

        * `payment_error` - payment_error

        * `temporary_locked` - temporary_locked

        * `already_charging` - already_charging

        * `already_stopped` - already_stopped

        * `station_availability_issue` - station_availability_issue

        * `billing_data_required` - billing_data_required

        * `charging_provider_error` - charging_provider_error

        * `unexpected_error` - unexpected_error

        * `pre_authorization_failed` - pre_authorization_failed'
    Detail:
      type: object
      description: 400 status error message response serializer.
      properties:
        detail:
          type: string
      required:
      - detail
    Error:
      type: object
      properties:
        type:
          allOf:
          - $ref: '#/components/schemas/ErrorTypeEnum'
          description: 'Type of the error


            * `validation_error` - validation_error

            * `payment_method_error` - payment_method_error

            * `payment_error` - payment_error

            * `temporary_locked` - temporary_locked

            * `already_charging` - already_charging

            * `already_stopped` - already_stopped

            * `station_availability_issue` - station_availability_issue

            * `billing_data_required` - billing_data_required

            * `charging_provider_error` - charging_provider_error

            * `unexpected_error` - unexpected_error

            * `pre_authorization_failed` - pre_authorization_failed'
        details:
          type: string
          description: Additional details about the error
        payment_intent_client_secret:
          type: string
          description: Client secret of the payment intent that failed
      required:
      - details
      - type
    ConnectAPIEvse:
      type: object
      properties:
        evse_id:
          type: string
        status:
          $ref: '#/components/schemas/ConnectAPIEvseStatusEnum'
      required:
      - evse_id
      - status
    AmenitiesEnum:
      enum:
      - HOTEL
      - RESTAURANT
      - CAFE
      - MALL
      - SUPERMARKET
      - SPORT
      - RECREATION_AREA
      - NATURE
      - MUSEUM
      - BUS_STOP
      - TAXI_STAND
      - TRAIN_STATION
      - AIRPORT
      - CARPOOL_PARKING
      - FUEL_STATION
      - WIFI
      type: string
      description: '* `HOTEL` - HOTEL

        * `RESTAURANT` - RESTAURANT

        * `CAFE` - CAFE

        * `MALL` - MALL

        * `SUPERMARKET` - SUPERMARKET

        * `SPORT` - SPORT

        * `RECREATION_AREA` - RECREATION_AREA

        * `NATURE` - NATURE

        * `MUSEUM` - MUSEUM

        * `BUS_STOP` - BUS_STOP

        * `TAXI_STAND` - TAXI_STAND

        * `TRAIN_STATION` - TRAIN_STATION

        * `AIRPORT` - AIRPORT

        * `CARPOOL_PARKING` - CARPOOL_PARKING

        * `FUEL_STATION` - FUEL_STATION

        * `WIFI` - WIFI'
    ConnectAPIPartnerFilterOperator:
      type: object
      description: This class is used to serialize the operators list info
      properties:
        name:
          type: string
        logo_url:
          type: string
          format: uri
          nullable: true
      required:
      - logo_url
      - name
    TilesProperty:
      type: object
      properties:
        count:
          type: integer
        expansion_zoom:
          type: integer
        speed:
          $ref: '#/components/schemas/SpeedEnum'
        status:
          $ref: '#/components/schemas/Status80fEnum'
        operator_id:
          type: string
      required:
      - count
    TilesPricePropertiesTypeEnum:
      enum:
      - charging_price
      - time_price
      type: string
      description: '* `charging_price` - charging_price

        * `time_price` - time_price'
    ConnectAPIRegularHours:
      type: object
      properties:
        weekday:
          $ref: '#/components/schemas/WeekdayEnum'
        period_begin:
          type: string
          nullable: true
        period_end:
          type: string
          nullable: true
      required:
      - period_begin
      - period_end
    ConnectAPIEvseStatusEnum:
      enum:
      - AVAILABLE
      - BLOCKED
      - CHARGING
      - INOPERATIVE
      - OUTOFORDER
      - PLANNED
      - REMOVED
      - RESERVED
      - UNKNOWN
      type: string
      description: '* `AVAILABLE` - AVAILABLE

        * `BLOCKED` - BLOCKED

        * `CHARGING` - CHARGING

        * `INOPERATIVE` - INOPERATIVE

        * `OUTOFORDER` - OUTOFORDER

        * `PLANNED` - PLANNED

        * `REMOVED` - REMOVED

        * `RESERVED` - RESERVED

        * `UNKNOWN` - UNKNOWN'
    WeekdayEnum:
      enum:
      - MONDAY
      - TUESDAY
      - WEDNESDAY
      - THURSDAY
      - FRIDAY
      - SATURDAY
      - SUNDAY
      - ALL
      type: string
      description: '* `MONDAY` - MONDAY

        * `TUESDAY` - TUESDAY

        * `WEDNESDAY` - WEDNESDAY

        * `THURSDAY` - THURSDAY

        * `FRIDAY` - FRIDAY

        * `SATURDAY` - SATURDAY

        * `SUNDAY` - SUNDAY

        * `ALL` - ALL'
    TilesGeometryPoint:
      type: object
      properties:
        type:
          type: string
          default: Point
        coordinates:
          type: array
          items:
            type: string
          description: Latitude and longitude of the station as a list of floats
      required:
      - coordinates
    ConnectAPIStation:
      type: object
      description: Serializer for OCPI station details.
      properties:
        id:
          type: string
          nullable: true
        name:
          type: string
        speed:
          $ref: '#/components/schemas/SpeedEnum'
        address:
          type: string
        status:
          $ref: '#/components/schemas/Status80fEnum'
        coordinates:
          $ref: '#/components/schemas/Coordinates'
        opening_times:
          $ref: '#/components/schemas/ConnectAPIOpeningTimes'
        operator:
          $ref: '#/components/schemas/OCPIOperatorInfo'
        evses:
          type: array
          items:
            $ref: '#/components/schemas/ConnectAPIEvse'
        last_updated:
          type: string
        amenities:
          type: array
          items:
            $ref: '#/components/schemas/AmenitiesEnum'
        is_partner:
          type: boolean
          default: false
        price_groups:
          type: array
          items:
            $ref: '#/components/schemas/ConnectAPIPriceGroup'
        logo_url:
          type: string
          format: uri
      required:
      - address
      - coordinates
      - evses
      - id
      - last_updated
      - name
      - opening_times
      - operator
      - price_groups
    ConnectAPIOpeningTimes:
      type: object
      properties:
        twentyfourseven:
          type: boolean
        regular_hours:
          type: array
          items:
            $ref: '#/components/schemas/ConnectAPIRegularHours'
      required:
      - regular_hours
      - twentyfourseven
    SpeedEnum:
      enum:
      - slow
      - fast
      - turbo
      type: string
      description: '* `slow` - slow

        * `fast` - fast

        * `turbo` - turbo'
    Coordinates:
      type: object
      properties:
        latitude:
          type: string
        longitude:
          type: string
      required:
      - latitude
      - longitude
    OCPIOperatorInfo:
      type: object
      description: "Serializer for OCPI operator information.\n\nAttributes:\n    name (str): The name of the operator (required).\n    contact: Operator's contact information."
      properties:
        name:
          type: string
        contact:
          allOf:
          - $ref: '#/components/schemas/Contact'
          nullable: true
      required:
      - name
    PaginatedConnectAPIStationList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/ConnectAPIStation'
    Contact:
      type: object
      properties:
        phone:
          type: string
          nullable: true
    TilesCustomProperties:
      type: object
      properties:
        is_partner:
          type: boolean
      required:
      - is_partner
    TilesPriceProperties:
      type: object
      properties:
        price:
          type: string
        type:
          $ref: '#/components/schemas/TilesPricePropertiesTypeEnum'
        currency:
          type: string
      required:
      - currency
      - price
      - type
    ConnectAPIPriceGroup:
      type: object
      description: Serializer for OCPI station details.
      properties:
        type:
          type: string
        power:
          type: number
          format: double
        evse_ids:
          type: array
          items:
            type: string
        prices:
          $ref: '#/components/schemas/ConnectAPIPrices'
        local_datetime:
          type: string
          format: date-time
        currency:
          type: string
        pre_authorization_amount:
          type: string
        is_fallback:
          type: boolean
          default: false
          description: Whether this is the price set by Cariqa because no prices from CPOs
      required:
      - currency
      - evse_ids
      - local_datetime
      - power
      - pre_authorization_amount
      - prices
      - type
    ConnectAPITileResponse:
      type: object
      properties:
        type:
          type: string
          default: FeatureCollection
        features:
          type: array
          items:
            $ref: '#/components/schemas/TilesFeatureCollection'
      required:
      - features
    ConnectAPIPrices:
      type: object
      properties:
        time_price:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/TimePriceItem'
          nullable: true
          description: 'TIME-based price. Example: 0.22 EUR/min'
        kwh_price:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/TimePriceItem'
          nullable: true
          description: 'KWH-based price. Example: 0.55 eur/kwh'
        blocking_fee:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/TimePriceItem'
          nullable: true
          description: 'Fees related for the vehicle being overstaying on the charging lot. Time-based. Example: 0.10 EUR/min after 240 min.'
        session_fee:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/TimePriceItem'
          nullable: true
          description: 'One-off fee for charging. Example: 0.50 EUR'
        starting_fee:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/TimePriceItem'
          nullable: true
          description: 'One-off fee for charging billed by Cariqa. Example: 0.59 EUR'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT Authorization header using the Bearer scheme.