Skip to content

For Data Users

Overview

The H2-Stations export API provides read-only access to European hydrogen refuelling station (HRS) data. It exposes:

  • Static station data: location, operator, opening hours, fuel types, and more
  • Real-time availability status: current availability per station and per fuelling option
  • Events: ongoing and upcoming planned events affecting availability
  • Photos: station images where available

The API powers applications such as map.h2-stations.eu and is suitable for building maps, dashboards, research tools, or any application that consumes HRS data.

Getting Started

Request an API token by writing to h2-stations@clean-hydrogen.europa.eu.

Explore the endpoints interactively in the OpenAPI documentation:

You do not need your own token to start: use the sandbox to integrate end to end against sample data first.

API v1.1

v1.1 is the current version. v1 keeps working unchanged (its contract is frozen and receives no new fields), so existing integrations need no changes. v1.1 adds:

  • The complete AFIR static dataset on GET /hrs: nuts_region (NUTS code), location_directions, vehicle_types (EU vehicle category codes), max_vehicle_mass, max_vehicle_height, max_vehicle_length, max_vehicle_width, parking_spaces, parking_spaces_disabled, service_support, contact_phone_number (E.164), and cumulative_daily_hydrogen_capacity.
  • A new GET /vehicle-type endpoint listing the EU vehicle categories as {code, name} (e.g. M1, N2/N3) to resolve the vehicle_types codes, mirroring /fuel-type.
  • Light-duty / heavy-duty fuelling-option vocabulary (700ld, 350ld, 700hd, 350hd), including the new 700 bar heavy-duty option.

To receive the new option and the AFIR dataset, see Action Required for the steps to move from v1 to v1.1.

Authentication

All requests require a bearer token in the Authorization header:

Authorization: Bearer <your-token>

Tokens are issued by H2-Stations administrators. A missing or invalid token returns HTTP 401.

Sandbox

You can integrate end to end before you have your own token. A single shared sandbox token returns fake-but-correctly-formatted responses served from a static fixture: no account, no database access, and nothing is ever written.

  • Get the token from the OpenAPI documentation. The sandbox token is published in the documentation's authentication panel; paste it there to authorise sandbox calls.
  • It works across every read endpoint (/hrs, /hrs/{hrs_id}, the status endpoints, events, photo, and the type listings). Unknown IDs return the same 404 as the live API, and GET /hrs/{hrs_id}/photo returns a placeholder image.
  • Sandbox requests are rate-limited per client IP.

Sandbox responses are fixed sample data, not live station data; use them to validate your integration, then switch to your own token for real data.

What You Can Query

Endpoint group Description
GET /hrs List all registered HRS with full static details
GET /hrs/{hrs_id} Retrieve a single station by its five-letter ID (e.g. ABCDE)
GET /hrs/status Real-time availability status for all stations in one response
GET /hrs/{hrs_id}/status Real-time availability status for a single station
GET /hrs/{hrs_id}/events Ongoing and upcoming events for a station
GET /hrs/{hrs_id}/photo Station photo (binary image, usually JPEG)
GET /fuel-type List of fuelling options monitored by the system
GET /vehicle-type List of EU vehicle categories (v1.1), resolving the vehicle_types codes in static data

Static station data includes: name, address, geolocation, entrance geolocation, operator, owner, opening hours (OpenStreetMap format), site amenities, fuel types with dispenser count, capacity, access restrictions, payment and authorisation methods, and contact information. On v1.1, the static data additionally carries the complete AFIR dataset listed under API v1.1.

Understanding Availability Statuses

Each fuelling option at a station has an independent status. The status field in /hrs/status and /hrs/{hrs_id}/status takes one of five values:

Status Meaning
available The station is open and the fuelling option is available for refuelling.
limitedly-available Refuelling is possible but subject to delays, restrictions, or on-site technician assistance. Check events for details, or contact the operator in advance.
unavailable Refuelling is not possible. Check events for the reason and expected recovery time.
closed Refuelling is not possible: the station is currently outside its opening hours.
unknown The station is accessible, but the system has no current availability information for this fuelling option.

The last_update_datetime field indicates when the status was last updated. Ongoing events (included in the status response) may provide additional context for limitedly-available or unavailable states.

Rate Limiting

Poll status endpoints at most once per minute. No hard rate limit is currently enforced, but this may change.

Contact

h2-stations@clean-hydrogen.europa.eu