High-performance road surface information for cycling and routing applications with continuous data improvement capabilities.
The most comprehensive road surface data API with continuous improvement through user contributions and imagery analysis.
Sub-50ms response times for single points, under 2 seconds for 300-segment batches.
Upload new surface data and attributes based on GPS coordinates and imagery for continuous improvement.
The most complete worldwide road surface database with continuous updates and community contributions. View coverage map →
Compatible client libraries make migration seamless. Switch in minutes, not days.
Optimized spatial queries using PostGIS ensure consistent performance at scale.
API key authentication, HTTPS encryption, and 99.9% uptime guarantee.
Check API health and database statistics. No authentication required.
curl https://surface.enduranceplayground.com/status
Get surface information for a single geographic point.
curl "https://surface.enduranceplayground.com/surface/point?lat=30.2672&lon=-97.7431&api_key=YOUR_KEY"
Response:
{
"surface": "asphalt",
"road": "Congress Avenue",
"highway_type": "primary",
"distance": 12.5,
"surface_tagged": true
}
Process multiple segments in a single request (up to 1000 segments).
curl -X POST https://surface.enduranceplayground.com/surface/batch \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_KEY",
"segments": [
{
"startLat": 30.2672,
"startLon": -97.7431,
"endLat": 30.2700,
"endLon": -97.7450
}
]
}'
require_once 'RemoteSurfaceDetector.php';
$detector = new RemoteSurfaceDetector(
'https://surface.enduranceplayground.com',
'YOUR_API_KEY'
);
// Works as drop-in replacement for BatchRoadSurfaceDetector
$roadData = $detector->analyzeCourseSurfaces($segments);
Upload & Contribution Features