For Signal Originators¶
Overview¶
A signal originator is an entity operating an automated system that submits real-time data for one or more hydrogen refuelling stations (HRS) to the H2-Stations platform. The platform uses these signals to compute per-fuelling-option availability statuses, which are displayed on the public H2-Stations Map.
Signals are sent via a REST API. Each signal covers one station at one point in time. On v1 and v1.1, a signal reports the availability of each fuelling option the station provides. On v2, signals report availability, usage, hydrogen storage, or pricing against the station's registered layout.
For the full field reference, request/response schemas, and interactive testing, see the H2-Stations Signal API documentation: v2 (current), v1.1 and v1.
For payload formats, validation rules, and error responses, see Sending Signals (API v2). To move an existing v1 or v1.1 integration, start with the Migration Guide. The v1 and v1.1 reference is in Sending Signals.
Getting Started¶
Becoming a signal originator requires a validation process involving the operators of the stations you intend to report on. Contact h2-stations@clean-hydrogen.europa.eu to start the onboarding process. New integrations are onboarded on API v2.
Organisations that want to try new features before they reach production and get involved in the development process can join the Insiders Program by contacting h2-stations@clean-hydrogen.europa.eu.
API v2¶
Added in portal 1.9.0 · 29 July 2026
v2 is the current version of the Signal API. It splits signal transmission into one endpoint per signal category (availability, usage, hydrogen storage, pricing) and reports against the station's registered nozzles, storage units and products instead of fuelling options. It also adds a dry_run flag for testing and self-service tokens.
v1 and v1.1 keep working unchanged, so existing integrations need no immediate changes. See the Migration Guide for the steps.
API v1.1¶
Added in portal 1.7.0 · 17 June 2026
v1.1 remains available alongside v2. v1 keeps working unchanged and is deprecated (it receives no new features). v1.1 adds:
- The 700 bar heavy-duty fuelling option, supported across station data, the portal and the API.
- Light-duty and heavy-duty fuelling-option vocabulary (
700ld,350ld,700hd,350hd), which replaces the older identifiers. Send these identifiers in your signals when you report on v1.1. - A new
GET /import/v1.1/active-stationsendpoint listing the stations your token is authorised to report on, grouped intolive(your signals affect the published status) andtesting(signals are accepted but not published). Use it to confirm your token's scope and to check a station is live before relying on its status.
Browse the full v1.1 schema and try the endpoints at https://api.h2-stations.eu/import/v1.1/doc/.
If you report on a station that offers 700 bar heavy-duty refuelling, see Action Required for the steps to keep its status accurate.
Authentication¶
All requests require a Bearer token in the Authorization header:
Authorization: Bearer <your-token>
v2 tokens are created in the portal under API tokens. This needs a portal account with management rights for your signal originator. If you do not have one yet, ask for it at h2-stations@clean-hydrogen.europa.eu. Existing v1 and v1.1 tokens keep working, but a v1 token does not work on v2. See Authentication in the Migration Guide.
Transmission States¶
Sending signals successfully does not by itself put a station's data on the public map. The HRS operator assigns signal originators in the portal, per station and per signal type. Signals sent on v1 and v1.1 count as the availability type. For each station and signal type, your system is in one of three states. Only one of them publishes data.
| State | Conditions | What happens to your signals |
|---|---|---|
| Live | Your system holds the live assignment for the station and signal type | Signals are processed and published. They drive the public status on the map and API. |
| Testing | Your system is assigned in testing state | Signals are accepted and processed end to end, but not published. Use this to validate your integration before going live. |
| Inactive | Your system is not assigned for the station and signal type | Signals are accepted and logged, but ignored for status computation. The station's status is driven by its live originator, if there is one. |
A newly assigned system always starts in Testing. The operator then promotes it to Live. A station has at most one live originator per signal type. GET /import/v1.1/active-stations lists your live and testing stations for availability. On v2, GET /import/v2/active-stations/ lists them per signal type (see Checking your assignments).
Why is my status not showing? If your signals return
204 No Contentbut the station still shows no real-time availability, the transmission is almost always in Testing or Inactive state. Both are normal during onboarding. The HRS operator must assign your system and promote it to Live before signals appear publicly. Contact the operator (or H2-Stations) to move from Testing to Live.
How Station Status Is Computed¶
The platform evaluates status per fuelling option: a fixed list of conditions is checked in order and the first one that applies wins, and after 30 minutes without a signal every fuelling option falls back to unknown. The full resolution order, the three inputs that feed it, and the meaning of each public status are described in How Availability Status Is Computed.
Recommendations¶
Send signals every minute, not only when the status changes. After 30 minutes without a signal, the platform sets all fuelling options to unknown regardless of their previous status.
Include every fuelling option in every signal (v1 and v1.1). If a fuelling option is omitted from a signal, it is treated as if the station had not reported it and shown as unknown. Send all fuel types the station supports in each request, even if their status has not changed.
For v2 cadence per signal type, see Recommended cadence.
Contact¶
h2-stations@clean-hydrogen.europa.eu