Sherpa Solutions LLC
Get API Key

Introduction

Welcome to the Sherpa OSINT API. Our infrastructure continuously ingests data from dozens of disconnected global arrays (ADS-B exchanges, USGS seismic rigs, NORAD Celestrak datasets, public unsecured webcams, and AIS vessel trackers), homogenizes the telemetry, and serves it via a single, ultra-low-latency RESTful API.

This API is designed for enterprise integration, enabling developers to build global situational awareness dashboards, supply chain trackers, and early-warning systems without managing complex ETL pipelines.

Quickstart Guide

Get your first telemetry response in under 3 minutes.

  1. Sign up for a Sandbox Key. Visit the Pricing page and select the Hobbyist tier. A mock Stripe interface will issue an `sk_hob_` prefixed key instantly. Or, subscribe directly via the RapidAPI Marketplace.
  2. Set your headers. All requests to the `/query` endpoint require the `X-RapidAPI-Key` (or the legacy `x-api-key`) header.
  3. Run your first query. Execute the following cURL command to fetch live aircraft data:
curl -X GET "https://api.sherpa-solutions.com/v1/osint/query?type=flights&limit=5" \
  -H "X-RapidAPI-Key: YOUR_GENERATED_KEY_HERE"

Environments

The Sherpa OSINT API provides multiple environments for safe development.

Environment Base URL Description
Production https://api.sherpa-solutions.com Live, real-time data. Requires an `sk_pro_` or `sk_ent_` key. Rate limits strictly enforced.
Sandbox http://localhost:8001 Mock development environment using cached local SQLite databases.

Authentication

The OSINT API uses API keys to authenticate requests. You can view and manage your API keys in the developer dashboard.

Your API keys carry many privileges, so be sure to keep them secure. Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.

Authentication to the API is performed via the HTTP Header X-RapidAPI-Key (or the legacy x-api-key).

# Example Python Request
import requests

url = "https://api.sherpa-solutions.com/v1/osint/query"
headers = {
    "X-RapidAPI-Key": "your_secret_key"
}
params = {"type": "earthquakes", "limit": 10}

response = requests.get(url, headers=headers, params=params)
print(response.json())

Rate Limiting

To ensure system stability, limits are applied to the number of API requests your application can make.

Tier Requests Per Minute (RPM) Max Records per Payload
Hobbyist 60 RPM 100 Records
Professional 1,000 RPM 1,000 Records
Enterprise Unlimited 10,000+ Records

If you exceed your limit, the API will respond with a `429 Too Many Requests` status code. Enterprise customers have access to WebSockets for unthrottled streaming data.

Error Codes

We use standard HTTP response codes to indicate the success or failure of an API request.

Code Meaning
200 - OK Everything worked as expected.
400 - Bad Request The request was unacceptable, often due to missing a required parameter (`type`).
401 - Unauthorized No valid API key provided in the `X-RapidAPI-Key` or `x-api-key` header.
429 - Too Many Requests You hit the rate limit constraint for your subscription tier.
50x - Server Error An underlying database routing error on our end.

API Reference

POST /api/v1/osint/authenticate

Exchanges a registered email for a stateless API key. This simulates a payment gateway or OAuth flow.

Request Body

{
  "email": "string (required)",
  "tier": "string (hobbyist, professional, enterprise) (required)"
}

Response

{
  "status": "success",
  "api_key": "sk_hob_7a8b9c...cd4e"
}

GET /api/v1/osint/query

The core telemetry endpoint. Dynamically routes your authenticated request to the requested planetary database shard.

Parameters

Parameter Type Description
type * string The exact data stream to query. Must be one of: `flights`, `military_flights`, `satellites`, `earthquakes`, `cctv`, or `vessels`.
limit integer Optional. Maximum number of rows to return. Default is 10. Maximum depends on subscription tier.

Code Snippet: Node.js (Axios)

const axios = require('axios');

const options = {
  method: 'GET',
  url: 'https://api.sherpa-solutions.com/v1/osint/query',
  params: { type: 'military_flights', limit: '50' },
  headers: { 'X-RapidAPI-Key': 'YOUR_KEY' }
};

axios.request(options).then(function (response) {
  console.log(response.data);
}).catch(function (error) {
  console.error(error);
});

Data Schemas

Detailed breakdown of the JSON arrays returned by each `type` query parameter.

flights & military_flights

FieldTypeDescription
flight_idstringICAO24 Transponder HEX code.
callsignstringStandard alphanumeric routing callsign (e.g. "UAL123").
origin_countrystringCountry of aircraft registration.
longitudefloatWGS84 format.
latitudefloatWGS84 format.
altitudefloatHeight in meters above sea level.
velocityfloatGround speed in meters per second (m/s).
true_trackfloatHeading relative to true north in degrees (0-360).

satellites

FieldTypeDescription
norad_cat_idintUnique satellite identifier assigned by USSPACECOM.
namestringRegistered orbital name (e.g. "STARLINK-1234").
tle_line1stringStandard Two-Line Element Set (Row 1).
tle_line2stringStandard Two-Line Element Set (Row 2).
longitudefloatSub-satellite point (WGS84).
latitudefloatSub-satellite point (WGS84).
altitudefloatOrbital height in kilometers.

cctv

FieldTypeDescription
urlstringDirect unauthenticated M-JPEG stream URL.
countrystringGeo-located hosting country code (e.g. "US", "RU").
citystringGeo-located hosting city.
latitudefloatCamera location approximation.
longitudefloatCamera location approximation.

earthquakes

FieldTypeDescription
eq_idstringUSGS Event ID.
magnitudefloatRichter scale seismic magnitude.
placestringText description of the epicenter.
timeintUnix epoch timestamp (milliseconds).
longitudefloatEpicenter.
latitudefloatEpicenter.
depthfloatDepth in kilometers.

vessels

FieldTypeDescription
mmsiintMaritime Mobile Service Identity.
timestampstringISO8601 Timestamp of last AIS broadcast.
latitudefloatVessel position.
longitudefloatVessel position.
coursefloatCourse over ground (degrees).
speedfloatSpeed over ground (knots).
lengthintOverall length of ship in meters.