Developers
Your network, available as data
Everything visible in the map is reachable through the API: frames, detections, coverage and change sets, keyed to your own linear referencing.
Example request
curl https://api.railmap.ai/v1/detections \
-H "Authorization: Bearer $RAILMAP_API_KEY" \
-G \
-d line="Mainline A" \
-d class="vegetation" \
-d min_confidence=0.8 \
-d since=2026-01-01Example frame
{
"id": "RM-0356",
"line": "Mainline A",
"track": "Down",
"milepost": 15.45,
"position": { "lat": 52.2488, "lng": 5.0602 },
"captured_at": "2026-08-02T09:14:22Z",
"platform": "vehicle-mounted",
"image_url": "https://cdn.railmap.ai/frames/RM-0356.jpg",
"detections": [
{ "class": "level_crossing", "label": "LC-31", "confidence": 0.96 },
{ "class": "signage", "label": "warning_sign_faded", "confidence": 0.79 }
]
}Endpoints
- GET
/v1/capturesList capture points by bounding box, line or milepost range - GET
/v1/captures/{id}Single frame with position, camera and detections - GET
/v1/detectionsFilter detections by class, confidence and date - GET
/v1/changesDifferences between two passes over the same section - GET
/v1/coverageCoverage and freshness per line segment - POST
/v1/exportsQueue a GeoPackage or GeoJSON bulk export
Datasets
Imagery
Original frames plus web-optimised derivatives, served from signed URLs.
Detections
Classified assets and conditions with geometry and confidence.
Coverage tiles
Vector tiles of captured track and freshness for your own map.
Change sets
Pass-to-pass differences ready to become work items.
Illustrative documentation. Endpoints shown here describe the intended API surface for the demo build.