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:
- v1.1 (current): https://api.h2-stations.eu/v1.1/doc
- v1: https://api.h2-stations.eu/v1/doc
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), andcumulative_daily_hydrogen_capacity. - A new
GET /vehicle-typeendpoint listing the EU vehicle categories as{code, name}(e.g.M1,N2/N3) to resolve thevehicle_typescodes, 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 same404as the live API, andGET /hrs/{hrs_id}/photoreturns 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