Complete API access to surveys, POIs, routes, collaboration, cloud storage, webhooks, and real-time features
Everything you need to build powerful mapping applications
Enterprise-grade security with API key authentication
High-performance API with global CDN distribution
Clean, intuitive REST API with JSON responses
Comprehensive documentation with examples
First, you'll need to get your API key from your RoadScope account settings.
API Key: rs_live_1234567890abcdef...Test your API key by making a simple request to get your surveys.
curl -H "Authorization: Bearer your-api-key" \
https://api.roadscope.com/v1/surveysUse our official SDKs for faster development in your preferred language.
npm install @roadscope/apipip install roadscopecomposer require roadscope/api/api/v1/surveysGet all surveys for authenticated user
{
"surveys": [
{
"id": "survey_123",
"name": "Highway 401 Survey",
"customerName": "ACME Corp",
"createdAt": "2025-01-01T00:00:00Z",
"status": "active"
}
]
}/api/v1/surveysCreate a new survey
{
"name": "New Survey",
"customerName": "Client Name",
"description": "Survey description",
"vehicle": {
"type": "flatbed",
"length": 48,
"width": 8.5,
"height": 8.5,
"weight": 80000
}
}{
"id": "survey_456",
"name": "New Survey",
"customerName": "Client Name",
"createdAt": "2025-01-01T00:00:00Z",
"status": "draft"
}/api/v1/surveys/{id}/poisGet all POIs for a specific survey
{
"pois": [
{
"id": "poi_789",
"name": "Bridge Clearance",
"type": "Bridge",
"coordinates": {
"latitude": 45.5017,
"longitude": -73.5673,
"altitude": 0,
"accuracy": 5
},
"measurements": [],
"photos": []
}
]
}/api/v1/surveys/{id}/poisCreate a new POI in a survey
{
"name": "New POI",
"type": "Road",
"coordinates": {
"latitude": 45.5017,
"longitude": -73.5673,
"altitude": 0,
"accuracy": 5
},
"address": "123 Main St",
"notes": "Important location"
}{
"id": "poi_101",
"name": "New POI",
"type": "Road",
"coordinates": {
"latitude": 45.5017,
"longitude": -73.5673,
"altitude": 0,
"accuracy": 5
},
"createdAt": "2025-01-01T00:00:00Z"
}/api/v1/surveys/{id}/routesGet all routes for a specific survey
{
"routes": [
{
"id": "route_456",
"name": "Highway Route",
"waypoints": [
{
"latitude": 45.5017,
"longitude": -73.5673,
"altitude": 120,
"address": "123 Main St"
}
],
"elevationProfile": [
{
"distance": 0,
"elevation": 120
}
],
"totalDistance": 15.5,
"createdAt": "2025-01-01T00:00:00Z"
}
]
}/api/v1/surveys/{id}/shareCreate shared survey link with permissions and QR code
{
"permissions": ["read"],
"expiresAt": "2025-06-01T00:00:00Z",
"password": "optional-password",
"customUrl": "my-survey-name",
"generateQRCode": true
}{
"shareId": "share_456",
"publicUrl": "https://roadscope.com/shared/my-survey-name",
"qrCodeUrl": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"permissions": ["read"],
"expiresAt": "2025-06-01T00:00:00Z",
"createdAt": "2025-01-01T00:00:00Z"
}/api/v1/surveys/{id}/export/pdfGenerate georeferenced PDF report with templates
{
"template": "professional",
"includeElevation": true,
"includePhotos": true,
"mapStyle": "satellite",
"customBranding": {
"logo": "base64-encoded-logo",
"companyName": "ACME Corp"
}
}{
"reportId": "pdf_789",
"downloadUrl": "https://api.roadscope.com/v1/downloads/pdf_789",
"status": "processing",
"estimatedTime": 30,
"georeferenced": true
}/api/v1/webhooksRegister webhook for real-time notifications
{
"url": "https://your-app.com/webhooks/roadscope",
"events": [
"survey.updated",
"poi.created",
"route.modified",
"payment.completed"
],
"secret": "your-webhook-secret"
}{
"webhookId": "webhook_123",
"url": "https://your-app.com/webhooks/roadscope",
"events": [
"survey.updated",
"poi.created",
"route.modified",
"payment.completed"
],
"status": "active",
"createdAt": "2025-01-01T00:00:00Z"
}RoadScope sends webhooks for real-time updates on surveys, collaboration, payments, and system events.
Authorization: Bearer firebase-id-tokenAuthorization: Bearer rs_live_1234567890...import RoadScopeAPI from '@roadscope/api';
const client = new RoadScopeAPI({
apiKey: 'your-api-key',
baseURL: 'https://api.roadscope.com'
});
// Get all surveys
const surveys = await client.surveys.list();
// Create a new POI
const poi = await client.pois.create(surveyId, {
name: 'Bridge Clearance',
type: 'Bridge',
coordinates: {
latitude: 45.5017,
longitude: -73.5673
}
});import roadscope
client = roadscope.Client(api_key='your-api-key')
# Get all surveys
surveys = client.surveys.list()
# Create a new POI
poi = client.pois.create(
survey_id='survey_123',
name='Bridge Clearance',
type='Bridge',
coordinates={
'latitude': 45.5017,
'longitude': -73.5673
}
)# Get all surveys
curl -H "Authorization: Bearer your-api-key" \
https://api.roadscope.com/v1/surveys
# Create a new POI
curl -X POST \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{"name":"Bridge Clearance","type":"Bridge","coordinates":{"latitude":45.5017,"longitude":-73.5673}}' \
https://api.roadscope.com/v1/surveys/survey_123/poisGet your API key and start integrating RoadScope into your applications today.