All resources
    Documentation

    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/projects
    Rate 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_id

    Permanently 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 metadata

    Returns 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

    • Pythonpip install skygis
    • JavaScript/TypeScriptnpm install @skygis/sdk
    • CLIbrew install skygis-cli