API & integration
The data has to land where you already work
One more portal nobody looks at solves nothing. Positions are published so they land in the operational map and the incident manager your team already has open.
Available interfaces
| Interface | What for | Mode |
|---|---|---|
| REST API | Query positions, teams, alerts and history | On-demand request |
| Webhooks | Receive events as they happen: position changes, alerts, zone entries and exits | Outbound push |
| Scheduled export | Periodic dumps for analysis and planning | CSV / JSON |
Authentication uses scoped service credentials with key rotation. All traffic runs over TLS, with per-credential rate limiting and the usual protections against common API risks.
What a position looks like
This is the event your system receives when a team changes position. The important part is not the coordinate: it is that the coordinate arrives with its quality attached, so whoever consumes it can decide how much to trust it.
{
"event": "position.updated",
"timestamp": "2026-03-11T09:41:07Z",
"terminal": {
"id": "TRM-0043",
"team": "vigilancia-l2-turno-manana"
},
"position": {
"zone": "station-014",
"area": "platform",
"direction": "north",
"x": 128.4,
"y": 22.7,
"srs": "site-local"
},
"onboard": {
"train": "4207",
"car": 3
},
"quality": {
"accuracy_m": 6.8,
"source": "wifi-rtt",
"nlos_suspected": false,
"map_matched": true
}
}zoneandareaare the operational reading: station and space. Usually all an incident manager needs.xandyare coordinates in the site-local system, for drawing on the layout.accuracy_mis the estimated uncertainty radius of that specific reading, not a system-wide constant.onboardappears only when the officer is aboard a train and the on-board layer is deployed. It is an exact identification, not an estimate: if the object is absent, no car beacon is being read.nlos_suspectedwarns that the measurement may have arrived reflected.map_matchedindicates whether the position was snapped to walkable space.
Data governance
- Versioned data contracts: schema changes are announced and coexist; they do not break your integration on a Tuesday.
- Configurable retention per data type, following operator policy.
- Anonymisation and pseudonymisation available for flows that do not need to identify a person.
- Portability: the full history is exported on request. The data belongs to the operator.
For a signalling, CCTV or communications integrator, this is the page that matters: if the API is clean, dropping Metrosafe into an existing dashboard is days of work, not months.
Want the API documentation?
Tell us which system you want to integrate with and we will send the full specification and a test environment.
- +34 924 090 608
- [email protected]
- Campus Universitario, Avda. de la Investigación S/N, Edificio PCTEX, Oficina 2.1
06006 Badajoz