The Most Complete Road Surface Data API

High-performance road surface information for cycling and routing applications with continuous data improvement capabilities.

<50ms
Response Time
99.9%
Uptime
1000
Segments/Batch
Global*
Coverage
View Details →

Why Choose Surface API?

The most comprehensive road surface data API with continuous improvement through user contributions and imagery analysis.

Lightning Fast

Sub-50ms response times for single points, under 2 seconds for 300-segment batches.

📤

User Contributions

Upload new surface data and attributes based on GPS coordinates and imagery for continuous improvement.

🌍

Global Coverage*

The most complete worldwide road surface database with continuous updates and community contributions. View coverage map →

🔌

Drop-in Replacement

Compatible client libraries make migration seamless. Switch in minutes, not days.

🚀

PostGIS Powered

Optimized spatial queries using PostGIS ensure consistent performance at scale.

🔒

Secure & Reliable

API key authentication, HTTPS encryption, and 99.9% uptime guarantee.

Quick Start

GET /status

Check API health and database statistics. No authentication required.

curl https://surface.enduranceplayground.com/status
GET /surface/point

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 }
POST /surface/batch

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 } ] }'

PHP Integration

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);

Features & Capabilities

Complete Surface Data Platform

Coming Soon

Upload & Contribution Features

The most comprehensive surface data available
  • ✓ Unlimited API calls
  • ✓ Global coverage
  • ✓ Community contributions
  • ✓ Imagery analysis (coming)
  • ✓ Real-time updates
  • ✓ 99.9% uptime SLA
  • ✓ Technical support