For pricing and to sign up for EV Charge Finder API, sign up here. Note that the features and functionality of the API are subject to change.
The EV Charge Finder API searches for EV charge points within a specific area. The API provides various filtering options (such as connector types) to match different charging needs. The response is structured according to the industry-standard OCPI v2.2.1 Locations module, with additional extensions by Mapbox.
Search for charging stations within a specified geographic area, with options to filter results by charge point operator, connector types, availability, charging speeds, and other key attributes.
The latitude of the location around which charge points are searched. The latitude must be a number between -90.0 and 90.0.
longitude
float
The longitude of the location around which charge points are searched. The longitude must be a number between -180.0 and 180.0.
distance
float
The maximum distance in kilometers around the latitude, longitude to search for charge points. You can specify a distance of up to 100 kilometers. The default value is 10 kilometers.
An optional limit on the number of charge points to be provided in the response. You can specify a limit up to 100. The default value is 20.
connector_types
string
An optional comma-delimited list of the OCPI v2.2.1 ConnectorType to be included in the response. By default all connector types will be included in the response.
operators
string
An optional comma-delimited list of the charge point operators to be included in the response. By default all operators will be included in the response. To get the current list of operators, refer to the Retrieve list of Charge Point Operators section.
exclude_operators
string
An optional comma-delimited list of the charge point operators (CPO) to be excluded from the response. To get the current list of operators, refer to the Retrieve list of Charge Point Operators section.
min_charging_power
float
An optional value in watts that sets the lower limit for the charging power supported by EVSEs at a charge point. If max_charging_power is provided, the default value is 0.
max_charging_power
float
An optional value in watts that sets the upper limit for the charging power supported by EVSEs at a charge point. If min_charging_power is provided, The default value is 500000.
availability
string
An optional filter on the charge points availability, reflected by the status of their EVSEs. The value of this optional parameter must be a valid Status (for example, "AVAILABLE" will return all charge points that have an EVSE with the status AVAILABLE).
amenities
string
Only include locations in the response that provide all specified amenities or have them nearby.
Possible values
Description
hotel
A hotel.
restaurant
A restaurant.
cafe
A cafe.
shopping_mall
A shopping mall.
supermarket
A supermarket.
sports
Gyms, fields, etc.
recreation_center
A recreation area.
park
A park or nature reserve.
nature_reserve
A park or nature reserve.
museum
A museum.
bus_stop
A bus stop.
bus_station
A bus stop.
taxi
A taxi stand.
railway_station
A railway station.
airport
An airport.
parking_lot
A parking lot.
gas_station
A gas station.
dog_park
A dog park.
bike_sharing
A bike/e-bike/e-scooter sharing location.
carpool_parking
A carpool parking.
tram_stop
A tram stop.
metro_station
A metro station.
wifi
Wifi available.
roof
The charging station is protected by a roof.
restroom
Restrooms available.
light
The charging station is well-lit.
trailer_friendly
The charging location is suitable for trailers.
exclude
string
A comma-delimited list of attributes. Charge points that have one or more of the specified attributes will be excluded from the response.
Possible values
Description
tesla_exclusive
Charge point that can only be used by Tesla cars.
payment_methods
string
An optional comma-delimited list of payment methods. When present, only locations supporting any of the provided payment methods will be included in the response.
# Retrieve EV charge points within 1 kilometer of San Jose Airport. $curl"https://api.mapbox.com/ev/v1/locations?access_token=YOUR_MAPBOX_ACCESS_TOKEN&latitude=37.364714&longitude=-121.924238&distance=1" # Retrieve EV charge points only from ChargePoint and Blink $curl"https://api.mapbox.com/ev/v1/locations?access_token=YOUR_MAPBOX_ACCESS_TOKEN&latitude=37.364714&longitude=-121.924238&distance=1&operators=ChargePoint,Blink" # Retrieve EV charge points from charge point operators other than ChargePoint and Blink $curl"https://api.mapbox.com/ev/v1/locations?access_token=YOUR_MAPBOX_ACCESS_TOKEN&latitude=37.364714&longitude=-121.924238&distance=1&exclude_operators=ChargePoint,Blink" # Retrieve EV charge points in Amsterdam that have a cafe and bus stop nearby. $curl"https://api.mapbox.com/ev/v1/locations?access_token=YOUR_MAPBOX_ACCESS_TOKEN&latitude=52.378657&longitude=4.89941&distance=10&amenities=bus_stop,cafe" # Retrieve EV charge points but ignore locations that are only usable by Tesla drivers $curl"https://api.mapbox.com/ev/v1/locations?access_token=YOUR_MAPBOX_ACCESS_TOKEN&latitude=37.364714&longitude=-121.924238&distance=1&exclude=tesla_exclusive" # Retrieve EV charge points in Amsterdam that accept credit or debit cards. $curl"https://api.mapbox.com/ev/v1/locations?access_token=YOUR_MAPBOX_ACCESS_TOKEN&latitude=52.378657&longitude=4.89941&distance=10&payment_methods=ad-hoc"
Get charge point details by ID. First, use the Search for EV Charge Points feature to get a list of charge points. Then, get a specific charge point’s ID from the id property of the OCPI Location object and use it to get detailed information about that charge point.
# Get details of a charge point near San Jose Airport. $curl"https://api.mapbox.com/ev/v1/locations/dXJuOm1ieGV2OmY3Y2E2ZmNlLTZjYTAtMTFlZC1hYjVjLWEwNDIzZjQyYWYwNjtzcmM9NA?access_token=YOUR_MAPBOX_ACCESS_TOKEN"
Retrieve a list of charge point operators. The response includes party_id, name, and country_code, helping users to search for charge points from preferred operators using Search for EV Charge Points.
The Location object describes the location and its properties where a group of EVSEs that belong together are installed. Refer to this type in the OCPI GitHub repository for more details.
Property
Type
Cardinality
Description
country_code
string
1
ISO-3166 alpha-2 country code of the operator that 'owns' this Location.
party_id
string
1
3 letter identifier of the operator.
id
string
1
Uniquely identifies the location among all operators. This field can never be changed, modified or renamed.
publish
boolean
1
Defines if a Location may be published on a website or app etc. When set to false, this location is only visible by tokens identified in the field: publish_allowed_to. When the same location has EVSEs that may be published and may not be published, two 'Locations' should be created.
publish_allowed_to
object
*
PublishTokenType object. This field may only be used when the publish field is false. The location is shared only with owners of Tokens that match all the set fields of one PublishToken in the list.
name
string
?
Display name of the location.
address
string
1
Street/block name and house number if available.
city
string
1
City or town.
postal_code
string
?
Postal code of the location, may only be omitted when the location has no postal code: in some countries charging locations at highways don’t have postal codes.
state
string
?
State or province of the location, only to be used when relevant.
country
string
1
ISO 3166-1 alpha-3 code for the country of this location.
coordinates
object
1
GeoLocation object representing coordinates of the location.
related_locations
array
*
AdditionalGeoLocation object representing geographical location of related points relevant to the user.
parking_type
string
?
ParkingType value. The general type of parking at the charge point location.
evses
array
*
Array of EVSE objects that belong to this Location.
directions
object
*
DisplayText object representing human-readable directions on how to reach the location.
operator
object
?
BusinessDetails object representing information of the operator. When not specified, the information retrieved from the Credentials module, selected by the country_code and party_id of this Location, should be used instead.
suboperator
object
?
BusinessDetails object representing information of the suboperator if available.
owner
object
?
BusinessDetails object representing information of the owner if available.
help_phone
string
?
A telephone number that a driver using the location may call for help. Calling this number will typically connect the caller to the CPO’s customer service department.
facilities
array
*
Array of Facility this charging location directly belongs to.
time_zone
string
1
One of IANA time zone data’s TZ-values representing the time zone of the location. Examples: "Europe/Oslo", "Europe/Zurich".
opening_times
object
?
Hours object representing the times when the EVSEs at the location can be accessed for charging.
charging_when_closed
boolean
?
Indicates if the EVSEs are still charging outside the opening hours of the location. for example when the parking garage closes its barriers over night, is it allowed to charge till the next morning? Default: true
images
object
*
Image object representing links to images related to the location such as photos or logos.
energy_mix
object
?
EnergyMix object representing details on the energy supplied at this location.
last_updated
string
1
Timestamp in OCPI DateTime format when this Location or one of its EVSEs or Connectors were last updated (or created).
The EVSE object describes the part that controls the power supply to a single EV in a single session. It always belongs to a Location object. Refer to this type in the OCPI GitHub repository for more details.
Property
Type
Cardinality
Description
uid
string
1
Uniquely identifies the EVSE within the operators' platform (and suboperator platforms). For example a database ID or the actual "EVSE ID". This field can never be changed, modified or renamed. This is the 'technical' identification of the EVSE, not to be used as 'human readable' identification, use the field evse_id for that.
evse_id
string
?
Compliant with the following specification for EVSE ID from "eMI3 standard version V1.0" (http://emi3group.com/documents-links/) "Part 2: business objects." Optional because: If an EVSE ID is to be reused in the real world, you can remove the evse_id from an EVSE object if the status after setting its status to REMOVED.
status
string
1
Status value that indicates the current status of the EVSE.
status_schedule
array
*
Array of StatusSchedule representing a planned status update of the EVSE.
Level on which the Charge Point is located (in garage buildings) in the locally displayed numbering scheme.
coordinates
object
?
GeoLocation object representing coordinates of the EVSE.
physical_reference
string
?
A number/string printed on the outside of the EVSE for visual identification.
directions
array
*
DisplayText object representing multi-language human-readable directions when more detailed information on how to reach the EVSE from the Location is required.
A Connector is the socket or cable and plug available for the EV to use. A single EVSE may provide multiple Connectors but only one of them can be in use at the same time. A Connector always belongs to an EVSE object. Refer to this type in the OCPI GitHub repository for more details.
Property
Type
Cardinality
Description
id
string
1
Identifier of the Connector within the EVSE. Two Connectors may have the same id as long as they do not belong to the same EVSE object.
standard
string
1
ConnectorType value indicating the standard of the installed connector.
format
string
1
ConnectorFormat value indicating the format (socket/cable) of the installed connector.
power_type
string
1
PowerType value indicating electrical power configuration.
max_voltage
integer
1
Maximum voltage of the connector (line to neutral for AC_3_PHASE), in volt [V]. For example: DC Chargers might vary the voltage during charging when battery almost full.
max_amperage
integer
1
Maximum amperage of the connector, in ampere [A].
max_electric_power
integer
?
Maximum electric power that can be delivered by this connector, in Watts (W). Used when the maximum electric power is lower than the calculated value from voltage and amperage. For example: A DC Charge Point which can delivers up to 920V and up to 400A can be limited to a maximum of 150kW (max_electric_power = 150000). Depending on the car, it may supply max voltage or current, but not both at the same time. For AC Charge Points, the amount of phases used can also have influence on the maximum power.
tariff_ids
string
*
Identifiers of the valid charging tariffs. Multiple tariffs are possible, but only one of each Tariff.type can be active at the same time. Tariffs with the same type are only allowed if they are not active at the same time: start_date_time and end_date_time period not overlapping. Only included in the response of the Get Charge Point details by ID API
terms_and_conditions
string
?
URL to the operator’s terms and conditions.
last_updated
string
1
Timestamp in DateTime format when this Connector was last updated (or created).
This class defines an additional geographic location that is relevant for the Charge Point. The geodetic system to be used is WGS 84. Refer to this type in the OCPI GitHub repository for more details.
Property
Type
Cardinality
Description
latitude
string
1
Latitude of the point in decimal degree. The latitude must be a number between -90.0 and 90.0.
longitude
string
1
Longitude of the point in decimal degree. The longitude must be a number between -180.0 and 180.0.
name
object
?
DisplayText object representing name of the point in local language or as written at the location. For example the street name of a parking lot entrance or it’s number.
This class is information about a business operator, including its name, an optional website URL, and an optional logo image link. Refer to this type in the OCPI GitHub repository for more details.
Property
Type
Cardinality
Description
name
string
1
Name of the operator.
website
string
?
Link to the operator’s website.
logo
object
?
Image object representing link to the operator’s logo.
The capabilities of an EVSE. Refer to this type in the OCPI GitHub repository for more details.
Value
Description
CHARGING_PROFILE_CAPABLE
The EVSE supports charging profiles.
CHARGING_PREFERENCES_CAPABLE
The EVSE supports charging preferences.
CHIP_CARD_SUPPORT
EVSE has a payment terminal that supports chip cards.
CONTACTLESS_CARD_SUPPORT
EVSE has a payment terminal that supports contactless cards.
CREDIT_CARD_PAYABLE
EVSE has a payment terminal that makes it possible to pay for charging using a credit card.
DEBIT_CARD_PAYABLE
EVSE has a payment terminal that makes it possible to pay for charging using a debit card.
PED_TERMINAL
EVSE has a payment terminal with a pin-code entry device.
REMOTE_START_STOP_CAPABLE
The EVSE can remotely be started/stopped.
RESERVABLE
The EVSE can be reserved.
RFID_READER
Charging at this EVSE can be authorized with an RFID token.
START_SESSION_CONNECTOR_REQUIRED
When a StartSession is received by this EVSE, the eMSP is required to add the optional connector_id field in the StartSession object.
TOKEN_GROUP_CAPABLE
This EVSE supports token groups, two or more tokens work as one, so that a session can be started with one token and stopped with another (handy when an EV driver has both a card and key-fob).
UNLOCK_CAPABLE
Connectors have mechanical lock that can be requested by the eMSP to be unlocked.
This type is used to specify the energy mix and environmental impact of the supplied energy at a location or in a tariff. Refer to this type in the OCPI GitHub repository for more details.
Property
Type
Cardinality
Description
is_green_energy
boolean
1
True if 100% from regenerative sources. (CO2 and nuclear waste is zero)
energy_sources
array
*
Array of EnergySource objects representing energy sources of this location’s tariff in key-value pairs (enum + percentage).
environ_impact
array
*
Array of EnvironmentalImpact objects representing nuclear waste and CO2 exhaust of this location’s tariff in Key-value pairs (enum + percentage).
supplier_name
string
?
Name of the energy supplier, delivering the energy for this location or tariff.
energy_product_name
string
?
Name of the energy suppliers product/tariff plan used at this location.
Key-value pairs (enum + percentage) of energy sources. All given values of all categories should add up to 100 percent. Refer to this type in the OCPI GitHub repository for more details.
This class defines the geographic location of the Charge Point. The geodetic system to be used is WGS 84. Refer to this type in the OCPI GitHub repository for more details.
Property
Type
Cardinality
Description
latitude
string
1
Latitude of the point in decimal degree. The latitude must be a number between -90.0 and 90.0.
longitude
string
1
Longitude of the point in decimal degree. The longitude must be a number between -180.0 and 180.0.
Opening and access hours of the location. Refer to this type in the OCPI GitHub repository for more details.
Property
Type
Cardinality
Description
twentyfourseven
boolean
1
True to represent 24 hours a day and 7 days a week, except the given exceptions.
regular_hours
array
*
Array of RegularHours objects representing regular hours, weekday-based. Only to be used if twentyfourseven=false, then this field needs to contain at least one RegularHours object.
exceptional_openings
array
*
Array of ExceptionalPeriod objects representing exceptions for specified calendar dates, time-range based. Times the station is operating/accessible. Additional to regular_hours. May overlap regular rules.
exceptional_closings
array
*
Array of ExceptionalPeriod objects representing exceptions for specified calendar dates, time-range based. Times the station is not operating/accessible. Overwriting regular_hours and exceptional_openings. Should not overlap exceptional_openings.
The category of an image to get the correct usage in a user presentation. Refer to this type in the OCPI GitHub repository for more details.
Value
Description
CHARGER
Photo of the physical device that contains one or more EVSEs.
ENTRANCE
Location entrance photo. Should show the car entrance to the location from street side.
LOCATION
Location overview photo.
NETWORK
Logo of an associated roaming network to be displayed with the EVSE for example in lists, maps and detailed information views.
OPERATOR
Logo of the charge point operator, for example a municipality, to be displayed in the EVSEs detailed information view or in lists and maps, if no network logo is present.
OTHER
Other
OWNER
Logo of the charge point owner, for example a local store, to be displayed in the EVSEs detailed information view.
This value, if provided, is the restriction to the parking spot for different purposes. Refer to this type in the OCPI GitHub repository for more details.
Value
Description
EV_ONLY
Reserved parking spot for electric vehicles.
PLUGGED
Parking is only allowed while plugged in (charging).
DISABLED
Reserved parking spot for disabled people with valid ID.
CUSTOMERS
Parking spot for customers/guests only, for example in case of a hotel or shop.
MOTORCYCLES
Parking spot only suitable for (electric) motorcycles or scooters.
Reflects the general type of the charge point’s location. May be used for user information. Refer to this type in the OCPI GitHub repository for more details.
Value
Description
ALONG_MOTORWAY
Location on a parking facility/rest area along a motorway, freeway, interstate, highway etc.
PARKING_GARAGE
Multistorey car park.
PARKING_LOT
A cleared area that is intended for parking vehicles, as in at super markets, bars, etc.
Defines the set of values that identify a token to which a Location might be published. Refer to this type in the OCPI GitHub repository for more details.
All timestamps are formatted as string following RFC 3339, with some additional limitations. Refer to this type in the OCPI GitHub repository for more details.
A Tariff object consists of a list of one or more Tariff Elements, which in turn consist of Price Components. A Tariff Element is a group of Price Components that apply under the same conditions. A Price Component describes how the usage of a particular dimension (time, energy, etc.) maps to an amount of money owed. Refer to this type in the OCPI GitHub repository for more details.
Property
Type
Cardinality
Description
country_code
string
1
ISO-3166 alpha-2 country code of the operator that owns this Tariff.
party_id
string
1
3 letter identifier of the operator.
id
string
1
Uniquely identifies the tariff within the CPO’s platform (and suboperator platforms).
currency
string
1
ISO-4217 code of the currency of this tariff.
type
string
?
TariffType of the tariff. This allows for distinction in case of given Charging Preferences. When omitted, this tariff is valid for all sessions.
tariff_alt_text
array
*
DisplayText object representing list of multi-language alternative tariff information texts.
tariff_alt_url
string
?
URL to a webpage that contains an explanation of the tariff information in human readable form.
min_price
object
?
Price object. Use this property to declare a Charging Session tariff will base cost of this amount. This is different from a FLAT fee (Start Tariff, Transaction Fee), a FLAT fee is a fixed amount for any Charging Session. A minimum price indicates that when the cost of a Charging Session is lower than this amount, the cost of the Session will be equal to this amount. (Also see note below)
max_price
object
?
Price object. Set this field and a Charging Session with this tariff will NOT cost more than this amount. (See note below)
The time in OCPI DateTime format when this tariff becomes active, in UTC, time_zone field of the Location can be used to convert to local time. Typically used for a new tariff that is already given with the location, before it becomes active. (See note below)
end_date_time
string
?
The time in OCPI DateTime format after which this tariff is no longer valid, in UTC, time_zone field if the Location can be used to convert to local time. Typically used when this tariff is going to be replaced with a different tariff soon. (See note below)
energy_mix
object
?
Details on the energy supplied with this tariff.
last_updated
string
1
Timestamp in OCPI DateTime format when this Tariff was last updated (or created).
The type of the tariff. Refer to this type in the OCPI GitHub repository for more details.
Value
Description
AD_HOC_PAYMENT
Used to describe that a Tariff is valid when ad-hoc payment is used at the Charge Point (for example: Debit or Credit card payment terminal).
PROFILE_CHEAP
Used to describe that a Tariff is valid when setting Charging Preference: CHEAP for the session.
PROFILE_FAST
Used to describe that a Tariff is valid when setting Charging Preference: FAST for the session.
PROFILE_GREEN
Used to describe that a Tariff is valid when setting Charging Preference: GREEN for the session.
REGULAR
Used to describe that a Tariff is valid when using an RFID, without any Charging Preference, or when setting Charging Preference: REGULAR for the session.
Price per unit (excl. VAT) for this tariff dimension.
vat
float
?
Applicable VAT percentage for this tariff dimension. If omitted, no VAT is applicable. Not providing a VAT is different from 0% VAT, which would be a value of 0.0 here.
step_size
integer
1
Minimum amount to be billed. This unit will be billed in this step_size blocks. Amounts that are less then this step_size are rounded up to the given step_size. For example: if type is TIME and step_size has a value of 300, then time will be billed in blocks of 5 minutes. If 6 minutes were used, 10 minutes (2 blocks of step_size) will be billed.
These restrictions are not for the entire Charging Session. They only describe if a TariffElement becomes active or inactive during a Charging Session. Refer to this type in the OCPI GitHub repository for more details.
Property
Type
Cardinality
Description
start_time
string
?
Start time of day in local time, the time zone is defined in the time_zone field of the Location, for example 13:30, valid from this time of the day. Must be in 24h format with leading zeros. Hour/Minute separator: ":" Regex: ([0-1][0-9]
end_time
string
?
End time of day in local time, the time zone is defined in the time_zone field of the Location, for example 19:45, valid until this time of the day. Same syntax as start_time. If end_time < start_time then the period wraps around to the next day. To stop at end of the day use: 00:00.
start_date
string
?
Start date in local time, the time zone is defined in the time_zone field of the Location, for example: 2015-12-24, valid from this day (inclusive). Regex: ([12][0-9]3)-(0[1-9]
end_date
string
?
End date in local time, the time zone is defined in the time_zone field of the Location, for example: 2015-12-27, valid until this day (exclusive). Same syntax as start_date.
min_kwh
float
?
Minimum consumed energy in kWh, for example 20, valid from this amount of energy (inclusive) being used.
max_kwh
float
?
Maximum consumed energy in kWh, for example 50, valid until this amount of energy (exclusive) being used.
min_current
float
?
Sum of the minimum current (in Amperes) over all phases, for example 5. When the EV is charging with more than, or equal to, the defined amount of current, this TariffElement is/becomes active. If the charging current is or becomes lower, this TariffElement is not or no longer valid and becomes inactive. This describes NOT the minimum current over the entire Charging Session. This restriction can make a TariffElement become active when the charging current is above the defined value, but the TariffElement MUST no longer be active when the charging current drops below the defined value.
max_current
float
?
Sum of the maximum current (in Amperes) over all phases, for example 20. When the EV is charging with less than the defined amount of current, this TariffElement becomes/is active. If the charging current is or becomes higher, this TariffElement is not or no longer valid and becomes inactive. This describes NOT the maximum current over the entire Charging Session. This restriction can make a TariffElement become active when the charging current is below this value, but the TariffElement MUST no longer be active when the charging current raises above the defined value.
min_power
float
?
Minimum power in kW, for example 5. When the EV is charging with more than, or equal to, the defined amount of power, this TariffElement is/becomes active. If the charging power is or becomes lower, this TariffElement is not or no longer valid and becomes inactive. This describes NOT the minimum power over the entire Charging Session. This restriction can make a TariffElement become active when the charging power is above this value, but the TariffElement MUST no longer be active when the charging power drops below the defined value.
max_power
float
?
Maximum power in kW, for example 20. When the EV is charging with less than the defined amount of power, this TariffElement becomes/is active. If the charging power is or becomes higher, this TariffElement is not or no longer valid and becomes inactive. This describes NOT the maximum power over the entire Charging Session. This restriction can make a TariffElement become active when the charging power is below this value, but the TariffElement MUST no longer be active when the charging power raises above the defined value.
min_duration
integer
?
Minimum duration in seconds the Charging Session MUST last (inclusive). When the duration of a Charging Session is longer than the defined value, this TariffElement is or becomes active. Before that moment, this TariffElement is not yet active.
max_duration
integer
?
Maximum duration in seconds the Charging Session MUST last (exclusive). When the duration of a Charging Session is shorter than the defined value, this TariffElement is or becomes active. After that moment, this TariffElement is no longer active.
day_of_week
array
*
Array of DayOfWeek representing which day(s) of the week this tariff element is active.
reservation
string
?
ReservationRestrictionType. When this field is present, the TariffElement describes reservation costs. A reservation starts when the reservation is made, and ends when the driver starts charging on the reserved EVSE/Location, or when the reservation expires. A reservation can only have: FLAT and TIME TariffDimensions, where TIME is for the duration of the reservation.
Used in TariffElements to describe costs for a reservation.
RESERVATION_EXPIRES
Used in TariffElements to describe costs for a reservation that expires (as in when driver does not start a charging session before expiry_date of the reservation).