All resourcesDocumentation
API Documentation
Integrate SkyGIS into your workflows with our RESTful API. Automate uploads, manage projects, and extract data programmatically.
Authentication
All API requests require a Bearer token. Generate API keys from your account settings under Developer → API Keys.
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.skygis.io/v1/projectsRate limits: Free tier: 100 requests/hour. Core: 1,000/hour. Plus: 10,000/hour. Enterprise: custom limits.
Projects
List Projects
GET /v1/projects
Response:
{
"data": [
{
"id": "proj_abc123",
"name": "Highway Survey Q1",
"created_at": "2025-01-15T10:30:00Z",
"storage_bytes": 5368709120,
"status": "active"
}
],
"meta": { "total": 12, "page": 1 }
}Create Project
POST /v1/projects
Content-Type: application/json
{
"name": "Bridge Inspection 2025",
"description": "Quarterly scan of Main St bridge",
"crs": "EPSG:32632",
"tags": ["bridge", "infrastructure"]
}Delete Project
DELETE /v1/projects/:project_idPermanently deletes a project and all associated data. This action cannot be undone.
Uploads
Upload File
POST /v1/projects/:project_id/uploads
Content-Type: multipart/form-data
file: <binary>
format: "e57" // optional, auto-detected
crs: "EPSG:4326" // optional, from file metadataReturns an upload ID for tracking processing status. Large files are uploaded in chunks automatically.
Check Processing Status
GET /v1/uploads/:upload_id
Response:
{
"id": "upl_xyz789",
"status": "processing", // queued | processing | ready | failed
"progress": 0.65,
"points_processed": 142000000,
"estimated_completion": "2025-01-15T10:45:00Z"
}Measurements
Create Measurement
POST /v1/projects/:project_id/measurements
Content-Type: application/json
{
"type": "distance",
"points": [
{ "x": 548234.12, "y": 5765432.89, "z": 312.45 },
{ "x": 548267.34, "y": 5765445.12, "z": 314.22 }
]
}
Response:
{
"id": "meas_001",
"type": "distance",
"result": { "value": 35.28, "unit": "meters" }
}Sharing
Create Share Link
POST /v1/projects/:project_id/shares
Content-Type: application/json
{
"permissions": ["view", "measure"],
"expires_at": "2025-06-01T00:00:00Z",
"password": "optional-password"
}Webhooks
Subscribe to events for real-time notifications when processing completes, projects are shared, or storage thresholds are reached.
POST /v1/webhooks
Content-Type: application/json
{
"url": "https://your-app.com/webhooks/skygis",
"events": ["upload.ready", "upload.failed", "project.shared"]
}SDKs & Libraries
- Python —
pip install skygis - JavaScript/TypeScript —
npm install @skygis/sdk - CLI —
brew install skygis-cli