A lightweight HTTP API for generating and validating persistent OpenStreetMap identifiers. All endpoints are read-only and require no authentication.
Generate a fresh OSMPID for a given OSM element. The service resolves the current version and latest child timestamp from live OSM data.
| type* | node | way | relation | OSM element type. |
| id* | integer ≥ 1 | OSM numeric element id. |
| tags | string | Optional comma-separated tag list, URL-encoded. Pins semantic meaning (e.g. amenity%3Dcafe). |
GenerateResponse.{
"persistent_id": "node/2641352539@7;2026-03-12T10:15:00Z?amenity=cafe",
"element_type": "node",
"element_id": 2641352539,
"version": 7,
"latest_child_timestamp": null,
"tags": [
{
"key": "amenity",
"value": "cafe"
}
]
}Validate a stored OSMPID against current OSM state. Returns one of five outcomes — and a refreshed ID when the element has changed.
| id* | string | The OSMPID string, URL-encoded. |
ValidationResult with a status field.persistent_id. {
"status": "unchanged",
"persistent_id": "way/2641352539@7;2026-03-12T10:15:00Z",
"element_type": "way",
"element_id": 2641352539,
"version": 7,
"latest_child_timestamp": "2026-03-12T10:15:00Z",
"changed_reason": null
}