openapi: 3.1.0 info: title: Open Charge Map Comment Referencedata API version: '3.1' termsOfService: https://openchargemap.org/site/about/terms contact: name: Contact url: https://openchargemap.org/site/about description: "The Open Charge Map API provides access to the worlds largest registry of charging locations as Open Data. You can integrate this API into your own apps or services and export charging location data into your own systems. \n\n**To obtain a free API key Sign In to https://openchargemap.org and choose 'my apps' from the `my profile` menu, then select `Register An Application` to get your API key.**\n\nTo retrieve site (POI) data, see the `/poi` endpoint. To fetch general lookup information such as connector types, network operators etc, use the `/referencedata` endpoint.\n\n**Use of the OCM API is subject to terms and conditions. By using the API you indicate acceptance of these terms.**\n\nIf you wish to export charging location data into your own systems or applications the most flexible way is to use our API, which provides an export in a variety of formats. If you wish to regularly refresh the entire dataset, please clone our data from GitHub. You can also opt to run your own private API mirror.\n\n### Fair Usage Policy\nThe basic API is provided as a free service with no warranty or service level agreement. Providing this API to you costs us actual money for server resources and data transfer fees.\n\nYou must provide your API key as an `X-API-Key header` (case sensitive) or set the `key=YourAPIKey` url parameter. You should also set your http user-agent to a custom value to help identify your app.\n\n\n\n*Do not repeatedly call the API with duplicate queries. Debounce/throttle your API requests to minimise the work our API has to do. The API administrator (Open Charge Map) reserves the right to ban API callers (including automated banning) if callers make excessive/indescriminate use of the API, at the discretion of the OCM administrator.*\n\nIf you need to make a high volume of queries against the API please host your own API mirror or import the data into your own API.\n\n### Example API Calls\nReturn charging location information for the US in JSON format, limited to the first 10 results: `https://api.openchargemap.io/v3/poi/?output=json&countrycode=US&maxresults=10?key=`\n\nThe default output contains a lot of information. Here is the same call as above, but with the most compact output (formatting removed, reference data as IDs instead of full objects, null fields skipped): \n`https://api.openchargemap.io/v3/poi/?output=json&countrycode=US&maxresults=100&compact=true&verbose=false&key=`\n\nReturn KML format results suitable for viewing in google earth/maps etc (UK, max 500 locations): `https://api.openchargemap.io/v3/poi/?output=kml&countrycode=GB&maxresults=500&key=`\n\nData returned by the API has mixed licensing and applicable copyright attribution (included in results as \"Data Provider\"). If you require Open licensed data you currently must filter by opendata=true to return data marked specifically with Open Data licenses.\n\n### Linking to OCM\nIn addition to using our API you can link directly to specific Open Charge Map URLs in order to perform specific actions, with {OCM-ID} is the numeric ID of the POI to add work with.\n\n* Add a New POI:\t`https://openchargemap.org/site/poi/add`\n* View POI Details: `https://openchargemap.org/site/poi/details/{OCM-ID}`\n* Add a Comment/Check-In to an existing POI: \t`https://openchargemap.org/site/poi/addcomment/{OCM-ID}` \n* Add a Photo to an existing POI:\t`https://openchargemap.org/site/poi/addmediaitem/{OCM-ID}`" servers: - url: https://api.openchargemap.io/v3 description: API Base URL security: - APIKeyQueryString: [] - APIKeyHeader: [] tags: - name: Referencedata paths: /referencedata: parameters: [] get: summary: Core Reference Data tags: - Referencedata responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CoreReferenceData' operationId: get-referencedata description: "Returns the core reference data used for looking up IDs such as Connection Types, Operators, Countries etc. \n\nThis information is useful for UIs such as editing systems or for fetching results in the lighter non-verbose mode, then hydrating POI results back into complex objects." parameters: - schema: type: array in: query description: Optional filter on countryid, exact match on a given numeric country id (comma separated list) name: countryid components: schemas: CoreReferenceData: type: object description: Set of core reference data used for other API results and UI properties: ChargerTypes: type: array items: $ref: '#/components/schemas/LevelType' ConnectionTypes: type: array items: $ref: '#/components/schemas/ConnectionType' CheckinStatusTypes: type: array items: $ref: '#/components/schemas/CheckinStatusType' Countries: type: array items: $ref: '#/components/schemas/Country' CurrentTypes: type: array items: $ref: '#/components/schemas/SupplyType' DataProviders: type: array items: $ref: '#/components/schemas/DataProvider' DataTypes: {} MetadataGroups: type: string Operators: type: array items: $ref: '#/components/schemas/OperatorInfo' StatusTypes: type: array items: $ref: '#/components/schemas/StatusType' SubmissionStatusTypes: type: array items: $ref: '#/components/schemas/SubmissionStatusType' UsageTypes: type: array items: $ref: '#/components/schemas/UsageType' UserCommentTypes: type: array items: $ref: '#/components/schemas/UserCommentType' x-examples: example-1: ChargerTypes: - ID: 2 description: 'Level 2 : Medium (Over 2kW)' Comments: Over 2 kW, usually non-domestic socket type IsFastChargeCapable: false ConnectionTypes: - FormalName: IEC 62196-2 Type 2 IsDiscontinued: false IsObsolete: false ID: 25 description: Type 2 (Socket Only) CheckinStatusTypes: - ID: 0 description: string IsAutomatedCheckin: true IsPositive: true Countries: - ISOCode: GB ContinentCode: EU ID: 1 description: United Kingdom CurrentTypes: - Description: Alternating Current - Single Phase ID: 10 description: AC (Single-Phase) DataProviders: - WebsiteURL: https://openchargemap.org Comments: string DataProviderStatusType: IsProviderEnabled: true ID: - 1 description: - Manual Data Entry IsRestrictedEdit: false IsOpenDataLicensed: null - true IsApprovedImport: null - true License: Licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) DateLastImported: null - '2020-02-04T23:09:00Z' ID: 1 description: Open Charge Map Contributors DataTypes: null MetadataGroups: string Operators: - WebsiteURL: http://www.pod-point.com/ Comments: null PhonePrimaryContact: null PhoneSecondaryContact: null IsPrivateIndividual: false AddressInfo: ID: 148879 description: Coneygear Centre AddressLine1: Buttsgrove Way AddressLine2: null Town: Huntingdon StateOrProvince: string Postcode: PE29 1PE CountryID: 1 Country: ISOCode: GB ContinentCode: EU ID: 1 description: United Kingdom Latitude: 52.343197 Longitude: -0.170632 ContactTelephone1: null ContactTelephone2: null ContactEmail: string AccessComments: string RelatedURL: null Distance: null DistanceUnit: 1 BookingURL: string ContactEmail: enquiries@pod-point.com FaultReportEmail: enquiries@pod-point.com IsRestrictedEdit: true ID: 0 description: POD Point (UK) StatusTypes: - IsOperational: true IsUserSelectable: true ID: 50 description: Operational SubmissionStatusTypes: - IsLive: true ID: 200 description: Submission Published UsageTypes: - IsPayAtLocation: true IsMembershipRequired: true IsAccessKeyRequired: true ID: 0 description: Public - Membership Required UserCommentTypes: - ID: 0 Title: string CheckinStatusType: type: object description: Classification for the users comment or experience using a specific charging location. properties: ID: type: integer Title: type: string IsAutomatedCheckin: type: boolean description: If true, checkin or comment was provided by an automated system. IsPositive: type: boolean description: If true, this type of checkin/comment is considered positive. required: - ID - IsAutomatedCheckin Country: type: object description: Country details properties: ID: type: integer description: The Id Schema default: 0 example: 1 ISOCode: type: string description: The Isocode Schema default: '' example: GB pattern: ^(.*)$ ContinentCode: type: string description: The Continentcode Schema default: '' example: EU pattern: ^(.*)$ Title: type: string description: The Title Schema default: '' example: United Kingdom pattern: ^(.*)$ required: - ID - ISOCode - ContinentCode OperatorInfo: type: object description: An Operator is the public organisation which controls a network of charging points. properties: WebsiteURL: type: string description: Website for more information about this network example: http://www.pod-point.com/ pattern: ^(.*)$ Comments: type: string example: null PhonePrimaryContact: type: string description: Primary contact number for network users default: null PhoneSecondaryContact: type: string description: Secondary contact number default: null pattern: ^(.*)$ IsPrivateIndividual: type: boolean description: If true, this operator represents a private individual deprecated: true default: false example: false AddressInfo: $ref: '#/components/schemas/AddressInfo' BookingURL: type: string ContactEmail: type: string default: '' example: enquiries@pod-point.com pattern: ^(.*)$ FaultReportEmail: type: string description: Used to send automated notification to network operator if a user submits a fault report comment/check-in example: enquiries@pod-point.com pattern: ^(.*)$ IsRestrictedEdit: type: boolean description: If true, this network restricts community edits for OCM data ID: type: integer description: Id Title: type: string description: Title example: POD Point (UK) pattern: ^(.*)$ required: - ID UsageType: type: object description: The Usage Type of a site indicates the general restrictions on usage. properties: IsPayAtLocation: type: boolean description: If true, usage requires paying at location IsMembershipRequired: type: boolean description: If true, this usage type requires registration or membership with a service. IsAccessKeyRequired: type: boolean description: If true this usage required a physical access key deprecated: true ID: type: integer Title: type: string example: Public - Membership Required pattern: ^(.*)$ required: - IsPayAtLocation - IsMembershipRequired - IsAccessKeyRequired - ID StatusType: type: object description: The Status Type of a site or equipment item indicates whether it is generally operational. properties: IsOperational: type: boolean default: false example: true IsUserSelectable: type: boolean default: false example: true ID: type: integer example: 50 Title: type: string example: Operational required: - IsOperational - IsUserSelectable - ID LevelType: type: object description: A general category for equipment power capability. Deprecated for general use. Currently computed automatically based on equipment power. properties: ID: type: integer example: 2 Title: type: string example: 'Level 2 : Medium (Over 2kW)' Comments: type: string example: Over 2 kW, usually non-domestic socket type IsFastChargeCapable: type: boolean description: If true, this level is considered 'fast' charging, relative to other levels. required: - ID - Comments - IsFastChargeCapable ConnectionType: type: object description: The type of end-user connection an EVSE supports. properties: FormalName: type: string description: Formal (standard) name for this connection type default: '' example: IEC 62196-2 Type 2 pattern: ^(.*)$ IsDiscontinued: type: boolean description: If true, this is an discontinued but used connection type default: false example: false IsObsolete: type: boolean description: If true, this is an obsolete connection type and is unlikely top be present in modern infrastructure default: false example: false ID: type: integer example: 25 Title: type: string example: Type 2 (Socket Only) DataProvider: type: object description: A Data Provider is the controller of the source data set used to construct the details for this POI. Data has been transformed and interpreted from it's original form. Each Data Provider provides data either by an explicit license or agreement. properties: WebsiteURL: type: string description: Website URL for this data provider example: https://openchargemap.org pattern: ^(.*)$ Comments: type: string description: General public comments with information about this Data Provider. DataProviderStatusType: type: object description: Status object describing whether this data provider is currently enabled and the type of source (manual entry, imported etc) properties: IsProviderEnabled: type: boolean description: If false, results from this data provider are not currently enabled default: false example: true ID: type: integer description: The reference ID for this provider status type default: 0 example: - 1 description: type: string description: The Title of this status type example: - Manual Data Entry pattern: ^(.*)$ required: - IsProviderEnabled - ID IsRestrictedEdit: type: boolean description: Currently not implemented. Indicates a potential editing restriction. default: false example: false IsOpenDataLicensed: type: boolean description: If true, data provider uses an Open Data license example: true IsApprovedImport: type: boolean description: If false, data may not be imported for this provider. example: true License: type: string description: Summary of the licensing which applies for this Data Provider. Each Data Provider has one specific license or agreement. Usage of the data requires acceptance of the given license. example: Licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) pattern: ^(.*)$ DateLastImported: type: string format: date-time description: Date and time (UTC) the last import was performed for this data provider (if an import). example: '2020-02-04T23:09:00Z' ID: type: integer description: The reference ID for this Data Provider example: 1 Title: type: string description: The Title for this Data Provider example: Open Charge Map Contributors pattern: ^(.*)$ required: - IsRestrictedEdit - ID SupplyType: type: object description: Indicates the EVSE power supply type e.g. DC (Direct Current), AC (Single Phase), AC (3 Phase). properties: ID: type: integer example: 10 Title: type: string example: AC (Single-Phase) required: - ID SubmissionStatusType: type: object description: Submission Status object, detailing the POI listing status properties: ID: type: integer description: Submission Status Type reference ID default: 0 example: 200 Title: type: string IsLive: type: boolean description: If true, POI listing is live (not draft or de-listed) default: false required: - ID - IsLive AddressInfo: type: object description: Geographic position for site and (nearest) address component information. properties: ID: type: integer description: ID default: 0 example: 148879 AddressLine1: type: string description: First line of nearby street address default: '' example: Buttsgrove Way pattern: ^(.*)$ AddressLine2: type: string description: Second line of nearby street address default: null Town: type: string description: Town or City example: Huntingdon pattern: ^(.*)$ StateOrProvince: type: string description: State or Province Postcode: type: string description: Postal code or Zipcode example: PE29 1PE pattern: ^(.*)$ CountryID: type: integer description: The reference ID for the Country example: 1 Country: $ref: '#/components/schemas/Country' Latitude: type: number description: Site latitude coordinate in decimal degrees default: 0 example: 52.343197 Longitude: type: number description: Site longitude coordinate in decimal degrees default: 0 example: -0.170632 ContactTelephone1: type: string description: Primary contact number default: null ContactTelephone2: type: string description: Secondary contact number default: null ContactEmail: type: string description: Primary contact email AccessComments: type: string description: Guidance for users to use or find the equipment RelatedURL: type: string description: Optional website for more information default: null Distance: type: number description: Distance from search location, if search is around a point default: null DistanceUnit: type: integer description: Unit used for distance, 1= Miles, 2 = KM default: 1 Title: type: string description: General title for this location to aid user required: - ID - CountryID - Latitude - Longitude UserCommentType: title: UserCommentType type: object properties: ID: type: integer Title: type: string description: Category for a user comment, e.g. General Comment, Fault Report (Notice To Users And Operator) securitySchemes: APIKeyQueryString: name: key type: apiKey in: query description: API Key supplied as query string parameter APIKeyHeader: name: X-API-Key type: apiKey in: header UserAuthentication: type: http scheme: bearer