</> REST API

API Reference

Programmatic access to all SafeOrbit360 data. Available on Enterprise plan.

Authentication

All API requests require a Bearer token in the Authorization header. Generate your API key from Dashboard → Settings → API Keys.

curl https://api.safeorbit360.com/v1/devices \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"

API keys are scoped to your account. Treat them as secrets — never expose them in client-side code.

Base URL

https://api.safeorbit360.com/v1

Rate Limits

Basic100 requests / minute
Premium500 requests / minute
Enterprise2,000 requests / minute (custom on request)

Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset

Endpoints

GET/v1/devicesAll

List all devices in your account with status, last location, and battery level.

GET/v1/devices/:id/locationAll

Get the current location of a specific device. Returns lat, lng, speed, accuracy, timestamp.

GET/v1/devices/:id/location/historyBasic+

Get location history for a device. Supports ?from= and ?to= ISO 8601 timestamps, and ?limit= (max 10,000).

GET/v1/devices/:id/callsPremium+

Get call log entries. Returns number, contact name, type (in/out/missed), duration, timestamp.

GET/v1/devices/:id/smsPremium+

Get SMS records. Returns sender, recipient, message body, timestamp. Supports ?contact= filter.

GET/v1/devices/:id/statusAll

Get device metadata: battery level, online/offline status, last seen, network type, Android version.

GET/v1/geofencesBasic+

List all geo-fence zones in your account with name, coordinates, radius, and alert configuration.

POST/v1/geofencesBasic+

Create a new geo-fence zone. Body: { name, lat, lng, radius_meters, alert_on: "entry"|"exit"|"both" }.

DELETE/v1/geofences/:idBasic+

Delete a geo-fence zone by ID.

GET/v1/alertsAll

Get recent alerts. Supports ?type= (sos, geofence, battery, sim_change), ?device_id=, ?limit=.

POST/v1/devices/:id/commandEnterprise

Send a remote command. body: { command: "ping"|"uninstall"|"refresh_location" }.

Response Format

{
  "success": true,
  "data": { ... },
  "meta": {
    "count": 1,
    "page": 1,
    "total": 42
  }
}

// Error response:
{
  "success": false,
  "error": {
    "code": "DEVICE_NOT_FOUND",
    "message": "No device with that ID exists in your account.",
    "status": 404
  }
}

Need API Access?

The REST API is included in the Enterprise plan. Contact us to get started or request a custom rate limit.

Contact Enterprise Team →