Skip to main content

5 - Environments & Platform Status

This page describes the available environments for the SafeSky Public REST API, how to target each one, and how to programmatically check platform availability before establishing connections.


Environments

The SafeSky Public REST API is available in two environments. Yourenvironments: API keyproduction determinesand whichsandbox. environmentEach youris requestsa areseparate routed toendpoint — you domust notuse needthe correct base URL for the environment you want to changetarget, together with the basecorresponding URL.API key.

Production

The production environment provides real-time, unfiltered access to live traffic data. Use this for operational deployments.

Property Value
Base URL https://public-api.safesky.app
Swagger UI public-api.safesky.app/swagger-ui/index.html
Live traffic viewer live.safesky.app
API key prefix ssk_live_...
Quota Enforced — usage metering applies
Traffic data Full real-time data, all aircraft

Sandbox

The sandbox environment is designed for development and integration testing. It mirrors the production API surface but uses limited, simulated traffic data. Sandbox API keys are exempt from billing and quota enforcement.

Property Value
Base URL https://sandbox-public-api.safesky.app
Swagger UI sandbox-public-api.safesky.app/swagger-ui/index.html
Live traffic viewer sandbox-live.safesky.app
API key prefix ssk_test_...
Quota Not enforced
Traffic data Limited / simulated — data quality is marked as degraded

Note: Use the sandbox to validate your integration, test request payloads, and explore edge cases without affecting production data or incurring usage charges.


Platform Status API

Before starting a mission or establishing a connection, you can programmatically check whether the SafeSky platform is available.

Status Endpoint

GET https://status.safesky.app/api/v1/status

No authentication is required. This endpoint is public and responses are cached at the CDN edge for 60 seconds, matching the platform's check interval.

Response

{
  "status": "operational",
  "checkedAt": "2026-03-16T14:32:01.000Z",
  "services": {
    "app-api": {
      "name": "SafeSky App API",
      "status": "operational",
      "lastCheckedAt": "2026-03-16T14:32:01.000Z"
    },
    "public-api": {
      "name": "SafeSky Public API",
      "status": "operational",
      "lastCheckedAt": "2026-03-16T14:32:01.000Z"
    },
    "uav-api": {
      "name": "UAV API",
      "status": "operational",
      "lastCheckedAt": "2026-03-16T14:32:01.000Z"
    }
  }
}

Top-level status Values

Value Meaning
operational All services are functioning normally
degraded One or more services are experiencing intermittent issues
disrupted One or more services are unavailable

Per-service status values follow the same vocabulary: operational, degraded, outage, or unknown (returned only on cold start before the first check cycle completes).

The checkedAt field reflects the timestamp of the most recent completed check cycle. Status is refreshed every 60 seconds.

Safety note: degraded should be treated as available — the platform is reachable but may be slower than usual. Only disrupted should block a safety-critical operation.

Integration Example

async function isPlatformAvailable() {
  const res = await fetch('https://status.safesky.app/api/v1/status');
  const { status } = await res.json();
  return status === 'operational' || status === 'degraded';
}

Important: The Status API reflects availability as observed from SafeSky's own monitoring infrastructure. It does not replace your application's own error handling and retry logic. Always implement robust error handling on API calls regardless of reported platform status.


Human-Readable Status Page

The same status information is available as a dashboard at status.safesky.app, showing:

  • Real-time service status
  • 24-hour uptime timeline
  • Incident history for each service