Cariqa Stations API
The Stations API from Cariqa — 4 operation(s) for stations.
The Stations API from Cariqa — 4 operation(s) for stations.
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.